Manage tests
Create, manage and run automated tests
Our IDE
An IDE made for testing
CLI & CI
CLI & continuous integration support

Reporting
Integrated reporting and issue tracking

Manage tests
Create, manage and run automated tests
Our IDE
An IDE made for testing
CLI & CI
CLI & continuous integration support

Reporting
Integrated reporting and issue tracking
Verify tests
Verify complex test data

Access all QiTASC manuals & tutorials

Newsroom / Continuous Integration (Jenkins) With intaQt

Continuous Integration (Jenkins) With intaQt

In this tutorial, we’ll show you how to incorporate intaQt into the Jenkins continuous integration framework. Try our sample project out for yourself and see how easy it is to further automate your testing!

Continuous Integration (Jenkins) With intaQt

This tutorial will show you how to use the Jenkins continuous integration (CI) system to run intaQt test cases within a CI environment. A Jenkins Server manages build projects, which are executed on the Jenkins build agents.

This tutorial assumes that you know how to use intaQt Client. If you have not used intaQt Client before, please see our intaQt Client tutorial. This tutorial also assumes that you are familiar with the basics of version control (e.g. Git or Subversion).

Required QiTASC Products

The following products must be installed and running using the QiTASC Cockpit in order to run intaQt test cases via Jenkins:

  • intaQt - This should be running on a remote machine.
  • ADM with Android SDK - This should be on the same machine on which intaQt is running.
  • intaQt Client - This must be the same version as for intaQt.

For detailed installation instructions, please refer to the intaQt manual’s intaQt Installation section.

Infrastructure and Prerequisites

In addition to the above QiTASC products, the following must be set up and running:

  • All Jenkins build agents must have intaQt Client installed: Test cases will be executed via intaQt Client on another remote machine where intaQt is running.
  • A Jenkins CI environment (a Jenkins server and optional Jenkins build agents)
    • If using a Jenkins Agent, intaQt Client must also be installed on the Agent (the same version as intaQt).
  • An intaQt project that is under version control. If you do not have a project available, create the basic project that is described in the intaQt Client tutorial.

Admin access to Jenkins server is necessary to make the steps in the tutorial.

Note: There is always a Jenkins Server and there are always Jenkins Build Agents, however a Jenkins Server can also be used as a build agent.

Configure and Start intaQt on the Remote Machine

Configuration

Add the following configuration block into the Server.conf, which is located in QiTASC/intaqt/config:

Intact2ApiAdapter = {
        adapterPort: 36012
}

This means that intaQt’s API Adapter is configured to listen on port 36012.

Start intaQt Server on the Remote Machine

It is important that intaQt (with ADM) is running for the duration of the Jenkins usage. To start intaQt from the command line, navigate to the QiTASC directory on your remote machine. Then enter the following commands:

Windows Users

qitasc start adm
qitasc start intaqt

Linux and Mac OS Users

./qitasc start adm.exe
./qitasc start intaqt-server

Note: It is a good practice to reserve an intaQt license exclusively for Jenkins usage. This is to avoid conflicts in case non-CI projects also need to be run.

Configure and Run Jenkins

Now that you have set up your intaQt Client project, you can configure Jenkins so that it will run the intaQt project build.

Add Environment Variables on the Jenkins Server

Next we’ll configure three global environment variables so that intaQt and Jenkins can communicate with each other. Select Manage Jenkins from the left-hand menu, then select Configure System. You should see a view that looks like this:

alt text

Scroll down until you reach a section called Global properties. This is where you will configure your environment variables.

Define an environment variable for each one of the following:

  • INTAQT_SERVER - intaQt hostname.
  • INTAQT_CLI_EXEC - Location of the intaQt Client on the agent.
    • When there is more than one Jenkins agents, intaQt Client must be installed in the same location as each Jenkins agent.
  • INTAQT_PORT intaQt port, which should be 36012, unless configured otherwise when creating your project.

Example

alt text

Create a New Build Project

Select New Item from the left-hand menu then click Freestyle project:

alt text

Assign the project a name of your choice, then scroll to the bottom of the page and click OK.

Configure the Source Code Management

After assigning your project a name and clicking OK, the following view should appear:

alt text

Select the Source Code Management tab. Here, you will need to configure the version control tools you are using for your project. If you are not sure what to put here, contact your administrator. Whether using Git or Subversion, select jenkins from the Credentials menu.

alt text

Configure the Build Environment

Scroll down and click the Delete workspace before build starts box:

alt text

Configure Build

In the Build section, select the type of step you’ll use to run the build. For this example, we’ll use a Linux agent and choose Execute shell, then enter the following command into the text box:

$INTAQT_CLI_EXEC test -h $INTAQT_SERVER -p $INTAQT_PORT HowTo-IntaqtClient

alt text

If you have already used our intaQt Client Tutorial to execute features on a remote host, or used intaQt Client, then the syntax may look familiar to you. The only difference is that we are using environment variables to represent parameters:

  • The host, indicated by -h, which we configured with the environment variable INTAQT_SERVER above.
  • The port, indicated by p, which we configured with the environment variable INTAQT_PORT above.
  • Additionally, the folder where intaQt Feature Files are specified as HowTo-IntaqtClient.

When executing the same project via intaQt Client, the syntax would look like:

./intaqt test -h qvie-peter.qvie.qitasc.com -p 36012 HowTo-IntaqtClient

Configure Post-build Actions

Finally, we’ll add two post-build actions:

  • Archive the artifacts
  • Publish JUnit test result report

alt text

Archive the Artifacts

First, we want to store intaQt Client’s intaqt.log file for each run, as well as its report folder. Select Archive the Artifacts option from the Post-build action menu, and enter the following into the Files to archive field:

intaqt.log, report-*/**

Publish JUnit Test Result Report

Second, select Publish JUnit test result report from the Add post-build action menu and enter the following into the Test reports XMLs field:

report-*/**.xml

Run the Jenkins Build

Select Build Now from the drop-down menu containing your project’s name. In our case, the project name is MyProject:

alt text

A status bar will appear – This shows that your project is being executed:

alt text

Check Build Results

There are a few ways to check your projects’ results. Clicking on the build number, for example, #9 in the example above, is a simple approach. Alternately, you can go to the Jenkins Dashboard and see a list of all projects:

alt text

Clicking on a project brings up a summary/dashboard:

alt text

We’ll select Last successful build, which brings up the following page:

alt text

Clicking on Test Result gives a quick overview of what happened during the build:

alt text

Alternately, we can go back to our project view and click on Build Artifacts, which provides a list of items created during the execution:

alt text

These artifacts are the same items that you would find in your projects’ reports folder. If we click on the report-20180412-172545 folder, we’ll see the following list of artifacts:

alt text

Click on the index.html report to see an overview of the results. For more information about the different report types that will appear as artifacts, refer to the intaQt manual’s Reports and Logs section.

Conclusion

In this tutorial, we showed you how to integrate intaQt into a Jenkins continuous integration environment using the same test cases and project structure as for the intaQt Client tutorial. After demonstrating the basic project configurations, we provided a quick summary of the various ways you can examine the test results. The Jenkins User Documentation is a great source of reference materials, including tutorials and use cases.

Are you interested in learning more about how intaQt can be combined with tools like Jenkins and TeamCity? Contact us at sales@qitasc.com and we’ll help you optimize your testing!