Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

The New BlazeMeter Chrome Extension V4: Easily Script JMeter and Selenium

DZone's Guide to

The New BlazeMeter Chrome Extension V4: Easily Script JMeter and Selenium

Learn about the functionality of BlazeMeter's free Chrome extension for use in load testing, like creating Selenium scenarios to simulate your business case.

· Performance Zone ·
Free Resource

xMatters delivers integration-driven collaboration that relays data between systems, while engaging the right people to proactively resolve issues. Read the Monitoring in a Connected Enterprise whitepaper and learn about 3 tools for resolving incidents quickly.

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 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

  1. Create a JMeter script based on the business case
  2. Create a Selenium script using the same steps they've done for JMeter
  3. Sync the transactions and script executions

Not anymore — we've got you covered.

BlazeMeter went through a revolutionized upgrade, introducing our V4 based engines that runs (you guessed it) on our OpenSource Test Automation framework, Taurus (Read more about it here).

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:

  1. What do my customers see during peak time load?
  2. Does a 1.5s response time on a specific page hurt the user experience?
  3. What is the impact on the user experience between customers coming from Virginia compared to Ireland?

And many more...

These questions (and their answers) provide a better understanding of the application's health, for driving technical and business decisions. (Where should we focus our refactoring efforts? Do we have a problem from a specific geolocation?)

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.

Let's assume we have the following Business Case:

  • Transaction: Homepage
  • Transaction: Select Route
  • Transaction: Find Flights
  • Transaction: Select Flight

By running the Load (JMeter) and the UX (Selenium) scripts together, the tester can now decide:

  1. Is our Homepage responsive enough for our users when under load?
  2. How is the "Select Route" UX step affected by the load?
  3. When the application is saturated, which UX step is affected the most?
  4. 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)

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.

Features include:

  1. Users can add new steps, edit current ones and even remove an accidental click to complete the scripts
  2. Test and edit Selenium based assertions to make sure they are working
  3. 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
  4. Breakpoint — What is a debugger without breakpoints?

After the recording is complete you can select which scripts to download:

  1. 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
  2. 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
  3. 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.

First, you'll need to add the Chrome Extension to your Chrome from the Chrome Web Store

  1. Open a new tab
  2. Click Web Store
  3. Search for BlazeMeter
  4. 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.

Discovering, responding to, and resolving incidents is a complex endeavor. Read this narrative to learn how you can do it quickly and effectively by connecting AppDynamics, Moogsoft and xMatters to create a monitoring toolchain.

Topics:
performance testing ,blazemeter ,gui testing ,jmeter ,load testing ,functional testing ,ux testing ,performance ,tutorial ,selenium

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}