IMPORTANT: Since this article was written, QASymphony has released a supported UFT integration for the qTest Platform. Please see the test automation scheduling articles for more information.
Author: Aaron Mann, Senior Automation Engineer at American Equity
Why We Build This Integration
Our company began the search for a test management system in early 2015. At that time we had a heavy reliance on HP’s UFT due to a legacy application. Even with this reliance, we didn’t see HP Quality Center as a viable test management system because of its high cost and the complexity. The complexity of the system would have also required a considerable investment in time for our testers. With cost and complexity in mind, we settled on QA Symphony’s qTest Manager as our test management system.
This was great news for our manual testers, but our automation team dreamed of being able to execute our test automation scenarios from qTest. After some brief research, we realized that we could implement a web service that could provide this capability so we created a simple architecture based on the test execution model that allows to easily execute UFT scripts from qTest Manager. This framework will also help us in the future as we transition off HP UFT and onto more open source tools like Selenium as we start to leverage qTest Explorer’s Automated Script Generator.
Check out how we built our own custom integration and learn how your team might be able to do that same thing.
- qTest Manager
- Custom Built Chrome Extension
We used a combination of qTest APIs and the UFT run time DLL.
- Submit An Automation Test Log
- Get All Test Runs Under A Specific Test Suite
- Get A Test Run By Its ID
American Equity built two C# web APIs that work together to farm out UFT tests onto the correct test environments while also working with the above qTest APIs to return results back into qTest Manager.
Automation Foreman – Overall controller, that allows us to pick up stored automated tests in qTest Manager and execute them on the specified UFT machines. There is only one instance of this service installed as a web service.
Automation Worker – Handles the requests from the foreman and provides the UFT integration It is installed as a web service on each of the lab/UFT machines. This integrates with the UFT Runtime DLL for UFT for execution.
Chrome Extension - The Chrome extension will read the URL on the test suite and will give a listing of the Lab machines that we can execute against.
Open Source Links
Summary Integration Workflow
Turning on Automation Setting
First, you must turn on automation setting in qTest Manager’s project settings. In our example, we mapped the status we are sending back and forth between test executed on UFT and status’ received in qTest Manager.
Once this is turned on, you will then a have a new 'Automation Test Case" button in the Test Design module to create a new automated test.
Setting up UFT Tests in qTest Manager
To set up the connector between the tests, we are using the automation content value. In here, we put the directory path value of the UFT automation script. For example, if using a company directory system to store your tests, you would insert the path of the script on that company directory.
In Test Design module
- Add new Automation Test Case
- Add a new test path to the automation content value field
\\<server_name>\UFT Script Name
- Change ‘Type’ field to Automation
- Save and approve
In Test Execution Module
- Add new Automation Test Case to Test Suite.
Executing Tests from qTest Manager
To launch tests, we have a chrome extension. The Chrome extension will read the URL on the test suite and will give a listing of the Lab machines that we can execute against. Also, this plugin gives the list of automated test scripts that we can execute.
If I wanted to run these tests on Lab ‘29’ and can it execute
The lab machine will kick off the two example tests that on the machine.
We sent a message from the chrome extension to our “Automation Foreman” and then this sends out a message to the web service that is telling UFT to execute the tests on the machine selected.
Once completed, UFT will close and then the test results will be sent back to qTest Manager’s Test Execution module for reporting.
Having this integration allows our users to more easily find and execute our UFT scripts without having to directly interact with UFT or the lab machines. The ability to run directly from the test suite and have the test results available in one place has improved visibility and reporting. The biggest benefit is that our manual testers have the ability to successfully execute automated tests freeing our automation team to focus on new development.
About American Equity
American Equity Investment Life Holding Company, through its wholly-owned operating subsidiaries, issues fixed annuity and life insurance products, with a primary emphasis on the sale of fixed index and fixed rate annuities. American Equity Investment Life Holding Company, a New York Stock Exchange Listed company (NYSE: AEL), is headquartered in West Des Moines, Iowa. For more information, please visit www.american-equity.com.