5

Estamos intentando integrar pruebas en nuestras construcciones diarias usando TestComplete, hasta ahora tenemos una máquina dedicada para pruebas y nuestras copias de scripts de compilación en esta máquina todo lo que TestComplete necesita para sus pruebas (aplicación, base de datos, proyecto de script de prueba y archivos fuente, etc.)¿Cómo automatizar el proceso de ejecución de prueba usando TestComplete?

Básicamente podemos abrir el proyecto TestComplete manualmente y ejecutar las pruebas.

Ahora queremos automatizar ese proceso, entonces, ¿cómo lo hace? ¿O cómo crees que sería la forma más simple y mejor para hacer esta automatización?

En pocas palabras, queremos automatizar el proceso de apertura de TestComplete después de cada compilación, ejecutar todas las pruebas y enviar un correo electrónico con los resultados de las pruebas.

¿Alguien puede compartir algo de experiencia al respecto?

Gracias.

Respuesta

4

responder a mi propia pregunta:

La solución estaba escribiendo una pequeña aplicación # C que se encuentra en la bandeja del sistema y supervisa una carpeta. Cuando se agrega una carpeta nueva (que contiene el código fuente de las pruebas) a la carpeta monitoreada TestComplete usando la línea de comando, la aplicación detecta su código de salida y envía un correo electrónico con el archivo de registro generado adjunto.

Dependiendo del ExitCode Sé lo que pasó en las pruebas, los posibles códigos de salida son:

0 - La última prueba no produjo errores o advertencias.
1 - Los últimos resultados de la prueba incluyen advertencias pero no errores.
2 - Los últimos resultados de prueba incluyen errores.
3 - La prueba no se puede ejecutar debido a un error

Puede encontrar más información sobre los ExitCodes en el archivo de Ayuda de TestComplete.

3

Bueno, aunque no he usado TestComplete, he usado un paquete de la competencia llamado QA Wizard Pro. Como hace esta pregunta, asumo que TestComplete no es compatible de forma nativa. QA Wizard es de la misma manera y esperan que se ejecute manualmente en lugar de automáticamente, aunque hay archivos de ejecución de prueba que se pueden ejecutar. Para QA Wizard, creé un archivo por lotes que se ejecutaba todas las noches desde el planificador de tareas. La cuenta para ejecutar el software debe poder interactuar con el escritorio y un usuario debe haber iniciado sesión en con una pantalla. Usé un software gratuito llamado AutoHotKey para automatizar la ejecución de las pruebas y luego algunas herramientas Cygwin para analizar los resultados y activar un correo electrónico a través de Blat con los resultados. No es una solución perfecta, pero funciona.

1
Set wshShell = CreateObject("WScript.Shell") 
wshShell.Run("""C:\Program Files\Automated QA\TestComplete 6\Bin\TestComplete.exe"" ""C:\Documents and Settings\My Documents\TestComplete 6 Projects\abc\abc.pjs(your script path)"" /r /p:(Project Name) /u:(Unit Name) /rt:(Method to be executed) /e /SilentMode") 

Copie las líneas anteriores en el Bloc de notas y guárdelas como un archivo .vbs.
Haga un archivo .bat y colóquelo en su servidor integrado.
Navegue por la ruta del archivo .vbs mencionado anteriormente a través de un archivo bat su exe TestComplete.

Para bat puede escribir directamente estas líneas en Bloc de notas como

C:\WINDOWS\system32\cmd.exe 
WScript.Echo "" 
Set wshShell = CreateObject("WScript.Shell") 
wshShell.Run("""C:\Program Files\Automated QA\TestComplete 6\Bin\TestComplete.exe"" ""C:\Documents and Settings\My Documents\TestComplete 6 Projects\abc\abc.pjs"" /r /p:prj1 /u:Unit1 /rt:Test1 /e") 

Guardar este archivo txt con .bat extensión. Luego genere una tarea a través de su servidor de CI.

2

También debe consultar el uso de TestExecute. Este es un programa (mucho más económico) de QA Automatizado que ejecutará scripts TestComplete.

Esto le ahorrará tener que tener una licencia completa de TestComplete para su servidor de compilación/prueba.

2

si tiene TestExecute, intente esto. funciona cada vez ...

C:\PROGRA~1\AUTOMA~1\TESTEX~1\Bin\TestExecute.exe "path\Project.pjs" /r /e 
0

Existen diferentes métodos para realizar esta actividad. El mejor y más poderoso método es usar Cruise control.NET para integración continua de pruebas/Ciclo de desarrollo.

Segundo método es crear un archivo de proceso por lotes para ejecutar la secuencia de comandos Prueba completa utilizando el parámetro de línea de comandos. Programe la ejecución de este archivo por lotes. Incluya también una aplicación simple (que actualizará el resultado de la prueba en Excel/Casos de prueba) como testApp. y llame a esto después de ejecutar cada caso de prueba/escenario. crear una función de correo para enviar este resultado después de completar la ejecución TC.

ya usando estos dos métodos,

0

La solución más sencilla es utilizar un archivo por lotes para ejecutar TestComplete de línea de comandos, y agregarlo en ventanas planificador.

0

Puede probar Jenkins. En su forma más básica, puede crear un proyecto con un paso de compilación (secuencia de comandos por lotes o bash) que llame a Prueba Completa o Ejecución de Prueba desde la línea de recomendación a la hora programada. A continuación, puede agregar pasos de compilación adicionales según sea necesario. Por ejemplo, cuando se ejecutan nuestras pruebas, extraemos la última versión de los scripts de Test Complete del control de origen. Jenkins tiene buenas funciones como archivar elementos de compilación (en el caso de Test Complete, estos serían sus registros de prueba), notificaciones por correo electrónico y supervisión de repositorios de control de origen. La gran biblioteca de complementos cubre la mayoría de las otras cosas que quizás desee agregar a su proyecto.

1

Para las personas que aún buscan esto: SmartBear lanzó un plug-in de TestComplete para Jenkins. Por lo tanto, ahora se puede utilizar sin necesidad de cortar las cosas en

Información sobre el plug-in:. https://plugins.jenkins.io/TestComplete

Comunicado de prensa: https://smartbear.com/news/news-releases/smartbear-simplifies-continuous-delivery/

+0

Si bien esto puede responder teóricamente la cuestión, [sería preferible] (// meta.stackoverflow.com/q/8259) para incluir aquí las partes esenciales de la respuesta y proporcionar el enlace de referencia. – Draken

Cuestiones relacionadas