Как автоматизировать процесс запуска теста с помощью TestComplete?

Мы пытаемся интегрировать тесты в наши ежедневные сборки, используя TestComplete, поэтому у нас есть машина, предназначенная для тестирования, и наш сценарий сборки копирует на эту машину все, что TestComplete нуждается в своих тестах (приложение, база данных, проект сценария тестирования, исходные файлы и т. Д.),

По сути, мы можем открыть проект TestComplete вручную и запустить тесты.

Теперь мы хотим автоматизировать этот процесс, так как вы это делаете? Или как вы думаете, будет самый простой и лучший способ сделать эту автоматизацию?

Короче говоря, мы хотим автоматизировать процесс открытия TestComplete после каждой сборки, запустить все тесты и отправить электронное письмо с результатами теста.

Кто-нибудь может поделиться некоторым опытом по этому поводу?

Благодарю.

10 ответов

Решение

Отвечая на мой собственный вопрос:

Решением было написание небольшого приложения на C#, которое находится на панели задач и отслеживает папку.

Когда новая папка (содержащая исходный код тестов) добавляется в контролируемую папку, вызывается TestComplete с помощью командной строки, затем приложение перехватывает свой ExitCode и отправляет электронное письмо с приложенным к нему файлом журнала.

В зависимости от кода выхода, который я знаю, что произошло в тестах, возможные коды выхода:

0 - последний тест не выдал ошибок или предупреждений.
1 - Последние результаты теста содержат предупреждения, но не содержат ошибок.
2 - последние результаты теста включают ошибки.
3 - Тест не может быть запущен из-за ошибки

Дополнительную информацию о кодах выхода можно найти в файле справки TestComplete.

Ну, хотя я не использовал TestComplete, я использовал конкурирующий пакет под названием QA Wizard Pro. Поскольку вы задаете этот вопрос, я предполагаю, что это не то, что изначально поддерживается TestComplete. Мастер QA работает точно так же, и они ожидают, что он будет запускаться вручную, а не автоматически, хотя существуют файлы тестового запуска, которые можно запустить. Для QA Wizard я создал пакетный файл, который запускался по ночам из планировщика задач. Учетная запись для запуска программного обеспечения должна иметь возможность взаимодействовать с рабочим столом, а пользователь должен войти в систему с помощью дисплея. Я использовал бесплатную программу AutoHotKey для автоматизации выполнения тестов, а затем некоторые инструменты Cygwin для анализа результатов и запуска электронной почты с результатами Blat. Это не идеальное решение, но оно работает.

Если у вас есть TestExecute, попробуйте это. работает каждый раз....

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

Вы также должны посмотреть на использование TestExecute. Это (гораздо более дешевая) программа от Automated QA, которая будет выполнять сценарии TestComplete.

Это избавит вас от необходимости иметь полную лицензию TestComplete для вашего сервера сборки / тестирования.

Для тех, кто все еще ищет это: SmartBear выпустил плагин TestComplete для Jenkins. Таким образом, теперь он может быть использован без необходимости взлома вещей.

Информация о плагине: https://plugins.jenkins.io/TestComplete

Пресс-релиз: https://smartbear.com/news/news-releases/smartbear-simplifies-continuous-delivery/

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")

Скопируйте вышеуказанные строки в Блокнот и сохраните его как файл.vbs.
Создайте файл.bat и поместите его на интегрированный сервер.
Просмотрите путь вышеупомянутого файла.vbs через файл bat вашего TestComplete exe.

Для файла bat вы можете записать эти строки непосредственно в Блокнот как

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") 

Сохраните этот текстовый файл с расширением.bat. Затем сгенерируйте задачу через ваш CI-сервер.

Вы можете использовать задачу TestComplete для Bamboo для запуска тестов TestComplete с TestComplete или TestExecute и анализировать тесты в Bamboo и интегрировать их с JIRA. https://marketplace.atlassian.com/plugins/com.mdb.plugins.testcompletetask/server/overview

Существуют разные методы для выполнения этой деятельности. Лучший и самый мощный метод - это использование Cruise control.NET для непрерывной интеграции цикла тестирования / разработки.

Второй метод - создание командного файла для запуска сценария Test Complete с использованием параметра командной строки. Запланируйте запуск этого командного файла. Также включите одно простое приложение (которое будет обновлять результаты теста в Excel/Test Cases) как testApp. и вызывайте его после каждого запуска теста / сценария. создать почтовую функцию для отправки этого результата после завершения прогона TC.

Я уже использую эти два метода,

Вы могли бы попробовать Дженкинс. По своей сути вы могли бы создать проект с одним шагом сборки (пакетный или bash-скрипт), который вызывает Test Complete или Test Execute из строки commend в назначенное время. Затем вы можете добавить дополнительные шаги сборки по мере необходимости. Например, когда наши тесты запускаются, мы извлекаем последнюю версию сценариев Test Complete из системы контроля версий. У Jenkins есть хорошие функции, такие как архивирование элементов сборки (в случае Test Complete это будут ваши журналы тестов), уведомления по электронной почте и мониторинг репозиториев контроля версий. Большая библиотека плагинов охватывает большинство других вещей, которые вы можете добавить в свой проект.

Самое простое решение - использовать командный файл для выполнения testcomplete из командной строки и добавить его в планировщик Windows.

Другие вопросы по тегам