How to aggregate the results from different machine in Jmeter? - jmeter

I have to run 1200 users to support my application.
We are running from 4 different machines and from Each machine we are running 300 users.
From Each machine we are getting .jtl files and it is size more than 300 MB..
we are able to get the Aggregate report by adding Listeners and browsing that .jtl files.
Due to the size of jtl files, every one has aggregate csv files only from 4 machine.
Label #Samples Average Median 90% Line 95% Line 99% Line Min Max Error % Throughput Received KB/sec Sent KB/sec
(Machine 1) TOTAL 34114 7200 1747 11853 60155 80773 0 240417 12.18% 14.61536 144.66 23.35
(Machine 2) TOTAL 35537 7927 1758 24698 60550 76834 0 150719 15.33% 14.79504 140.71 23.06
(Machine 3) TOTAL 34447 7189 1750 12280 60220 76963 0 155425 12.24% 14.72585 145.78 23.55
(Machine 4) TOTAL 34454 7316 1748 13595 60557 76975 0 150490 12.60% 14.69896 144.45 23.35
Eg.., Average = (7200+7927+7189+7316)/4 = 7408
How to present as a single report?
It is just some up all columns from 4 machines and divided by is the only way..If it is present in a way, is it correct report?
Or any other way?
Thanks,

You can switch to running your test in Distributed Mode i.e. using 1 master node and 4 slaves. In this setup you will have single results file on "master" host
If you do not plan to re-run your test in future and would just like to convert 4 results files into a single "uber" results file you can use Merge Results tool which main use case is to compare results of different test runs, however you can use it to combine multiple results files into one, just use the same Prefix Label.
You can install Merge Results tool using JMeter Plugins Manager

Related

How to view all information relative all slave machines in jmeter in real time

