What happens when you fuse two of the most popular Open Source testing tools into one script? BlazeMeter has just released the brand new version of its free Chrome extension. In addition to creating Apache JMeter™ based scenarios, version 4 of the BlazeMeter Chrome Extension also creates Selenium scenarios to simulate your business case.
But wait, there’s more. The recorder creates a synchronized version of the JMeter and Selenium test, enabling you to analyze the load and GUI, simultaneously, for each action and request. Now that’s powerful performance testing. Get the BlazeMeter Chrome extension here.
JMeter and Selenium: the Best of Both Worlds
JMeter is excellent for simulating your business case on the protocol level (HTTP/s, HLS). It allows you to squeeze 500, 750, and even more than 1000 threads into a single 2vCPU x 4GB ram machine.
The problem is, it is not a browser. It lacks rendering time, time to first interaction, and other browser KPIs. (JMeter is not a browser but there are some steps you can take to make it closer to a browser - read here).
Selenium on the other hand, utilizes browsers to run your tests, which provide the exact user experience (UX) your customer will experience. Selenium also allows you to see if your site has issues on a specific type/version of the browser.
However, as you might have guessed, this comes with the cost of resources… Selenium scripts quickly consume the system resources giving you just a handful of threads from the same 2vCPU x 4GB ram machine.
In order to capture the real UX and generate massive load - the tester had to:
- Create a JMeter script based on the business case
- Create a Selenium script using the same steps they’ve done for JMeter
- Sync the transactions and script executions
Not anymore - we’ve got you covered.
BlazeMeter V4 Supports Native Selenium
This transition allows BlazeMeter to run several Open Source tools such as Selenium, JMeter, Gatling, The Grinder, Locust.io and many more (for the full list - see here).
By supporting a native Selenium execution - BlazeMeter can run the protocol level load (such as JMeter, Gatling, Locust.io) along with Selenium, to give the tester the full picture and answer questions like:
- What do my customers see during peak time load?
- Does a 1.5s response time on a specific page hurt the user experience?
- What is the impact to the user experience between customers coming from Virgina compared to Ireland?
And many more…
These questions (and their answers) provide a better understanding of the application health, for driving technical and business decisions. (Where should we focus our refactoring efforts? Do we have a problem from a specific geolocation?)
1 Recording, 1 Business Case -> 2 Scripts Synced to Tell The Full Story
The advantage described above encouraged us to go and ease the testing pain even more. We moved forward to create even more accurate and more realistic tests, so that our customers would be able to experiment and get answers to such questions faster and on their own.
With the release of the BlazeMeter Chrome Extension v4 - we are taking a major step towards a simple and better way of creating and running performance tests.
The Chrome Extension will record your HTTP/s requests and the browser user actions (click, double click, typing text etc..). By using the transaction window - the user can define Steps (UX and the HTTP/s requests) .
These Steps (a.k.a Transactions) create the sync between the load and the user experience during the test by simply running the two scripts together and correlating the KPIs for these steps.
Running Load and UX Scripts together: A simple example
Let’s assume we have the following Business Case:
- Transaction: Homepage
- Go to blazedemo.com
- Transaction: Select Route
- Select the route from Boston to Dublin
- Transaction: Find Flights
- Press find flights
- Transaction: Select Flight
- Select a flight
By running the Load (JMeter) and the UX (Selenium) scripts together, the tester can now decide:
- Is our Homepage responsive enough for our users when under load?
- How is the “Select Route” UX step affected by the load?
- When the application is saturated, which UX step is affected the most?
- I see the “Find Flight” step takes 2.5s - what is the Time to First Interaction? (Maybe the visible page is loaded in 1s and the rest are below-the-fold)
Debug and Edit Your Selenium Script
We’ve introduced a small debugger to allow users to replay their recording and make small adjustments if needed - before downloading and running their tests.
- Users can add new steps, edit current ones and even remove an accidental click to complete the scripts
- Test and edit Selenium based assertions to make sure they are working
- Replay Speed - control the speed of your script replay to move faster to the relevant step, and slow it down in order to better understand the issue
- Breakpoint - What is a debugger without breakpoints :)
Get the JMeter and Selenium Scripts
After the recording is complete you can select which scripts to download:
- JMeter (JMX) - the same thing we always have, integrating every step from the Transaction Windows as a JMeter Transaction Controller, wrapping the recorded HTTP/s request of that step
- Selenium (YAML) - a Taurus YAML based Selenium script, wrapping the recorded user actions into steps ready to be executed locally (using Taurus) or in BlazeMeter
- Taurus JMeter & Selenium (YAML) - a ready to go Taurus YAML base test to kick off a JMeter and Selenium performance test
All of these scripts can also be run in BlazeMeter, obviously, where they can be massively scaled, shared and analyzed in insightful reports.
How can I start using the BlazeMeter Chrome Recorder?
First, you’ll need to add the Chrome Extension to your Chrome from the Chrome Web Store
- Open a new tab
- Click Web Store
- Search for BlazeMeter
- Press the plugin and click on the “Add to Chrome” on the upper right corner
(Or click here).
You can start recording right away, or you can go through the documentation on the BlazeMeter Knowledge Base.
- The BlazeMeter Chrome Extension V4 will enable testers to create advanced Performance tests in a faster, simpler, and more accurate way.
- By combining Selenium and JMeter - testers have a better understanding of the real user experience their customers have in the tested business case.
- The BlazeMeter Chrome Recorder doesn’t require installing Selenium nor JMeter to record and get these the scripts - so anyone with a Chrome Browser can start creating scripts.
- The BlazeMeter Chrome Recorder is beginner friendly (UI based, YAML output) so anyone can download and experiment. But it’s also fit for advanced users: you will save a lot of the time it would take you creating these business cases from scratch.
And this is just the beginning…
Get the BlazeMeter Chrome Extension here. To try out BlazeMeter, just put your URL in the box below, and your test will start in minutes.
You might also find these useful:
Interested in writing for our Blog? Send us a pitch!