Azure DevOps test management, in Jira
Build in Azure Pipelines, plan and track testing in Jira. Every run’s results are already where your team works.
| Test Execution ⇅ | Source ⇅ | Framework ⇅ | Status ⇅ | Creator ⇅ | Created at ⇅ | Completed at ⇅ |
|---|---|---|---|---|---|---|
| SHOP-131 | Import | JUnit | Success | ECEmma Clark | 2 minutes ago | 1 minute ago |
| SHOP-129 | Import | TestNG | Success | ASAna Silva | 1 hour ago | 1 hour ago |
| SHOP-127 | Import | Robot Framework | Success | ECEmma Clark | 3 hours ago | 3 hours ago |
| Import | Cucumber | Fail | LMLucas Meyer | 5 hours ago | 5 hours ago | |
| SHOP-126 | Import | Cucumber | Success | LMLucas Meyer | 5 hours ago | 5 hours ago |
| SHOP-124 | Import | JUnit | Success | ECEmma Clark | Yesterday | Yesterday |
| SHOP-122 | Import | NUnit | Success | ASAna Silva | Yesterday | Yesterday |
| SHOP-119 | Import | Behave | Success | LMLucas Meyer | 2 days ago | 2 days ago |
| SHOP-117 | Import | xUnit | Success | ASAna Silva | 2 days ago | 2 days ago |
Azure Pipelines results, no copy-paste
Stop pasting run summaries into tickets. Results sit in Jira beside the requirements and bugs your team already tracks.
| Key | Summary | Run status |
|---|---|---|
| SHOP-218 | CheckoutTest.returnsOrderId | Pass |
| SHOP-226 | PaymentTest.card3dsChallenge | Fail |
| SHOP-231 | AddressTest.savedAddressAutofill | Skipped |
| SHOP-233 | OrderTest.emailSentOnce | Pass |
Queue an Azure pipeline from Jira
Testers start the regression run themselves, right from the Test Execution they’re working in.
- 1Set up onceAdd an Azure DevOps configuration with your organization, project, pipeline ID and a personal access token. Optionally set the test plan, environment, fix version and milestone.
- 2Click RunFrom the AgileTest panel on any Test Execution. Nothing else to fill in.
- 3Follow the runThe run result posts back to Recent runs.
From pipeline run to release decision
Know whether a requirement is ready to ship, from its automated and manual results together.
| Key | Summary | Type | Latest status | |
|---|---|---|---|---|
| SHOP-214 | Apply discount code as guest | Manual | Fail | Re-run |
| SHOP-215 | Pay by card | Manual | Pass | Re-run |
| SHOP-218 | Checkout API returns order ID | Generic | Pass | Automated |
| SHOP-217 | Order email is sent | Manual | To Do | Run |
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- task: Maven@4
inputs:
mavenPomFile: "pom.xml"
publishJUnitResults: true
testResultsFiles: "**/surefire-reports/TEST-*.xml"
- script: |
# 1. Get a temporary token
token=$(curl "$(BASE_AUTH_URL)/api/apikeys/authenticate" -X POST \
-H 'Content-Type:application/json' \
--data '{"clientId":"$(CLIENT_ID)","clientSecret":"$(CLIENT_SECRET)"}' | tr -d '"')
# 2. Send the JUnit report
curl -X POST "$(BASE_URL)/ds/test-executions/junit?projectKey=$(PROJECT_KEY)" \
-H "Content-Type:application/xml" -H "Authorization:JWT $token" \
--data-binary "@target/surefire-reports/TEST-calculateTest.xml"
displayName: "Run a one-line script"steps:
- task: Maven@4
inputs:
mavenPomFile: "pom.xml"
publishJUnitResults: true
testResultsFiles: "**/surefire-reports/TEST-*.xml"
- bash: |
docker run --rm -i \
-e AGILETEST_BASE_URL=$(BASE_URL) \
-e AGILETEST_AUTH_BASE_URL=$(BASE_AUTH_URL) \
-e AGILETEST_CLIENT_ID=$(CLIENT_ID) \
-e AGILETEST_CLIENT_SECRET=$(CLIENT_SECRET) \
ghcr.io/agiletestapp/agiletest-cli \
test-execution import \
--framework-type junit --project-key $(PROJECT_KEY) \
<target/surefire-reports/TEST-calculateTest.xml
displayName: "Upload report"# Data Center: DC_TOKEN = Jira personal access token
- bash: |
docker run --rm -i \
-e AGILETEST_BASE_URL=$(BASE_URL) \
-e AGILETEST_DC_TOKEN=$(DC_TOKEN) \
ghcr.io/agiletestapp/agiletest-cli \
--data-center \
test-execution import \
--framework-type junit --project-key $(PROJECT_KEY) \
<target/surefire-reports/TEST-calculateTest.xml
displayName: "Upload report"One extra step in azure-pipelines.yml
Keep your existing test task. One more step sends the report, whether you run Jira Cloud or Data Center.
Set up with the official guides
Questions, answered
Does AgileTest run my automated tests?
No. Azure Pipelines keeps building and running your tests. AgileTest imports the results into Jira, and can queue a configured pipeline from a Test Execution.
Should I use the AgileTest CLI or the REST API?
Either works. The REST API is a short script step with two curl calls. The CLI runs the ghcr.io/agiletestapp/agiletest-cli Docker image in a bash step.
Which report formats are supported?
JUnit, NUnit, TestNG, xUnit and Robot Framework (XML), plus Cucumber and Behave (JSON). Tools that export JUnit XML, such as Playwright, Cypress and pytest, work too.
Can I start an Azure pipeline from Jira?
Yes. Add an Azure DevOps configuration in AgileTest (organization, project, pipeline ID, API version and a personal access token), then click Run on a Test Execution.
How does the run status get back to Jira?
An extra pipeline step posts the job status to the Test Execution. It needs the Test Execution key, either as a TEST_EXECUTION_KEY variable or set at queue time. The setup guide covers both.
Does it work on Jira Cloud and Data Center?
Yes. Cloud uses an AgileTest Client ID and Client Secret. Data Center uses a Jira personal access token.
Bring your Azure DevOps test results into Jira
Questions? Contact us · Visit the 24/7 Support Desk