Using iMacros with JMeter, you can perform load tests with 100% realistic testing data to accurately reflect true end-user experiences. Most load testing tools simulate only the server side traffic that is generated by the browser at the HTTP layer. iMacros makes the difference by testing the complete web application inside the browser on the client side (iMacros Browser, Internet Explorer, Firefox and Chrome). This includes load testing websites with AJAX, Flash, Flex, Silverlight or Java applets. So, the metrics collected by JMeter when using iMacros render the overall browser execution time.
This approach requires that each simulated user has his own browser instance. You can run several instances of iMacros Browser at once, thus simulating concurrent users. This approach works very well for 1…50 users per average PC. The limit is only the number of IE or Firefox instances that can run on your machine. To run iMacros for Firefox with Multiple Profiles, you can use the Profile Manager or a batch file for creating profiles. A user profile in Chrome can be cloned by simply copying its content into a new folder.
Getting started is easy: To use iMacros with JMeter you do not need to install any plug-in.
All you need is to create a script to control iMacros, and build a Test Plan in JMeter that launches the script.
How to Launch iMacros from JMeter Using VB Script
1. Create a VB Script to Control iMacros
The iMacros Enterprise Edition automatically installs the Web Browser API (iMacros Scripting Interface). With these powerful commands you can easy write scripts (in a scripting language of your choice) that allow you to control iMacros. The following VB script is executing simple iMacros code for navigating to a web page:
Tip: Use the iMacros Editor Code Generator feature to convert your iMacros macros into scripting/programming language code.
2. Build a JMeter Test Plan
The next step is to build a Test Plan in JMeter. Add a Thread Group to your Test Plan to create multiple threads and change its values as desired. Each thread will have a single browser instance.
Add to the Thread Group an OS Process Sampler with the “cmd” command and the following two values:
The second value contains the path to your VB script. Finally, you need to add listeners, e.g. Summary Report, to display the test results.
How to Launch iMacros from JMeter Using Powershell and iMacros Browser
Instead of VBScript, it is possible to use PowerShell to control iMacros as the following example shows:
The PowerShell script can be launched in JMeter by adding an OS Process Sampler:
Notice that the PowerShell script takes as an argument the JMeter built-in variable __threadNum and displays the current thread number in iMacros.
Passing Arguments from JMeter to PowerShell and Running iMacros for Firefox
The following PowerShell script launches iMacros for Firefox using multiple profiles named f1, f2, f3…fn:
Using the built-in __threadNum variable allows you to associate each thread to a single browser instance. In JMeter you can also define user variables that can be passed to the PowerShell script, e.g. loopsNum that simply contains the total number of loops:
There is more in-depth information about the User Defined Variables on the JMeter documentation page.
Adding Listeners to View and Store the Test Results
The listener components display the collected performance and load test results of the samplers. The metrics can be shown in a tree, table, graph or log file:
Download scripting code and test plans:
Note: Consider changing the directory path in the JMeter samplers to where the scripts are stored.
Web Automation Blog
- Attention Firefox users: As promised, the iMacr...
- Hello Firefox users, thank you for your continu...
- Ipswitch announces iMacros for Chrome 10.0 with...
- May 2018
- April 2018
- December 2017
- November 2017
- September 2017
- December 2016
- October 2016
- August 2016
- June 2016
- April 2016
- March 2016
- November 2015
- October 2015
- July 2015
- May 2015
- April 2015
- January 2015
- December 2014
- November 2014
- September 2014
- August 2014
- July 2014
- May 2014
- April 2014
- February 2014
- December 2013
- November 2013
- October 2013
- February 2013
- January 2013