I configured my test in this way (in windows 7):
1 Virtual machine is master, that run all vm slaves with the command for a distribuited testing (from command line) and show in jmeter GUI some graphs (for example jp#gc Active thread over time , hits/sec, response time, etc..).
3 Virtual machine are slave, to execute the testing;
When master run the "start" to 3 slave, the test works (each slave run 6 thread), and in the GUI on master, there are only 6 thread in the graph (jp#gc - Active Threads Over Time), but in reality are 18 (6 thread for slaves, with 3 slaves).
So my question is: how can I see the total data for all slaves?
jp#gc - Active Threads Over Time = to see 18 thread (thread slave1 +thread slave2+thread slave3)
jp#gc - Hits per Second = Hits slave 1 +Hits slave 2+ Hits slave 3
and so on...
You need to add __machineName or __machineIP function so the listeners could distinguish results coming from different nodes.
Also be aware of mode property which is configured to send results from slave machines each 100 results or each minute (whatever comes the first) so you might want to amend it, i.e. add mode=Standard line to user.properties file on each slave node.
# Remote batching support
# Since JMeter 2.9, default is MODE_STRIPPED_BATCH, which returns samples in
# batch mode (every 100 samples or every minute by default)
# Note also that MODE_STRIPPED_BATCH strips response data from SampleResult, so if you need it change to
# another mode
# Hold retains samples until end of test (may need lots of memory)
# Batch returns samples in batches
# Statistical returns sample summary statistics
# hold_samples was originally defined as a separate property,
# but can now also be defined using mode=Hold
# mode can also be the class name of an implementation of org.apache.jmeter.samplers.SampleSender
#mode=Standard
#mode=Batch
#mode=Hold
#mode=Statistical
See Apache JMeter Properties Customization Guide for more information on working with JMeter properties.
Be aware that sending results in case of severe load may cause network IO overhead so it might be a good idea to consider Backend Listener instead
Add the Machine Info function to the thread group name area as shown below:

How to Set up Thread Properties for jmeter

can somebody please advise how to create a jmeter thread properties correctly with the following requirements
55 user a min ramp-up over an hour with a test running for 4 hours.
If you need 55 users added each minute during 1 hour, you set up should look like:
Number of Threads: 3300 (55 users x 60 minutes)
Ramp-up: 3600 (1 hour == 3600 seconds)
Loop Count: Forever
Scheduler -> Duration: 14400 (3600 seconds in hour x 4)
Be aware that 3300 concurrent threads is quite a high load, make sure that you're following recommendations from JMeter Performance and Tuning Tips guide.
If you won't be able to create such a load from a single machine consider Distributed Testing when one JMeter master machine orchestrates several slaves, for instance 3 slaves having 1100 virtual users each.
So you think about something like this setup I show on the screenshot below, isn't ot? It is set on jp#gc - Stepping Thread Group that comes with jmeter plugins in standard set. You have there 55 users tat will ramp up to that value through 3600 seconds and will hold that load for next 3 hours (10800 sec).

How can i see the summary or aggregate values in jmeter jtl file

Am running recorded jmeter performance script (by adding summary and aggrgate listners), in non-gui mode using Maven. After running am getting .jtl file, but am not seeing the values for summary and aggregate values.
how can i see the summary or aggregate report in .jtl file, without opening Jmeter GUI.
We are planneing to run through jenkins on daily basis. Once jtl file is generated the other script has to look the values for summary / aggregate values and show it on the dashboard.
Can anybody please help me regarding this.
Typically I set the results file int the Summary Report Listener and select the fields I want to get back. When you run the test via non-gui (ie through Jenkins) you will get the summary results file and it should be in your workspace.
Here is my JMX file, testing some mobile APIs. JMeter Test Plan and Results
Also to note is the Generate Summary Results Listener. Per the docs
In Non-GUI mode by default a Generate Summary Results listener named "summariser" is configured,
This will not show up in the JTL but will show up in your log file and will generate lines such as
2015/08/28 15:14:33.305 INFO - jmeter.reporters.Summariser: summary = 2200 in 169s = 13.0/s Avg: 17 Min: 2 Max: 5129 Err: 0 (0.00%)
The values you're used to see in Aggregate Report / Summary Report listeners are being calculated from the following metrics:
timestamp
elapsed
success
bytes
latency
For instance:
Average metric is sub of "elapsed" times for all the samplers divided by samplers count.
Median metric is a common statistical measurement basically 50% percentile
90%, 95%, 99% - are also percentiles like median
etc.
Depending on your skills set you can check i.e. Calculator.java class code to see how JMeter calculates averages, percentiles, throughput, etc. and implement some form of postprocessor, use MS Excel, LibreOffice Calc or equivalent on .jtl CSV results file.
If you need to get these results after JMeter run the easiest option are:
Vanilla Jmeter:
if you launch JMeter via Ant Task or Maven Plugin - you'll get HTML results file like:
For more information on configuring Ant and/or Maven integration refer above links or Five Ways To Launch a JMeter Test without Using the JMeter GUI guide.
Using JMeter plugins:
Console Status Logger - which prints quick stats information to stdout and jmeter.log file
0 Threads: 27/5000 Samples: 1 Latency: 5 Resp.Time: 5 Errors: 0%
1 Threads: 2350/5000 Samples: 142 Latency: 19 Resp.Time: 19 Errors: 0%
2 Threads: 4500/5000 Samples: 130 Latency: 51 Resp.Time: 51 Errors: 0%
3 Threads: 5000/5000 Samples: 153 Latency: 81 Resp.Time: 81 Errors: 0%
Loadosophia.org Uploader - which uploads your test results to Loadosophia.org cloud service where you can perform analysis, see graphs, charts, export report as PDF, etc.

Jmeter - Number request are smaller expected

I run test plan by distributed method in 3 remote machine with config as below:
3 Thread Group: Each 100 users - loop 1
Each thread group have 5 request
When i run on each remote machine, i get 500 samples in summary report. But when i run on 3 remote machine in same time, report just display 800 - 1000 samples.
What is problem in my case?
You moT probably have one of the 3 servers that is not reporting the SampleResults to the client.
check jmeter.log of each server.

Jmeter: Threads multiplied by loop count does not match number of samples

I am running some tests in Jmeter with the following values -
Number of Threads = 50
Number of Loop count = 133
I would expect the number of samples (column Count in the Summary report) to be 50*133=6650 but I see this as only 3220.
I tried this test with:
Number of Threads = 50
Number of Loop count = 100 and this time also I got the number of samples (Count) as 3221
I tried with:
Number of Threads = 30
Number of Loop count = 133 and this time also I got the number of samples (Count) as 3220
For some reason, Jmeter is limiting the max number of samples to a number around 3220. Why is this happening?
Regards
Ramesh
JMeter doesn't have limitation on number of samples, if it is, it would be something like 2 billion.
Try the following:
Re-run your test in non-GUI mode
Open JMeter GUI. Don't open any .jmx file
Add Summary Report Listener
Click Browse button and open .jtl file which you specified by -l parameter in step 1
Check if real samples count matches your calculation.
It should be equal. If it isn't make sure that i.e. you are not using Test Action Sampler which stops the test on certain condition or CSV Data Set Config with Stop thread on EOF set to true or whatever.
If the problem still persists and none of above recommendations help update the issue with your jmeter.log file

Resources