Как мы все знаем, Jenkins, как основной инструмент CI/CD, может выполнять функциональное тестирование и регрессионное тестирование в дополнение к конвейеру компиляции, но у многих студентов часто возникают некоторые сомнения при настройке Jenkins для автоматического тестирования настольных приложений с графическим интерфейсом. В этой статье мы объединим широко используемый настольный инструмент автоматизированного тестирования CukeTest, чтобы объяснить, как настроить автоматическое тестирование в Jenkins.
Автоматизация настольных приложений обычно относится к приложениям Windows, включая собственные приложения, гибридные приложения, .NET, WPF и т. д., а также к приложениям Java. Этого можно достичь с помощью Jenkins с CukeTest. В дополнение к графическому интерфейсу CukeTest также предоставляет инструменты для запуска из командной строки, поэтому он подходит для автоматизации рабочего стола с помощью Jenkins. Ниже эти два используются для реализации автоматизированного тестирования настольных приложений.
полагаться
окрестности
- Java8 и выше
- Windows7 или выше
Подготовка файлов
- jenkins.war: файл Jenkins WebApplicationARchive (WAR), который можно установить в различных операционных системах с помощью Java. Рекомендуется использовать
2.107
и выше.
Выполнение
проблема вызывает
Традиционный метод установки регистрирует Jenkins как системную службу, в то время как системная служба Windows будет запущена до входа пользователя в систему, что не совпадает с сеансом рабочего стола после входа пользователя, что приведет к сбою службы Jenkins. управлять рабочим столом после входа в систему.Это также причина, по которой Jenkins в состоянии службы Windows не может напрямую выполнять автоматизацию рабочего стола.
Таким образом, ключ к решению проблемы заключается в том, чтобы позволить Jenkins выполнять боковую операцию и операцию рабочего стола в одном и том же сеансе, что можно сделать двумя способами:
- Избегайте регистрации Jenkins в качестве службы: вместо этого используйте командную строку для установки и запуска Jenkins;
- Использовать режим Jenkinsmaster/slave: мастер работает как служба Windows, а Jenkinsslave запускается автоматически после входа в систему с использованием запланированных задач Windows.
Установите Дженкинс из командной строки
Поскольку обычная установка приведет к регистрации Jenkins в качестве службы, а служба не может работать с рабочим столом Windows, мы используем метод командной строки для запуска Jenkins в текущем сеансе рабочего стола.
java -jar jenkins.war --httpPort=8090
Чтобы избежать конфликтов портов с экземпляром Jenkins по умолчанию, используйте--httpPort
опция устанавливает другой порт прослушивания. Затем откройте браузер и посетите http://localhost:8090, чтобы войти в интерфейс управления Jenkins.Если это первый раз, он войдет в работающий мастер и будет следовать инструкциям для завершения настроек.
Путь к Jenkins, установленному из командной строки:%USERPROFILE%\.jenkins\
.
Обратите внимание, что этот метод запускает мастер Jenkins, который является консольной частью.Если это среда исполнителя, подчиненный (называемый агентом в более поздних версиях) должен быть установлен с использованием распределенной среды Jenkins.
Развернуть Jenkins Slave (агент)
Описание ДженкинсаАктуаторТермин в старой документации был
slave
, который в новом документеagent
, все относятся к одному и тому же, что мы вместе называем нижеslave
.
В других сценариях мы будем запускать планировщик Jenkins (мастер) на локальном компьютере и запускать определенные тестовые проекты на сервере, что требует развертывания исполнителя Jenkins (подчиненного/агента) способом, аналогичным описанному выше. ). Конкретные шаги см. в «Jenkins: установка главного и подчиненного» [1].
Запустите Jenkins после входа в систему через запланированное задание
Windows предоставляет возможность планировать задачи, вы можете создать запланированную задачу, которая запускается при входе в систему. запускать задачу при ее запуске.bat
командный файл со следующим содержимым:
- Беги Дженкинсмастер
cd \JenkinsFilePath\
java -jar jenkins.war
- Запустите Дженкинсраб:
cd \JenkinsFilePath\
java -jar {Slave or Agent .jar File} -jnlpUrl http://{Your Jenkins Server}:{Your Jenkins Port}/computer/{Your Jenkins Node}/slave-agent.jnlp [-secret {Your JenkinsSecret Character}]
Например:
java -jar agent.jar -jnlpUrl http://localhost:8080/computer/Slave1/slave-agent.jnlp -secret e3637f4dfeb6c1bf8298aee7cb56cc4b79f4add79dd19fcd3fdf34fe21772b2f -workDir ""
В приведенном выше примере используется более новая версия Jenkins и, следовательно, используется
agent.jar
Запустите программу, имя узлаSlave1
, а с момента добавленияГлобальная безопасность, поэтому требуется логин для аутентификации в виде строки пароля.
Даже если вы забудете команду запуска Slave, вы можете перейти к
Manage Node
страница для конкретных команд.
использовать
Создайте образец автоматизации рабочего стола
Создайте проект автоматизации рабочего стола, пропустите этот шаг, если у вас есть подходящий проект. Откройте CukeTest, вы можете создатьwindows_controls
пример.
Настроить команды запуска
CukeTest предоставляет интерфейс конфигурации для запуска команд, который помогает генерировать необходимые операторы командной строки. После открытия проекта нажмите кнопку «Запустить проект» в правом нижнем углу панели инструментов.▼
Отредактируйте конфигурацию запуска. Новая конфигурация запускаRunInJenkins
,следующее:
-
Название проекта: имя работающей конфигурации;
-
Формат отчета, файл отчета, выходной каталог: параметры, относящиеся к запуску отчета о результатах.
- Формат отчета: формат файла отчета, выбранный по умолчанию.
html
,так какCucumberreports
требуется для создания отчетов.json
файл, поэтомуjson
опция отмечена; - файл отчета: как называется отчет,
使用相同的文件名
приведет к перезаписыванию старых файлов отчетов;每次新建文件名
Все предыдущие файлы отчетов будут сохранены. Здесь мы выбираембывшийЭто связано с тем, что jenkins поставляется с управлением историей, а один файл отчета полезен для плагина Cucumberreports для создания страниц; - выходной каталог: каталог хранения отчета, по умолчанию — корневой каталог проекта.
reports
папка, поэтому модификация не требуется;
- Формат отчета: формат файла отчета, выбранный по умолчанию.
-
Фильтр тегов: фильтрует содержимое на основе тегов. Если проект слишком большой, рекомендуется пометить каждую сцену и пропустить через фильтры по отдельности. Чтобы узнать больше о тегах, нажмите «Теги и фильтрация»[2].
После завершения настройки ниже будет сгенерирована соответствующая команда запуска, и эту команду можно запустить в Jenkins.
Пример объекта фристайл
Перед выполнением следующей операциипредположениеУстановить первым
Cucumber reports
Плагин для разбора и отображения отчетов о прогонах.
Чтобы создать новый проект Freestyle Object в Jenkins, мы добавляем два шага командной строки к ссылке Build и выполняем следующие два шага:
- Скопируйте файл проекта в рабочую область Jenkins;
- использовать
cuke
команда для запуска проекта;
Таким образом, содержание двух шагов командной строки:
xcopy C:\Program File\cuke\windows_controls /S /Y
chcp 65001 && cuke --run --format html --format json --overwrite --no-color
Благодаря Дженкинсу
Console Output
Формат отображения — обычный текст, а стиль вывода командной строки не может быть отображен, что приведет к искажению идентификатора стиля, поэтому добавьте команду cuke после команды--no-color
опции.
Конфигурация выглядит следующим образом:
Добавьте визуальный отчет о прогоне
На этапе Post Build можно добавить шаг отчетов Cucumber для создания визуального текущего отчета.
В «Расширенной» конфигурации отчетов Cucumber установите шаблон включения файлов, который используется для создания отчета..json
Путь к файлу, здесь указываем как*/reports/*.json
, чтобы избежать совпадения сpackage.json
Произошла ошибка в файле.
Пример конвейерного проекта
Использование проекта Pipeline аналогично, просто используйте синтаксис конвейера, чтобы включить шаги из предыдущего раздела, а именно:
pipeline {
agent any
stages {
stage('Build') {
steps {
bat 'xcopy C:\Program File\cuke\windows_controls /S /Y'
}
}
stage('Test'){
steps {
bat 'chcp 65001 && cuke --run --format html --format json --overwrite --no-color'
}
}
stage('Cucumber Report'){
steps {
cucumber buildStatus: "UNSTABLE",
fileIncludePattern: "**/reports/*.json",
jsonReportDirectory: "reports"
}
}
}
}
бегать
Нажмите «Создать сейчас», чтобы запустить и заметить настольное приложение.Simple Style.exe
Начните плавно и начните выполнять автоматизацию, вы можете просмотреть ее в левой части Jenkins после завершения.Cucumber reports
, интерфейс отчета выглядит следующим образом:
О стилях отчетов: возвращен результат запуска CukeTest
.json
файл, поэтому вы можете использовать пользовательские стили для удовлетворения потребностей в отчетах на основе результатов выполнения.
Суммировать
Для двух методов Jenkins, описанных выше, рекомендуется выбирать ведущий/подчиненный. Мастер может работать на любой платформе, даже на Linux. Ведомый может работать в Window в соответствии с потребностями автоматизации. Но CukeTest работает не только в Windows, он также может выполнять автоматические тесты в Linux или Mac. Таким образом, вы можете настроить подчиненные Jenkins на нескольких платформах по мере необходимости и выполнять автоматические тесты на разных платформах по мере необходимости.Если ваш проект еще не автоматизирован, попробуйте!
использованная литература
[1] | «Дженкинс: установить ведущий и подчиненный»:В/Страх/… |
---|---|
[2] | Маркировка и фильтрация:*Woohoo. Уксус может test.com/this-talent/feat U… |