Simulating User Funnels with Different Percentages in Apache JMeter

Simulating User Funnels with Different Percentages in Apache JMeter

Funnel analysis tells your user’s journey with its events that lead towards a goal. You can think about it as the engagement of a user in…

Simulating User Funnels with Different Percentages in Apache JMeter

Funnel analysis tells your user’s journey with its events that lead towards a goal. You can think about it as the engagement of a user in a mobile app till the actual purchase. The funnel analyses are an effective way to calculate conversion rates of specific user behaviors.

During a performance test project, you will be asked to simulate your customers journey with some specific numbers. Most common situation that we encounter with this kind of requests are Black Friday or Cyber Monday campaigns.

A funnel might be like the below example:

%100 of the users land on the main page

-%50 select a movie on that page

-%30 make a search

  • %50 browse to a result

-%20 login to their account

Those are very good KPIs. Now you know what you have to implement in JMeter.

JMeter has many controllers to design test plans.

For this purpose, we need to use Throughput Controller. This controller has three configuration elements. Most common usage is done by the below configuration:

  • Select Percentage Execution on the Execution Style combobox.
  • Enter a percentage into Throughput field. Enter a value between 0–100. In case you enter 0, no user will execute the request that belongs to Controller. In case you send 50, %50 of the total users will execute the request.
  • Don’t check Per User

PS: Execution Style and Throughput are mandatory fields.

Note that when you add a Throughput Controller as a child to another Throughput Controller, child controller will calculate the percentage according to the parent controllers percentage.

Let’s say 10 Threads will execute these tests.

  • We have one parent controller with %100 percent. That means 10 Threads will execute this “main page” request.
  • Then the user number will be divided into three controllers by a different percentage as %30, %20 and %50. This means, 5 users will execute “Movie page” request, 3 Threads will execute “Login Page” request and 2 Threads will run “Search” request.
  • Finally we have another %50 percent Throughput Controller under Search Controller. That means we have 1 Thread that will execute this request as we have 2 Threads on the parent controller.

Now let’s add “Aggregate Graph” in the Test Plan and execute our test.

As you can see, Threads are executed according to their percentage accordingly.

Those features and components are fully compatible with JMeter so you can use Loadium for your Funnel simulation.