QMetry For Jira Test Management Plugin 3.3 and below
Starting December 5, 2025, QMetry For Jira Test Management Plugin documentation moved from its location on Atlassian to a dedicated, standalone page. For the latest updates, refer to QMetry For Jira Test Management Plugin 3.3 and below.
About the Plugin
QMetry Test Management for JIRA plugin for Jenkins has been designed to seamlessly integrate your CI/CD pipeline with QMetry.
Easily configure Jenkins to submit your test results to QMetry without needing to write any code or deal with REST API. Your Test Results could be from any automation framework like Cucumber, Test NG, JUnit, QAF and more.
For more info visit QMetry Test Management for JIRA.
Read the following topics on this page:
Requirements
Configuring a standard Jenkins Job.
Configuring QMetry for JIRA Plugin job as a post build action.
Triggering the job and publishing results in JIRA.
Pre-requisites
QMetry Test Management for JIRA installed in Server/Data Center or Cloud
Jenkins installation
Configuring a Standard Jenkins job
Freestyle
Let’s create a standard Freestyle job in Jenkins.
1. To create a new Jenkins job, click on the New Item option on the Jenkins menu.
2. Provide a name for your job.
Select Freestyle project on the screen and then click OK.
3. Next, the configuration page appears where you can configure your job by various categories: General, Source Code Management (SCM), Build Triggers, Build, and Post build actions.
4. On the Source Code Management tab, select the appropriate option in which you have your source code. For example, here it is “Git”. So, select “Git” and provide the necessary information. (Note: You need to configure GitHub plugin in global configuration).
5. Optionally, you can set Build Triggers.
Select the Build Triggers tab. Let’s just add a periodic trigger which triggers build every minute – every hour – every day (Schedule: * * * * *).
6. Next, Select a build step. You can select from various options: Ant, Maven, Windows batch process, etc. For example, for a maven project, trigger a maven build and specify goals.
Next step is to add Post-build Actions. Here, add the plugin: “QMetry Test Management for JIRA Plugin”.
Configuring QMetry for JIRA Test Management Plugin as a Post-build Action
Jenkins works as a bridge between QMetry Test Management and JIRA plugin. To publish results in QMetry for JIRA, define another post-build action.
1. On the Add post-build Actions drop-down, select the "Publish test result to QMetry for JIRA" option.
2. There are two options: Cloud or Server. Based on the type of JIRA instance you have, select either JIRA Cloud or JIRA Server.
3. In case of Cloud instance for QMetry for JIRA, select the Cloud option and fill in the required data.
You can get more information regarding fields by clicking on the Help icon for respective fields. It explains what to enter in that particular field.
Parameters for Cloud instance:
Parameter | Type | Required | Description |
Automation API Key | string | Yes | Your API Key. API Key is unique for a specific user in a single project. The result will be imported for the project associated with the given API Key. |
Format | selection | Yes | Format of result file to be imported. Supported formats: cucumber/json testng/xml junit/xml qas/json hpuft/xml specflow/json |
File URL | string | Yes | Path to your result file to be uploaded. Example : The Jenkins plugin is expecting the file in Jenkins Workspace. |
Upload Screenshots | checkbox | No | Check to upload attachments in execution. Default value: false. |
Test Run Name | string | No | Name of the test run to be created. It will be appended with the Jenkins build Number. |
Test Run Key | string | No | Existing Issue Key of Test Run. Test run will be appended with the test case and executions. |
Test Asset Hierarchy | selection |
| Level of Hierarchy : Test Scenario-Test Case Or Test Case-Test Step |
TestCaseUpdateLevel | selection | No | Test Case update level while reusing test case, starts from 0 to 2. (This is only applicable when you use TestCase-TestStep Hierarchy option) 0 Append test steps while reusing Test Case. |
Platform | string | No | Name of Platform on which test run to be executed. |
Labels | string | No | Comma separated names of Labels to be added to the test run. |
Versions | string | No | Comma separated names of versions to be added to the test run. |
Components | string | No | Comma separated names of Components to be added to the test run. |
Sprint | string | No | Name of Sprint to be added to the test run. |
Comment | string | No | Comment to be added to the test run. |
JIRAFields |
| No | Check specific Automation custom fields possible value and format here. |
In case of Server instance for QMetry for JIRA, select the Server option and fill in the required data.
Parameters for Server instance:
Parameter | Type | Required | Description |
JIRA URL | string | Yes | Enter JIRA URL |
Basic Authentication OR | string | Yes | Basic Authentication Basic authentication with Jira's credentials.
|
Personal Access Token If the Allow basic authentication on API calls option is disabled in Jira, then Personal Access Token is required for authentication. To generate personal access token, perform the following steps:
| |||
Automation API Key | string | Yes | Your API Key. API Key is unique for a specific user in a single project. The result will be imported for the project associated with the given API Key. |
Username | string | Yes | JIRA Username |
Password | string | Yes | Password for JIRA instance. |
Format | selection | Yes | Format of result file to be imported. Supported formats: cucumber/json testng/xml junit/xml qas/json hpuft/xml specflow/json |
File URL | string | Yes | Path to your result file to be uploaded. Example : The Jenkins plugin is expecting the file in Jenkins Workspace. |
Upload Screenshots | checkbox | No | Check to upload attachments in execution. Default value: false. |
Test Run Name | string | No | Name of the test run to be created. It will be appended with the Jenkins build Number. |
Test Run Key | string | No | Existing Issue Key of Test Run. Test run will be appended with the test case and executions. |
Test Asset Hierarchy | selection |
| Level of Hierarchy : Test Scenario-Test Case Or Test Case-Test Step |
TestCaseUpdateLevel | selection | No | Test Case update level while reusing test case, starts from 0 to 2. (This is only applicable when you use TestCase-TestStep Hierarchy option) 0 Append test steps while reusing Test Case. |
Platform | string | No | Name of Platform on which test run to be executed. |
Labels | string | No | Comma separated names of Labels to be added to the test run. |
Versions | string | No | Comma separated names of versions to be added to the test run. |
Components | string | No | Comma separated names of Components to be added to the test run. |
Sprint | string | No | Name of Sprint to be added to the test run. |
Comment | string | No | Comment to be added to the test run. |
JIRAFields |
| No | Check specific Automation custom fields possible value and format here |
4. On successful completion of the process, you can see the console output. It displays statistics for Tests run, Failures, Errors, Skipped, etc.
5. Finally check your JIRA account.
In case of Cloud instance, you can see the success result for your test cases.
Configure Specflow for Freestyle
Prerequisites
1) MSBuild Plugin
2) VSTest Runnner Plugin
3) Visual Studio IDE setup or Visual Studio Build Tools setup on server
Step 1: Checkout Source Code.
Step 2: Add Script to update packages for msbuild using NuGet.exe file from checkout repository.
Step 3: Configure msbuild executable in Manage Jenkins > Global Tool Configuration > MSTest.
Step 4: Select a build step for MSBuild in Build Section.
Step 5: 1)Select "MSBuild Version" which is configured in Global Tool Configuration
2)Specify the relative path for solution file in "MSBuild Build File"
Step 6: Configure vstest executable in Manage Jenkins > Global Tool Configuration > VSTest.
Step 7: Select a build step for VSTest in Build Section.
Step 8: 1)Select "VSTest Version" which is configured in Global Tool Configuration
2)Specify the relative path to your VSTest compiled assemblies in "Test Files"
3)Uncheck "Enable Code Coverage" checkbox
Pipeline
QMetry Test Management supports Jenkins Pipeline for implementing and integrating continuous delivery pipelines into Jenkins.
Let’s create a standard Pipeline job in Jenkins.
1. To create a new Jenkins job, click on the New Item option on the Jenkins menu.
2. Provide a name for your job.
Select Pipeline on the screen and then click OK.
3. Next, the configuration page appears where you can configure your job by various categories: General, Build Triggers, Advanced Project Options, and Pipeline.
4. Optionally, you can set Build Triggers.
Select the Build Triggers tab. Let’s just add a periodic trigger which triggers build every minute – every hour – every day (Schedule: * * * * *).
5. Advanced Project Options: This is optional. You can give Display Name which will replace the name you gave earlier to the Pipeline project.
6. Jenkins works as a bridge between QMetry Test Management and automation frameworks. To publish results in QMetry, provide Pipeline script.
Enter Pipeline script to define your code repository, generate test result and upload test results into QMetry Test Management.
Code Snippet for Cloud
Pipeline Script
|
Code Snippet for Server (QMetry for JIRA - Test Management Plugin v1.18)
Pipeline Script
→ Basic Authentication
step([$class: 'QTM4JResultPublisher',testToRun: 'SERVER',jiraurlserver: 'http://qtmforjira.qmetry.com', serverAuthenticationType:'BASICAUTH', username: 'superadmin',password: hudson.util.Secret.fromString('password'),apikeyserver: '3527c27609317aae022071af2dd7f908c93110b6ed9', formatserver: 'junit/xml', fileserver: '/target\\surefire-reports\\TEST-com.temp.junit.temptestcase.FirstTestTest.xml', testassethierarchyserver: 'TestCase-TestStep', labelsserver: 'junit master', versionserver: 'version 1.11', testrunnameserver: 'demo junit testrun for testcase level', testrunkeyserver: 'TES-3', platformserver: 'platform 1', componentserver: 'pipeline project', sprintserver: 'JEN Sprint 1', commentserver: 'junit master comment', testCaseUpdateLevelServer: '2', jirafieldsserver: ' ', attachFileServer: false]) |
→ Token Authentication
step([$class: 'QTM4JResultPublisher',testToRun: 'SERVER',jiraurlserver: 'http://qtmforjira.qmetry.com', serverAuthenticationType:'TOKENAUTH', personalAccessToken:'NzQ2NzU1NjI5MjMxOhPMCv1Pd1B3kqighS78uwGg', apikeyserver: '3527c27609317aae02071ac16f2dd708c93110cb6ed9', formatserver: 'junit/xml', fileserver: '/target\\surefire-reports\\TEST-com.temp.junit.temptestcase.FirstTestTest.xml', testassethierarchyserver: 'TestCase-TestStep', labelsserver: 'junit master', versionserver: 'version 1.11', testrunnameserver: 'demo junit testrun for testcase level', testrunkeyserver: 'TES-3', platformserver: 'platform 1', componentserver: 'pipeline project', sprintserver: 'JEN Sprint 1', commentserver: 'junit master comment', testCaseUpdateLevelServer: '2', jirafieldsserver: ' ', attachFileServer: false]) |
Code Snippet for Server (QMetry for JIRA - Test Management Plugin v1.14)
Pipeline Script
step([$class: 'QTM4JResultPublisher',testToRun: 'SERVER',jiraurlserver: 'http://qtmforjira.qmetry.com',username: 'superadmin',password: hudson.util.Secret.fromString('password'),apikeyserver: '3527c27609317aae022071ac16f2dd7f908c93110cb6ed9', formatserver: 'junit/xml', fileserver: '/target\\surefire-reports\\TEST-com.temp.junit.temptestcase.FirstTestTest.xml', testassethierarchyserver: 'TestCase-TestStep', labelsserver: 'junit master', versionserver: 'version 1.11', testrunnameserver: 'demo junit testrun for testcase level', testrunkeyserver: 'TES-3', platformserver: 'platform 1', componentserver: 'pipeline project', sprintserver: 'JEN Sprint 1', commentserver: 'junit master comment', testCaseUpdateLevelServer: '2', jirafieldsserver: ' ', attachFileServer: false]) |
Code Snippet for Server (QMetry for JIRA - Test Management Plugin v1.13 and below)
Pipeline Script
step([$class: 'QTM4JResultPublisher',testToRun: 'SERVER',jiraurlserver: 'http://qtmforjira.qmetry.com',username: 'superadmin',password:'password',apikeyserver: '3527c27609317aae022071ac16f2dd7f908c93110cb6ed9', formatserver: 'junit/xml', fileserver: '/target\\surefire-reports\\TEST-com.temp.junit.temptestcase.FirstTestTest.xml', testassethierarchyserver: 'TestCase-TestStep', labelsserver: 'junit master', versionserver: 'version 1.11', testrunnameserver: 'demo junit testrun for testcase level', testrunkeyserver: 'TES-3', platformserver: 'platform 1', componentserver: 'pipeline project', sprintserver: 'JEN Sprint 1', commentserver: 'junit master comment', testCaseUpdateLevelServer: '2', jirafieldsserver: ' ', attachFileServer: false]) |
Note: The hudson.util.Secret.fromString() method is static and since Jenkins blocks static method calls, Changes must be made using an administrative user account to approve the function permanently.
Jenkins -> Manage Jenkins -> In-Process Script Approval
Approve signature: staticMethod hudson.util.Secret fromString java.lang.String
Here is a link For publishing multiple framework Test Results from a single Pipeline job on QMetry for Jira 3.x server/cloud version.
Syntax of format:
cucumber/json
testng/xml
junit/xml
qas/json
hpuft/xml
specflow/json