0
votes

I'm trying to use data from google analytics for an existing website to load test a new website. In our busiest month over an hour we had 8361 page requests. So should I get a list of all the urls for these page requests and feed these to jMeter, would that be a sensible approach? I'm hoping to compare the page response times against the existing website.

2
That will be good start. But the best approach in create the report of the User Flow in Google Analytics. This will give better picture how the user entered and exited from your website. Based on the user flow, you can design the test plan in JMeter which is nothing but real world scenario. Also, add relevant timers and pacing before you trigger the load test. Let me know if my suggestion works, I will post this in the answer. - NaveenKumar Namachivayam

2 Answers

0
votes

The "sensible approach" would be to know the profile, the pattern of your load.

For that, it's excellent you're already have these data.

Yes, you can feed it as is, but that would be the quick & dirty approach - while get the data analysed, patterns distilled out of it and applied to your test plan seems smarter.

0
votes

If you need to do this very quickly, say you have less than an hour for scripting, in that case you can do this way to compare that there are no major differences between 2 instances.

If you would like to go deeper:

  1. 8361 requests per hour == 2.3 requests per second so it doesn't make any sense to replicate this load pattern as I'm more than sure that your application will survive such an enormous load.
  2. Performance testing is not only about hitting URLs from list and measuring response times, normally the main questions which need to be answered are:

    • how many concurrent users my application can support providing acceptable response times (at this point you may be also interested in requests/second)
    • what happens when the load exceeds the threshold, what types of errors start occurring and what is the impact.
    • does application recover when the load gets back to normal
    • what is the bottleneck (i.e. lack of RAM, slow DB queries, low network bandwidth on server/router, whatever)

So the options are in:

  1. If you need "quick and dirty" solution you can use the list of URLs from Google Analytics with i.e. CSV Data Set Config or Access Log Sampler or parse your application logs to replay production traffic with JMeter
  2. Better approach would be checking Google Analytics to identify which groups of users you have and their behavioral patterns, i.e. X % of not authenticated users are browsing the site, Y % of authenticated users are searching, Z % of users are doing checkout, etc. After it you need to properly simulate all these groups using separate JMeter Thread Groups and keep in mind cookies, headers, cache, think times, etc. Once you have this form of test gradually and proportionally increase the number of virtual users and monitor the correlation of increasing response time with the number of virtual users until you hit any form of bottleneck.