Repurposing Methodology and Architecture
Appvance Repurposing Methodology applied to Selenium enables many types of testing:
Functional Testing in the Firefox Web Browser - Record test scripts using Selenium IDE, a plug-in to the Firefox browser. Play the test scripts in the Firefox browser.
Browser Compatibility Tests - Play recorded Selenium tests in Edge, Safari, Chrome, and other browsers. Play the tests on a grid of machines with multiple operating environments and multiple browser versions.
Load and Performance Testing - Determine the Scalability Index of your application by observing the throughput of your application at increasing levels of concurrently running virtual users. Each virtual user operates a test use case with one or more Selenium tests.
Synthetic Test - Prove compliance with a Service Level Agreement (SLA) by periodically running a Selenium test script. AIQ sends notification emails when the Selenium script fails or encounters an error condition.
Stress Testing - Understand the behavior as your application comes under unexpected high load conditions.
In each of the above types of tests AIQ re-purposes a single Selenium test script. The AIQ architecture makes re-purposing possible.
AIQ operates Selenium tests as load and performance tests by running the tests in one or more TestNodes. The TestNode operates the test in a browser (such as Edge, Safari, Chrome) or using HTMLUnit. HTMLUnit is a commercial headless browser framework that provides a programmatic simulation of a Web browser. HTMLUnit uses Rhino, the Mozilla JavaScript engine, to run JavaScript and Ajax programs. This approach makes it easy to run hundreds to thousands of simulated users in a load and performance test. The alternative would be costly test runs that start a browser for each simulated user.
AIQ makes it easy to pivot from one type of testing to another. For example, functional testing is often the time to ensure the test scripts work as expected. With a click of a button in the Appvance Scenario Builder, a functional test becomes a load and performance test. While loading the application under test with several virtual users your test may uncover another functional issue. Pivoting back to functional testing is easy with AIQ.
Once you record a test, AIQ re-purposes the test to be a functional test, load test, and performance test.
Often AIQ users will follow this methodology:
a) Record a Selenium test in Selenium IDE using the Firefox browser. Save the test in the Selenese file format. Confirm the test runs by playing the test against the application in the Firefox browser.
b) Run the Selenium test in a TestNode in the Firefox browser. Create a AIQ TestScenario using the Appvance Scenario Builder. Identify one or more Selenium tests to run in a test use case in the Scenario Builder's Use Case tab. Use the Selenium RC test type and identify *firefox as the browser. AIQ sends the Selenium test to TestNode. The TestNode launches Firefox and plays the test. The TestNode records the time it takes for each step of the Selenium test to operate. AIQ plots a set of results charts to identify functional issues in the test and application.
c) Run the Selenium test in a TestNode in the HtmlUnit browser. Same operation but this time using the headless HtmlUnit browser.
d) Run the test as a Load and Performance test. Operates the Selenium test at several levels of load. Identifies the Scalability Index of the application. Surfaces performance bottlenecks and functional issues.
e) Run the test as a Synthetic test. Operates the Selenium test periodically to prove compliance with an SLA and to surface functional issues.