JMeter Automation
This article illustrates how to use the Shell Script Automation Host Feature to pull tests from GitHub. run tests from the command line on a .jmx file, parse the results, and automatically upload the test results to qTest Manager.
After the initial upload, the script allows you to schedule specific tests from qTest Manager, rerun tests, and update only those results on qTest.
Prerequisites
You will need to install the following applications to use the JMeter./span> Automation Feature:
-
Python 3.6 from https://www.python.org/downloads/
-
PIP (package manager for Python)
-
-
Apache JMeter./strong> from https://jmeter.apache.org/download_jmeter.cgi
-
Git for the Command Line from https://git-scm.com/download/
Tips for Prerequisite Set Up
Check PIP Installation
These instructions will work from Terminal (Mac. or Command Prompt (Windows.)
-
Run this command to ensure the PIP install with Python was successful. It should output the pip version:
pip --version
-
If PIP did not install, run the command below:
python -m -ensurepip --default-pip
For more information on PIP installation, read here: -
Once the PIP install is successful, run the following commands individually:
pip install requests
pip install urllib3
pip install xml.etree.ElementTree
pip install beautifulsoup4
pip install lxml
These commands will install the necessary modules required to run the Python scripts. The modules are used to send requests to the API, read json configuration files, parse xml documents, and upload files to qTest.
Windows
Ensure that all environment variables are set up correctly, before running the Automation Host script, specifically that the PATH variable is updated for Python, JMeter. and Git.
Mac
-
Use Homebrew to install Python and Maven. Steps for installing Homebrew can be found at https://brew.sh
-
Once you install Homebrew, run the following command to get Python3:
brew install python3
-
Enter the following command to get Apache JMeter:
brew install jmeter
JMeter. Automation Host Example from GitHub
https://github.com/sanjayjohn/shell-agent-samples/tree/master/AutomationHostExamples/automateJMeter
Update Configuration File
Open the conf.json file, and update with your personal information. Enter your own qTest URL and API Token found in your qTest Manager Environment.
- git_url: The shell script uses the URL to clone a repository and send pull requests every time it runs if -git input is used.
- local_repository: The folder containing the .jmx file. The shell script will use this to know where to run the tests.
- qtest_api_token: The token used to authorize the connection to qTest Manager.
- qtest_url: The personal url that is used to access the qTest API.
Setup Automation
Follow these instructions to set up your automated testing:
-
Navigate to your Automation Host.
-
Select the Add icon to add a new agent.
-
In the New Agent window, enter the appropriate information for the following fields:
-
General Agent Information
-
Agent Name: Name
-
qTest Manager Project: Select your project
-
Agent Type: Choose Shell Agent
-
- Test Scripts Information
Directory: The directory containing your scripts and shell agent (Directory where the scripts were cloned)
Allocated Execution Time: Amount of time you expect the script to take to execute in minutes
- Kick-off Scripts: The file path to your shell script. This shell script takes in two inputs, one for using git and the second for updating your current test cycle.
To give the shell script permission to run, use the following command:
Windows: run.bat
Linux: chmod +x run.sh
Shell Script Inputs:
-git
Uses GitHub to clone a test case repository and send pull requests every time the shell script is run.
-update
Updates an existing test cycle or create a new test cycle if the first test run.
(To create a new test cycle every time the script is run, do not use this argument.)
To run the shell agent, without using GitHub or updating the existing test cycle, do not include the parameters above in the Kick-off Scripts section.
-
-
Save to close.
Run the Shell Script
To start the shell script, select the yellow icon in the action field which will upload all of the test cases to qTest Manager.
Schedule your Tests
-
In Manager, select the Test Execution tab.
-
Locate the Test Cycle in your project named "Jmeter Automated Tests."
-
Select the Test Cycle and it will display all of the tests that were run through the maven build along with their statuses.
-
Select the checkboxes for the specific tests you would like to schedule and select 'Schedule' from the 'More' drop-down menu.
-
In the Agent drop-down menu, select the Shell Agent and select OK.
-
Once the tests are scheduled, you will need to go back to the Automation Host and select Poll Now to kick the Shell Agent off.
Tips for .jmx File:
When setting up the Test Plan for Jmeter, make sure to configure the aggregate report for each thread group to “Save as XML” as shown below. This configuration will create a results.xml that the parser will be able to read and upload results to qTest Manager.