Использование Serenity 4.0.1 для создания отчета огурца.json и плагина xray maven для публикации в Jira.
В основном он работает нормально: в Jira создаются тестовые выполнения и заполняются результаты. Единственная проблема заключается в том, что они не связаны с указанными планами тестирования, а поля Environment/fixVersion также не заполняются.
Ссылаясь на эту документацию: https://docs.getxray.app/display/XRAY/Integration+with+Maven#IntegrationwithMaven-Importingtestautomationresults
Я пробовал использовать как параметры командной строки (которые я использую для предоставления учетных данных Jira), так и настройку конфигурации плагина pom (где я, среди прочего, предоставляю JiraBaseUrl). Итак, я знаю, что оба метода работают, но, похоже, не для этих трех полей.
Вот зарегистрированный ответ, который я получаю от плагина:
[INFO] response: {"testExecIssue":{"id":"16065764","key":"E2E-583","self":"https://jira.test.com/rest/api/2/issue/16065764"},"testIssues":{"success":[{"id":"16037818","key":"E2E-576","self":"https://jira.test.com/rest/api/2/issue/16037818","testVersionId":1433450}]},"infoMessages":[]}
Вот моя конфигурация плагина:
<plugin>
<groupId>app.getxray</groupId>
<artifactId>xray-maven-plugin</artifactId>
<version>0.7.3</version>
<configuration>
<cloud>false</cloud>
<jiraBaseUrl>https://jira.test.com</jiraBaseUrl>
<projectKey>E2E</projectKey>
<testEnvironment>UAT</testEnvironment>
<fixVersion>1.0</fixVersion>
<testPlanKey>E2E-577</testPlanKey>
<reportFormat>cucumber</reportFormat>
<reportFile>target/cucumber.json</reportFile>
</configuration>
<executions>
<execution>
<id>import-results</id>
<phase>post-integration-test</phase>
<goals>
<goal>import-results</goal>
</goals>
</execution>
</executions>
</plugin>
И вот моя команда maven:
clean verify -e -X -Dcucumber.filter.tags = "@E2E_Regression" -Dxray.testPlanKey = "E2E-577" -Dxray.fixVersion=1.0 -Dxray.testPlanKey=E2E-577 -Dxray.testEnvironment=UAT -Dxray.jiraUsername=xxx -Dxray.jiraPassword=xxx
Интересно, почему эти поля вообще не заполняются?
Формат «огурец» внутренне использует стандартную конечную точку REST API огурца , которая пока не поддерживает передачу дополнительных параметров, как указано на странице проекта Xray Maven Plugin GitHub..
Способ удовлетворения этой потребности — использовать вместо этого многочастную конечную точку огурца; в документации приведен пример запроса API.
curl -u admin:admin -F [email protected] -F [email protected] http://yourserver/rest/raven/1.0/import/execution/cucumber/multipart
Мы также можем добиться этого с помощью плагина xray-maven-plugin.
Для этого вам следует удалить projectKey, testEnvironment, fixVersion, testPlanKey как из конфигурации pom.xml, так и из соответствующих аргументов командной строки. Почему? Потому что они не обработаны.
Вместо этого вам следует указать testExecInfoJson
с именем файла (например, testexec.json) и содержимым, подобным следующему:
{
"fields": {
"project": {
"key": "PROJECT_KEY"
},
"summary": "Test Execution for cucumber execution",
"issuetype": {
"name": "Test Execution"
},
"customfield_CF_TEST_ENVIRONMENT" : [
"TEST_ENVIRONMENT_NAME"
],
"customfield_CF_TEST_PLAN" : [ "TESTPLAN_KEY" ]
},
"fixVersions" :
[
{
"name": "NAME_OF_RELEASE_IN_JIRA"
}
]
}
Вам необходимо найти идентификаторы настраиваемых полей «План тестирования» и «Тестовая среда» в настройках вашего экземпляра Jira (или попросить их у администратора Jira).
Примером такого контента может быть что-то вроде:
{
"fields": {
"project": {
"key": "CALC"
},
"summary": "Test Execution for cucumber Execution",
"issuetype": {
"name": "Test Execution"
},
"customfield_11805" : [
"iOS"
],
"fixVersions" :
[
{
"name": "v3.0"
}
]
}
}
В конце концов это заработало путем динамического создания файла json в java. FixVersion теперь тоже работает нормально, должно быть, я сделал что-то не так с моим json или что-то в этом роде раньше.
Большое спасибо за вашу помощь, теперь все работает намного лучше. По крайней мере, поля «План тестирования» и «Среда» теперь заполняются нормально. Однако fixVersion все еще не заполняется – есть идеи по этому поводу? Кроме того, мне интересно, есть ли простой способ заполнить эти три значения из командной строки maven? Хотелось бы иметь возможность контролировать их без необходимости внесения изменений в код, если это возможно. И я бы предпочел не включать код для создания этого файла JSON во время сборки, если я могу этого избежать.