0
votes

Increasing User Threads in my JMeter performance testing, found some of the requests called before login. So those requests were failed.

My Test plan is below

enter image description here

In .csv file, added 1000 users with {email, password} and given to Login Http Request -> CSV Data Set Config. I'm extracting {uid} from login response and stored in uid

Second Random Controller, have multiple HttpRequest's, every request needs {uid}.

This works on below 50 user threads. But when i increased threads, some Random Controller ==> Http Request sends without uid

See, this one is with uid enter image description here

But this one is with out uid

enter image description here

Can any one help me, how we can achieve this?

1

1 Answers

0
votes

I can see 2 possible reasons:

  1. Your application gets overloaded therefore your Login Request doesn't return correct uid so your extractors fail
  2. Your JMeter intsance get overloaded so JMeter cannot handle 50+ users as you are running it in a non-optimal way

I would start with point 1 by temporarily enabling storing requests and responses data into .jtl results file by adding the next lines to user.properties file:

jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.responseHeaders=true

This way you will be able to see response data for failed requests using View Results Tree listener and will be able to identify where the test fails.

Other things worth checking/implementing:

  • check your application logs
  • setup monitoring of baseline OS health metrics (CPU, RAM, Disk/Network IO) on both JMeter and application under test sides, you can use JMeter PerfMon Plugin for this
  • Make sure you're following JMeter Best Practices, i.e.

    • Run your test in command-line non-GUI mode
    • Increase JVM heap size
    • Switch to JSR223 Test elements instead of Beanshell