How to Design Virtual Users as Fierce as RuPaul
Rupaul is an American actor, author, drag queen, model and recording artist born in the sixties.
What is recording¶
Recording consists of creating a snapshot of the interactions between a web browser or a mobile app and a remote HTTP server. This step is particularly important to create realistic load tests. We have already made great tutorials about recording using JMeter, Fiddler and Google Chrome.
Improved Import¶
We're excited to announce that we've added the following features:
- New Record Wizard: the wizard has been greatly reworked for enhanced readability,
- Automated containers (business transactions): when importing a Google Chrome or Fiddler HAR, we create containers for you automatically,
- Automated Dynamic Resources: a recording can be bloated with many requests to resources like Javascript, Images or Css. You can now choose to remove them automatically, and we switch HTML request to download those resources dynamically.
Let's take a tour of all these features and see how they help to create realistic virtual users quicker than before!
New Record Wizard¶
The virtual user creation wizard has been improved to highlight the different supported import formats. Depending on the import format, we use different algorithms to generate the best possible virtual user:
- Google Chrome and Firefox: the containers are generated by the browser itself
- Fiddler,
- And JMeter.
When choosing to import an HAR or a JMX script, there is a new option available on step 2.
When selecting to Download the resources automatically, we remove Javascript, Images and Css requests. HTML pages are switched to Download Resources Automatically. The content of the HTML response is parsed and resources are then requested dynamically. The virtual user becomes easier to understand.
Automated Containers¶
This is surely the most interesting feature. We create containers (also known as Business Transaction) automatically during the import by analyzing the uploaded recording. The following screenshot shows how the virtual user looked before we introduced this feature.
The virtual user had only one Default container containing all the requests. The purpose of load testing is to get accurate results for business transactions. So we improved the process to guess containers as much as possible. When importing the virtual user, it now looks like the screenshot below.
The virtual user looks way better! And test report statistics will be more meaningful too. Of course, you could do this manually each time importing the virtual user. But why do something manually when it can be automated?
Download resources automatically¶
Virtual users can rapidly get bloated with hundred of requests to static resources like Javascript or images. When designing a virtual user which browses an online store, you would like the user to requests the images related to the product category he's viewing. This feature automatically removes static resources and enables HTML pages to download them on the fly.
The virtual user above comes from an HAR import with Keep resources option. The resources requests are kept.
Now, static resources have been removed and the requests to HTML pages are automatically downloading them. In this example, if we change the product category the virtual user is querying, the images of the new target category will be downloaded automatically on the fly.
Productivity Gains¶
Before these improvements, we felt like something was missing. Too much repeated rework was necessary. These features dramatically improve the productivity when importing a virtual user from a Google Chrome, Fiddler or JMeter recording. We hope you will enjoy these improvements and have fun load testing with OctoPerf!