Reputation: 119
I have an scenario to measure login function performance for that i have used JSR223 preprocessor to encrypt my password using Javascript its around 2000 Line of code it works fine it encrypts the password successfully, i can able to login using my script it works fine in small number of users.
If we go for an large volume of users script finish first 3 steps very fast once it reaches JSR223 preprocessor thread it takes long time to process it makes delay in performance test.
Any suggestion to fine tune this process ?
Already i have configured the cache size as 1024 even though it takes long time to execute.
For 600 Users it takes 1hr +++ time to finish the process with 1 Master and 3 slaves environment.
Upvotes: 2
Views: 1471
Reputation: 34516
Javascript should be avoided for Load Testing.
The best option is to use:
Groovy
Check Cache Compilation Key
Enter a unique key per Test element
This will make JMeter compile the script leading to most optimal performances, read this for more informations:
If you're looking to learn jmeter correctly, this book will help you.
Upvotes: 1
Reputation: 167992
JavaScript is not the best language to use with JSR223 PreProcessor, it's being run via Rhino or Nashorn engine and your expression is being evaluated all the time from scratch using not very performant way.
According to JMeter Best Practices it is recommended to use Groovy scripting engine. Assuming good configuration you will be able to get groovy scripts compiled into native JVM bytecode hence performance will be much higher than for JavaScript.
In order to get Groovy support in Jmeter you just need to
See Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For! guide for more detailed explanation and scripting best practices.
Upvotes: 0