Jenkins is the way to automate testing, reporting and scaling

Automation of LoadRunner Functional Testing With Jenkins

Submitted By Jenkins User Anand Bhagwat
Using Jenkins, this AI-software company learned how to automate load testing and functional testing as part of their continuous integration and  continuous delivery process.
Organization: Artificial intelligence software creation for industrial and manufacturing customers
Industries: Quality Engineering and Automation
Programming Languages: Java, Python
Version Control Systems: GitLab
Community Support: Jenkins.io websites & blogs, spoke with colleagues and peers

Automate load and functional testing throughout the entire CI/CD process.

Background:  When your company creates AI infused industrial analytical applications for large enterprise organizations, quality control and innovation begins and ends with its DevOps team. For them, load testing vast amounts of data across their entire pipeline was a critical requirement: automation was the key. For software engineers tasked with managing, developing, and running a LoadRunner testing script, found it challenging not having the ability to run it continuously and capture the result in an automated format. As a part of Quality Assurance, the team needs to manage the entire DevOps lifecycle, including continuous deployment and continuous testing. 

Goals:  Automate LoadRunner Software’s load and functional testing and run throughout the entire CI/CD process

"Life without Jenkins is no life for an engineer."
image— Anand Bhagwat, QA Automation Engineer

Solution & Results: We started by exploring possible Jenkins capabilities and its rich set of plugins with almost every CI-CD and testing software. Our scripts are in LoadRunner, but nobody knew how to run them in conjunction with continuous integration software. Facing these technical challenges, we created a Freestyle job in Jenkins and used the LoadRunner Plugin for our tests. Since the load testing target machine needed to be higher in CPU and RAM size, we added a remote AWS node as a runner machine. We incorporated and added the token and connection capabilities with Jenkins to communicate with that machine. 

With the basic setup to run tests complete, we then used a Jenkins LoadRunner plugin called 'Execute Micro Focus tests from the file system.' We also used plugins for reporting that will run the LoadRunner agent and start executing. When it completes its analysis, it generates an outstanding report. 

We can automate all of these processes with Jenkins, and rely on the following Jenkins capabilities:

  1. Jenkins Micro Focus Application Automation Tools plugin (this helped us integrate LoadRunner Project into CI/CD)

  2. Automated hooks via integration with SCM polling

  3. Remote node adding 

  4. Post-Run steps for the reports

Jenkins has allowed us to efficiently ship and perform our audit cycle, although there clearly are some places where we ought to do this task more frequently. 

Life without Jenkins is no life for an engineer! Using Jenkins, we discovered:

  • increased running time and automated trigger

  • reduced manual running and maintaining of artifacts

  • automated reporting and scaling via connections to a remote machine 

  • ability to provide faster feedback using Jenkins integration