I have downloaded Apache JMeter 3.1 version and developed a JMX script file. But all my other members use Apache JMeter 3.0 version. I am unable to open my 3.1 jmx file in 3.0 version.
Can anyone suggest how to open the JMX file of 3.1 version in Apache JMeter 3.0 version?
Thanks in advance
Blind shot: my expectation is that you are suffering from Bug #60252. Since JMeter 3.1 a new metric Sent Bytes has been introduced
New Metrics
A new sent_bytes metric has been introduced which reports the bytes sent to server.
Another metric connect_time has been enabled by default in this version
So now Aggregate Report and Summary Report listeners explicitly rely on this metric. If you have these listeners in test plan - just remove them and you should be able to open the script using JMeter 3.0.
Things to consider:
Recommend colleagues upgrading to JMeter 3.1 as newer JMeter versions should normally contain performance improvements and bug fixes
Don't add any listeners to your Test Plan. Really. Listeners should be used for tests development and debugging and viewing test results after test is finished.
Run your test in command-line non-GUI mode like:
jmeter -n -t /path/to/script.jmx -l /path/to/results.jtl
When test is done - open JMeter GUI, add listener(s) of your choice and using "Browse" button locate results.jtl file - you will see saved and calculated metrics
Check out Greedy Listeners - Memory Leeches of Performance Testing article for more details
Raise an issue in JMeter Issue Tracker recommending listing the aforementioned listeners in the Incompatible Changes section
Going forward add essential jmeter.log file parts to your question for non-telepathic community members
As any good software, JMeter takes a big care (believe us as our team leader is an active member of Dev Team) of backward compatiblity but it cannot consider issues when opening a file saved in version N+1 by software in version N (as with any software I think).
So follow Dmitri advice to make your colleagues upgrade to 3.1 for all the good reasons here:
http://www.ubik-ingenierie.com/blog/jmeter-3-1-is-out-with-new-great-features/
But no need to raise a bug (as he recommends) as it is absolutely not a bug.
Related
I am using jmeter to perform load testing on my dev cluster. I have used HTTP Authorization Manager and have passed baseurl, username, password etc. Now my thread group have:
Number of threads:100 ,
Ramp-up period: 1 and Loop Count:1
Now for the first 50-60 calls the authorization works as expected but later it starts failing by giving error as 403. can anyone please tell me how to fix this?
I am using jmeter 5.4.1
Is there any response data? Perhaps you are getting rate limited. I also noticed you are reading in variables from a CSV. Are you sure the data in each row is correct? If you are providing auth credentials through the CSV, an incorrect row could lead to a 403.
As a side note, JMeter 5.4.1 has a log4j vulnerability, you might want to upgrade it to the latest version.
If the problem occurs under the load I can think of 2 possible reasons:
Your application gets overloaded and cannot properly handle the requests. Check your application logs and resources usage (CPU, RAM, etc.)
JMeter gets overloaded and not being able to properly send the requests. You're violating several JMeter Best Practices in particular:
you're running JMeter in GUI mode, GUI is only for tests development and debugging, when it comes to execution you should be using command-line non-GUI mode
you're using Listeners, especially View Results Tree, they don't add any value and just consuming resources
you're not using the latest version of JMeter, current stable release is 5.4.3
I'm monitoring the connect time and latency to connect from jmeter machine while running in GUI mode and that is in within acceptable limit.
Should we strictly follow non GUI mode even though I can able to perform load test with GUI mode?
I'm targeting 250 TPS and able to achieve that ..I have increased my memory and monitoring CPU and memory of load generator is below 60%.
Should I go for non GUI mode ?
The main limitation is that each event in the queue is being handled by a single event dispatch thread which will act as the bottleneck on your JMeter side.
My expectation is that your "250 TPS" look like:
while it should look like:
So check how does your load pattern look like using i.e. Transactions per Second listener (installable via JMeter Plugins Manager)
Also check how does your JVM look like especially when it comes to garbage collection, it can be done via i.e. JVisualVM, most probably you will see the same "chainsaw" pattern
You don't need to follow JMeter best practices, but
you may encounter issues to achieve specifc goals (as TPS)
your machine can't execute GUI or have low resources
you execute JMeter using a script or build tool as Jenkins
Also it's better to be familiar with JMeter CLI (non GUI) and its report capabilities
JMeter supports dashboard report generation to get graphs and statistics from a test plan.
Also it will be needed for using distributed testing
consider running multiple CLI JMeter instances on multiple machines using distributed mode (or not)
CLI also useful for Parameterising tests
The "loops" property can then be defined on the JMeter command-line:
jmeter … -Jloops=12
I have recorded script through Blaze meter and tried executing thru jmeter after adding com.sun.faces and bttoken. I have tried adding sEntry but unfortunately I didn't find the key.
Issue: It is not performing refresh report activity because I was monitoring in the backed sessions.
Looking into BI4 Web Intelligence Performance Test with JMeter article it should be strEntry and the relevant Regular Expression Extractor configuration would be something like
Actually you can use another approach to recording JMeter tests which can export recorded scripts in "SmartJMX" mode with automatic detection and correlation of the dynamic data, it might help you to come up with the properly correlated version of the load test with the minimal efforts. Check out How to Cut Your JMeter Scripting Time by 80% article for more details.
If you need further help on manual correlation consider including previous sampler response and the next request details into your question
I am new to using JMeter and have developed a basic test plan with HTTP Sampler and a few listeners. Please run me through the entire process of how I can start after opening JMeter ?
There's no right answer for this, it depends what you're wanting to achieve. I'd suggest starting with the best practices: http://jmeter.apache.org/usermanual/best-practices.html
And also look at building a web test plan: http://jmeter.apache.org/usermanual/build-web-test-plan.html
I would look at the Graphs Generator listener - https://jmeter-plugins.org/wiki/GraphsGeneratorListener/ - use these graphs to make sure you're making the number of transactions that you would expect in your tests.
Basically - the documentation is your friend. I took time to read what each controller, listener and sampler was doing and decided how to implement these myself. There was some trial and error. JMeter is an easy tool to pick up and use but there's a LOT of depth to it.
In addition to Ali1874 answer, I would suggest looking into how to run JMeter tests using command line. You can find more information at http://jmeter.apache.org/usermanual/get-started.html#non_gui. With regards to reporting JMeter is able to produce nice HTML reports when using -e -o options http://jmeter.apache.org/usermanual/generating-dashboard.html#report_after_load_test.
Also, with regards to Jmeter test plans, in my previous company we used to parameterize number of threads required, servers and other elements. In general structure looked like the one at the example test plan.
We had different user defined variables elements for different environments for faster test tuning. Also, we used bzm – Weighted switch controller (https://github.com/Blazemeter/jmeter-bzm-plugins) to distribute load among endpoints by including HTTP requests from Test Fragment element so that we would not have to duplicate requests allowing to manage them more easily. You can check out full plan at here (https://github.com/gretard/testing/blob/master/00-jmeter/results/samplePlan.jmx). Please bear in mind that test plan uses bzm – Weighted switch controller plugin and jpgc - Standard Set plugin which you can install by using Plugins manager (https://jmeter-plugins.org/wiki/PluginsManager/).
Hope this will help.
I'm have a simple JMeter script with 300 threads that checks a list of 30 static URLs with a 2 second delay between requests.
I'm hitting CPU usage limit on my machine (EC2 Large Server).
Any idea on which switch and levers have the greatest impact on server resources?
For example:
Number of threads
Delay between requests
Number of steps (URLs) in script
Versions of JMeter (2.9 vs 2.10)
Thanks
Ophir
Just make sure that you've
Disabled all listeners
Running JMeter in non-GUI mode, i.e. via command-line, Ant, Maven or whatever
Your Post Processors (if any) aren't resource-consuming, i.e. you're trying to extract something with Regular Expression Extractor from immense output.
You're using the latest version of JMeter and Java (JMeter 2.10 is better than 2.9)
You're using 64-bit Java with enough heap space provided
You're following JMeter Best Practices
If you problem still persists, you can consider looking into following options:
Profile Java process running JMeter to detect what classes are most CPU-consuming
Use several "lesser" EC2 instances with 1 JMeter "master" and 2-3 slaves
If you have static URLs, just:
Use a CSV DataSet which will contain these URLs
One HTTP Request Sampler that will use it
With a large Server, 300 threads is really nothing.
You may read :
http://jmeter.apache.org/usermanual/best-practices.html
http://www.dzone.com/links/see_how_to_make_jmeter_run_thousands_of_threads_w.html