How to Integrate qTest to Jenkins Pipeline Projects

How to Integrate to Jenkins Pipeline Projects

Install qTest Plugin

Welcome to a quick overview on how to integrate qTest Manager with your Jenkins Pipeline projects.  To get started, you will need to install the qTest Jenkins plugin that is located on the Jenkins.io marketplace.  Once you select the Plugins tab, simply search for “qTest” and download the plugin to your Jenkins instance.

You can also follow the step-by-step guide on both our Jenkins and Bamboo integrations over at https://support.qasymphony.com.

Add Pipeline Project

Now that we have installed the plugin, you need to add a new Jenkins item labeled as “Pipeline”.  qTest Manager integrates with Jenkins Freestyle as well, but for this video we are focusing Pipeline configuration. After the item has been added, you will need to add in your existing Pipeline script in the script editor and click save.

Configure qTest Plugin

Once you have added and then saved your Pipeline script, go ahead and go back in using the Configuration option, navigate back to the Pipeline area, and then select the Pipeline Syntax option.

Under the Steps area, you’ll now need to select the qTest plugin. Search for “qTest plugin,” submit Junit results to qTest, and then select the option.

Add qTest URL and API Token

Before we continue, we now need to add in our qTest URL and our API key to finish our Pipeline integration.

In this example, I’m adding in our demo instance, which is demo.qtestnet.com. And now, I need to go back over into qTest Manager to find our API key. But first, go to Automation Settings, and then make sure you have your Automation Status and your CI Status turned on. Also, don’t forget to map over your Jenkins results over into the qTest Manager test run statuses. To find your API token, go to the Download section of qTest Manager, and then select CI Tool Integration. Copy your API token, and then head back over to Jenkins to insert it into the API Key section. This allows you to retrieve any qTest project with your API token.

Map Jenkins Test Results

After you select your qTest project for the Jenkins Pipeline integration, you then have the option to choose how your test results are submitted into qTest Manager. For example, I can submit it to Release 1, and then choose how my test results will be displayed over in Test Cycles or in Test Suite Locations.

This is a great way to organize your CI results from functional automation test and also manual test executions. After you choose how your test results will be displayed in qTest Manager, select the Parse Test Results option from the Testing Tools, and then enter the result location. In this example, I’m going to have a target with a .xml output.

Generate Pipeline Syntax

Now, you’re able to generate the Pipeline syntax that will be used back over when you configured your Pipeline project. Copy the Pipeline syntax, and then go back over into the Configuration option under your Jenkins Pipeline project.

From here, insert it into the script location, and then click Save to get started with your Pipeline integration.

Build Jenkins Project

Now, let’s build our project and see how the results get displayed over in qTest Manager. Here, I’m building my Pipeline project, and we’re gonna speed it up here for demo’s sake. But after the build has been complete go ahead and select the qTest Plugin option on the left panel to see the test results.

View Results in qTest Manager

The qTest plugin is a great way to get back over into qTest Manager to view your test results right away. Now that I’ve clicked that link, I’m brought over into the Test Execution module of qTest Manager, where I can analyze my CI results from Jenkins Pipeline directly in the Execution view.

From here, I can do analysis around what results have failed, log defects over into external tools like JIRA, or use qTest Insights to create more executive-level dashboards around my Jenkins results. In this example, I’ve created a dashboard view that pulls together the quality metrics of my results from my latest Jenkins build.

Get Started with QASymphony