We are benchmarking our server and therefor we are using multiple benchmark tools. We already used ApacheBench giving us some great results and were also easy to plot in a graph.
Example plot AB results
Now we are using JMeter but having a hard time to get a good plot. We would love to have almost (completely) the same plo as the one from AB. So response time vs. requests. We tried already every listener but haven't found any satisfactory result.
We are using JMeter 2.10.
You can use:
Core Response time graph
Jmeter plugins : http://jmeter-plugins.org which has a lot of nice and very useful graphs which will meet your needs ( response time, percentiles, distribution, response codes per second ...)
Option 1: Isn't Response Time Graph what you're looking for?
Option 2: It's possible to build any graph from JMeter .jtl CSV or XML results file using Excel or equivalent, Google Charts API, JFreeChart, Javascript, etc.
Option 3: There is a JMeter Listener which automatically builds pretty and professional looking graphs for your performance test and have results comparison killer-feature
Related
after running my performance script , the statistic report generated is quite confusing.
Response Time :6s minimum
90th pct:4.53s
95th pct:4.9s
How come minimum response time is greater then 90th and 95th percentile , am I doing something wrong here ?
It should not be the case, the relevant code lives under StatCalculator.java class
If you do believe that this is a JMeter bug - you should raise an issue in JMeter Bugzilla
The first thing they will ask you is your .jtl results file so if it doesn't contain top-secret information you can update your question with the .jtl file contents so we would be able to look into the issue as well.
P.S. Any chance you're using a Transaction Controller with non-default naming policy? If yes, it might have an impact on results
P.P.S. Any change you're using JMeter Plugins or amending sample results on the fly via Groovy scripting? If yes, it also may influence the test metrics
I refer to the "http://www.testautomationguru.com/jmeter-real-time-results-influxdb-grafana/" article,
through grafana + infludx but there is a jmeter tps (throughput) value I do not know how get?
I tried "jmeter.all.h.count" but it did not seem to be the value I wanted:
I wrote the blog you were referring to!
We can not expect the backend listener metrics to give you an accurate result as you expect in the aggregate report - (specially percentiles, avg etc)
BackEndListener basically gives the metrics over time. You should plot the graph using the data over time. If you try to use single stat metric of Grafana with that data , then you will see a complete mismatch.
In the blog - I was using the modified apache_core.jar library to get the results as you are actually expecting. However I stopped sharing (after jmeter 2.13, jmeter 3.0) the modified lib.
You are referring to wrong component for values.
For GraphiteBackendListenerClient, sent values are described here:
http://jmeter.apache.org/usermanual/realtime-results.html
For InfluxdbBackendListenerClient, sent values can be found here:
https://github.com/apache/jmeter/blob/trunk/src/components/org/apache/jmeter/visualizers/backend/influxdb/InfluxdbBackendListenerClient.java
Both components don't send throughput as it can be computed using Grafana and other metrics.
Found your answer in influxdb grafana tutorial,
Use jmeter.all.a.count:
If I query the “jmeter.all.a.count” which has the no of requests processed for every second by the server, I get below output. [No of requests processed / unit time = Throughput]
I want to be able to run a JMeter test for thousands of users and plot the results dynamically using a JQuery based charting library like HighCharts i.e. the response from every virtual user must be plotted in near real time to show a stock ticker like chart which gets updated dynamically. I am OK running the test in Non-GUI mode.
I have tried the following,
- Run the JMeter test in non-GUI mode and write the response to a file. What I notice is that the results get written to the file in a buffered manner which means even if I have a program monitoring the file for new records, I wont get it in real time.
I am looking for suggestions on how this can be achieved
1. Do I need to write a custom JMeter plugin? In this case how will it work?
2. Is there some listener which can give me the desired data
3. Can this be done via post processor?
I have seen real time reporting being done on some cloud based load testing websites which use JMeter, so I'm sure it can be done, but how?
There is some buffering when writing to a file, but it shouldn't be more than a few seconds worth of data.
I'd go with the route of reading the log file into something like statsD using something like logstash.net and from there you can probably find an existing solution that pushes it to a chart.
You can disable buffering by adding this in user.properties file:
jmeter.save.saveservice.autoflush=true
This impacts slightly performances for test that have low or no pauses.
To do what you want you could use this kind of library:
http://www.chartjs.org/
Context
I am using JMeter with JMeter-plugins for load testing. So far I was either modelling the traffic myself (ramp-up periods, bursts, etc.) or just doing full load testing. Now, however, I need to reproduce the exact same traffic as was in the access log, so for example if I had three requests at, say, 13:00:01, 13:00:03 and 13:00:06, I will need the sampler to hit those respective requests in same timing, second one being 2 seconds after the first, and third one being 3 seconds after the second.
I surfed the web for solutions, however the only hint I got was to write custom LogParser to extract timestamps and time differences. However that doesn't cover the actual timing at which the sample will send the request, since this is stored in ThreadGroup.
Summary
This leads me to my question : how can I reproduce the same exact traffic (with respect to time differences between requests) as was in the access log? I don't want to model a similar one (like Gaussian etc.), I need an exact copy of traffic.
If it's impossible in JMeter, please direct me to the right tool.
I am testing how many requests my web server can respond to, and I'm using a Test project in VS 2010, using a LoadTest running 1 single actual test method. I'm getting results, but I'm not sure what they mean. In the graph below, "Test Response Time", I'm not sure what scale these numbers are from. Any have the legend available?
The 'Test Response Time' is the number of milliseconds it took to run one test. You can find more detailed info (including units) in the view just below the graphs.