Повторный и выборочный запуски тестов через allurectl
Примечание
Инструкция актуальна для allurectl версии 2.22.1. Подробнее о новых возможностях и улучшениях allurectl см. на официальной странице релизов в GitHub.
Allurectl поддерживает повторный и выборочный запуски тестов для команды watch. Список тестов для таких запусков передается в пайплайн CI-системы через тест-план — файл testplan.json. Тесты из тест-плана выполнятся только при условии, если адаптер Allure Framework умеет читать этот файл и фильтровать по нему тесты.
Структура файла testplan.json для allurectl
Файл testplan.json содержит список тестов, которые должен выполнить тестовый фреймворк.
Файл создается:
- автоматически, если тесты в CI-системе запускаются из ТестОпс, — команда
watchпринимает список выбранных тестов и сохраняет его в файле по пути.allure/testplan.json; - вручную, если тесты запускаются из CI-системы, в которой они находятся, — команда
test-case planсоздает файл по AQL-запросу.
Пример файла testplan.json с двумя тестами
json
{
"version": "1.0",
"tests": [
{
"id": "10",
"selector": "io.qameta.allure.examples.junit4.AllureSimpleTest.allureSimpleTest"
},
{
"id": "11",
"selector": "io.qameta.allure.examples.junit4.AllureParameterizedTest.allureParameterizedTest[First Name]"
}
]
}где:
id— ID теста в ТестОпс;selector— селектор теста. По умолчанию селектор соответствует полному имени теста (fullName) в файле с его результатом.
Поддержка тест-планов адаптером Allure Framework
Вы можете проверить, поддерживает ли ваш адаптер Allure Framework выборочный запуск тестов по тест-плану. Проверка выполняется локально, без использования allurectl и ТестОпс.
Для этого:
- Локально создайте файл testplan.json и добавьте в него несколько тестов.
- В терминале, где вы будете запускать тесты, задайте переменную
ALLURE_TESTPLAN_PATH, указав абсолютный путь к вашему файлу testplan.json. - В том же терминале запустите тесты обычной командой, без дополнительных фильтров.
Пример проверки для Gradle
bash
export ALLURE_TESTPLAN_PATH="$(pwd)/testplan.json"
./gradlew clean testЕсли выполнились только тесты из файла testplan.json, вы сможете запускать тесты через allurectl повторно или выборочно. В противном случае проверьте настройку вашего адаптера или обратитесь в Центр поддержки за дальнейшей консультацией.
Важно
Для этой проверки переменная ALLURE_TESTPLAN_PATH задается вручную. Не добавляйте ее в профиль командной оболочки и не переносите в пайплайн CI-системы, если тесты запускаются со стороны ТестОпс: с заданной переменной allurectl не запросит у ТестОпс список выбранных тестов.
Сценарии повторного и выборочного запусков тестов через allurectl
Повторный и выборочный запуски тестов со стороны ТестОпс
Если тесты в CI-системе запускаются из ТестОпс, allurectl автоматически создает файл testplan.json и передает его адаптеру. Дополнительных настроек в пайплайне CI-системы не требуется.
Чтобы запустить тесты повторно или выборочно со стороны ТестОпс, воспользуйтесь одним из способов:
- запустите джобу ТестОпс, используя раздел Джобы, Тест-кейсы или Тест-планы;
- перезапустите автоматизированные тесты в открытом запуске.
Далее ТестОпс и allurectl выполняют все действия автоматически:
- ТестОпс запускает свою джобу со списком выбранных тестов и запускает джобу в CI-системе, передав в нее переменную
ALLURE_JOB_RUN_ID— ID запуска джобы в ТестОпс. - Allurectl, используя команду
watch, запрашивает у ТестОпс список тестов для запуска, создает файл testplan.json и передает его путь команде тестов в переменнойALLURE_TESTPLAN_PATH. - Адаптер Allure Framework читает файл testplan.json, и тестовый фреймворк выполняет тесты из этого файла.
- Allurectl, используя команду
watch, импортирует результаты тестов в запуск джобы ТестОпс, указанный в переменнойALLURE_JOB_RUN_ID.
Важно
Если адаптер Allure Framework не сможет прочитать файл testplan.json, выбранный список тестов будет игнорироваться и пайплайн CI-системы выполнит все тесты интеграции как при обычном запуске джобы ТестОпс. Подробнее о действиях в этой ситуации см. Устранение неполадок allurectl → Тесты не запускаются выборочно через allurectl.
Повторный и выборочный запуски тестов со стороны CI-системы
Если пайплайн CI-системы запускается не из ТестОпс, для выборочного запуска тестов необходимо создать файл тест-плана вручную, используя AQL-запрос. Например, вы можете указать ID существующего тест-плана в ТестОпс.
Чтобы запустить тесты выборочно со стороны CI-системы:
Задайте в окружении пайплайна CI-системы основные параметры импорта через allurectl.
В том же окружении задайте переменную
ALLURE_TESTPLAN_PATH, указав абсолютный или относительный путь к файлу, в который будет сохранен тест-план, например./testplan.json.В шаге пайплайна перед запуском тестов создайте файл тест-плана командой
test-case plan, используя флаги:--query— укажите AQL-запрос для выбора тест-кейсов;Совет
Чтобы выбрать тест-кейсы из существующего тест-плана в ТестОпс, укажите его ID, например
testPlan=222.--output-file— укажите путь к файлу тест-плана как в переменнойALLURE_TESTPLAN_PATH.
Запустите тесты командой
watchв том же шаге пайплайна или в шаге с тем же окружением.
Тестовый фреймворк выполнит только тесты из тест-плана, а команда watch импортирует их результаты в ТестОпс.
Пример выборочного запуска тестов по тест-плану ТестОпс
bash
export ALLURE_ENDPOINT=https://testops.example.com
export ALLURE_TOKEN=55555555-5555-5555-5555-555555555555
export ALLURE_PROJECT_ID=100
export ALLURE_TESTPLAN_PATH="./testplan.json"
allurectl test-case plan --query "testPlan=222" --output-file ${ALLURE_TESTPLAN_PATH}
allurectl watch -- ./gradlew clean test
