Converting HTTP web archives (HAR) to JMeter test plans
Another alternative to recording test scripts in JMeter is converting the existing HTTP web archives directly into JMeter test scripts.
How to do it…
This recipe shows you how to generate a test script from captured HTTP web requests in your browser. Perform the following steps:
- Install and launch the Google Chrome browser (if you don't already have it).
- Open Developer Tools by navigating to Tools | Developer Tools.
Note
Alternative key bindings: Mac OS (Command + Shift + I), Windows (Ctrl + Shift + I).
- Click on the Network tab.
- Make sure that the Preserve log checkbox is checked.
- Browse the websites as you normally would.
- Once you have finished browsing, open the developer tool window, right-click and select Copy All as HAR.
- Point your browser to https://flood.io/har2jmx.
- Copy the contents of the clipboard to the input box.
- Click on the Convert button.
- Launch the JMeter GUI.
- Open and examine the downloaded test script.
- Add View Results in Tree Listener to the test plan (Test plan | Add | Listener | View Results in Tree Listener).
- Save and run the exported test script.
- View the results.
Make sure that the Preserve log checkbox in the Network tab is checked to ensure all the user actions are captured, as illustrated in the following screenshot:
As shown in the following screenshot, while on the Network tab, right-click to see the Copy All as HAR option:
How it works…
With the help of built-in browser tools and plugins, a browser is able to capture all interactions between a user and a web application into the JSON (JavaScript Object Notation) format known as the web archive (HAR). This resulting JSON object includes all the information about each request including HTTP headers, methods, query strings, and so on. Given the JSON object or a file with its content, the HAR to JMX converter can then read, parse, and construct JMeter elements for each user request, similar to what a JMeter HTTP proxy would have done.
There's more…
For command-line fans who do not wish to go through the Flood IO's website to do a conversion, there's a command-line tool that can be used to achieve the HAR TO JMX conversion. Har2jmeter located at http://seitenbau.github.io/har2JMeter/ is a utility written in the Groovy language. It's still in its infancy, so you might encounter a few quirks here and there. While testing it, one thing we found out is that it currently didn't play well with secure connections (HTTPS). Also, it didn't group requests into logical controllers. We mention it here just to make you aware that it exists and such bugs will probably be fixed in the near future.
Tip
For Firefox, the firebug plugin allows you the same capability to capture requests as HAR. Visit http://www.ehow.com/how_8789702_create-har-files-using-firebug.html to see how this can be accomplished.