Load Testing - 2G Connectivity

Hello,

Would you please share your thought on Load Testing of Website under 2G Connectivity.

Does the following approach look OK. Kindly advise if any better approach available.

  1. Mac System 1 - Mac Utility Network Link Conditioner configured with Profile - EDGE ( Presume this simulates 2G bandwidth)
    Run Gatling Simulation (20%) for 30 mins (Simulation generated from Mobile browser - Thin client simulation)

  2. Mac System 2 - Run Gatling Simulation (80%) for 30 mins (Broadband connectivity)
    (Simulation generated from Desktop browser - Thick client simulation)

My intention was to perform Load Testing and check Response time under different network conditions, varying clients. Not planning to perform Stress/Soak Test.
Does this approach look OK, could you please share your thoughts on this. Please advise if its valid approach to check 99% response time under 2G Connectivity.

Under 2G Simulation, I have increased timeout values in Gatling.conf and response time taking around 50-60 sec.
Even in real browser complete page load taking 40-45 sec time.

Thanks & Regards,
Rajesh

LGTM

Thanks Stéphane

Best Regards,
Rajesh

Hi Raja,

Its better to simulate Load on server, using Thick client (Desktop Browsers - har log) and Thin Client (Mobile Browser - har log) user simulation.
using Network link conditioner will not help during load testing, at same time as you are doing load testing.

In my project, we have followed below approach and it was helpful

Load Testing :

Client 1 - Run Gatling scripts generated based on Desktop browsers (60-70% Load)
Client 2 - Run Gatling scripts generated based on Mobile Browsers (40-30% load )

Network Simulation :

While load testing is being performed from one of the client, You could simulate low network bandwidth
Launch browser and check how much time it took load complete webpage and validate if the site is functional as soon as possible (not until complete webpage is loaded)

Basically you could analyse the resources taking more time and use Utilities like Yahoo Yslow, Google Pagespeed etc and find areas of improvement.
That way you can help support improving performance of your site even under low network bandwidth.

Hope this helps.

Hi, You need to consider both bandwidth and … latency. It’s latency that matters here.

The bandwidth setting in the Mac NLC (or any throttler) will be set assuming 1 user.
You will need to think how to set the bandwith limit given you are applying more than 1 concurrent user through the throttler. (this may be one reason why browser vs. gatling timings will differ with this set up).

You might be able to do a POC with Mac and/or the Mac NLC, but for final tests use an appropriately sized linux server with for example tc for traffic shaping, for the load injection.

Assuming you have a constant users per second workload, it will result in higher active/concurrent users, which may need to be accounted for in the load injector set up like max open files etc.

I think it is well worth doing this if a portion of your load comes from mobile devices. I have provoked at least 1 cpu hang in pre prod testing that wouldn’t have been found otherwise (or else when the code landed in production). So it can be helpful to simulate response times on the client and provoke concurrency on the server side.

Thanks,
Alex