Analyze Jmeter aggregate report when generated in non-gui mode - jmeter

In the GUI mode, Aggregate report shows a column name called 'Throughput'. I have generated the aggregate report in non-GUI mode:
The columns in the csv file are:
sampler_label
aggregate_report_count
average aggregate_report_median
aggregate_report_90%_line
aggregate_report_min
aggregate_report_max
aggregate_report_error%
aggregate_report_rate
aggregate_report_bandwidth
aggregate_report_stddev
I do not understand which one corresponds to 'Throughput' in this.
The command I used to generate this aggregate report is:
sudo java -jar /home/jmeter_rnr/apache-jmeter-2.13/lib/ext/CMDRunner.jar --tool Reporter --generate-csv /home/jmeter_rnr/apache-jmeter-2.13/agg_report_50xuser.csv --input-jtl /home/jmeter_rnr/apache-jmeter-2.13/output_50x.jtl --plugin-type AggregateReport

Try using jmeter 2.13v which give the Through put directly in aggregate report.

Related

Jmeter || Error generating the report: java.lang.NullPointerException while running test from CMD

I am trying to execute a test from CMD but getting following error :
Command : jmeter -n -t D:\Users\load.test\Desktop\Performance\apache-jmeter-5.5\bin\UserServices.jmx -l D:\Users\load.test\Desktop\Performance\apache-jmeter-5.5\PerformanceData\MICR_Project\MICR_TestResults\DebugOOM\DebugOOM_1.csv -e -o D:\Users\load.test\Desktop\Performance\apache-jmeter-5.5\PerformanceData\MICR_Project\MICR_TestResults\DebugOOM\DebugOOM_1 -JURL=localhost -JPort=7058 -JUser=5 -JRampUp=1 -JDuration=900 -JRampUpSteps=1 -JOutputFileName=OutputOOM.jtl -JErrorFileName=ErrorOOM.jtl -JFlow1=100
What could be the possible reasons for this error as its not very informative.emphasized text
The NullPointerException is related to generating the HTML Reporting Dashboard, the dashboard generation fails because your test failed to execute at all - no Samplers were run.
The reason why no Samplers were run can be found in jmeter.log file, the most "popular" reasons are:
The number of threads in the Thread Group is 0
The test uses CSV Data Set Config for parameterization and the CSV file is not present.
The test uses a JMeter Plugin and the plugin is not installed

Why isn't JMeter saving some requests statistics on non-GUI mode?

I'm doing some tests using JMeter but it seems that when running the test on GUI mode, some HTTPs requests response statistics can be seen via listeners but, when running the same test on non-GUI mode the same responses aren't saved in the jtl file and thus aren't shown in listeners when loading the jtl file on GUI-mode.
After running the test on GUI mode:
Results after running test
And then, running the same test but on non-GUI mode:
Command:
path/to/jmeter -n -t path/to/test.jmx -l path/to/results.jtl -j path/to/logfile.log -JnumUsers=10 -Jjmeterengine.force.system.exit=true -Dnashorn.args=--no-deprecation-warning
Results after loading the jtl file into a listener
You can see that the /buscarAvaliacaoAluno and /alterarAvaliacaoAluno responses aren't there anymore.
edit with error in log
It seems that it says that it can't find the javascript engine used by a postprocessor
After reading this post I understood that if I'm using java 11 or above, using javascript shouldn't work, but when running java -version I get "openjdk version "1.8.0_292" and echo ${JAVA_HOME} I get /usr/java/jdk1.8.0_91
javax.script.ScriptException: Cannot find engine named: 'javascript', ensure you set language field in JSR223 Test Element: Pega id's questionĂ¡rios
at org.apache.jmeter.util.JSR223TestElement.getScriptEngine(JSR223TestElement.java:101) ~[ApacheJMeter_core.jar:5.3]
at org.apache.jmeter.extractor.JSR223PostProcessor.process(JSR223PostProcessor.java:44) [ApacheJMeter_components.jar:5.3]
at org.apache.jmeter.threads.JMeterThread.runPostProcessors(JMeterThread.java:940) [ApacheJMeter_core.jar:5.3]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:572) [ApacheJMeter_core.jar:5.3]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489) [ApacheJMeter_core.jar:5.3]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256) [ApacheJMeter_core.jar:5.3]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]
We cannot provide a comprehensive response without seeing the test plan, the full listener output and the jmeter.log file
If you don't see a sampler result in the .jtl file most probably it hasn't been executed and there could be various reasons for not executing the sampler.
You're looking into old results. Given you provide number of users as 50 I would expect at least 50 sampler results and you have only 10. Try adding -f command-line argument to your JMeter startup script so it would overwrite the existing .jtl file with the new data
You have logic controllers like If Controller for conditionally executing your /buscarAvaliacaoAluno and /alterarAvaliacaoAluno and the condition is not met
You have "Action to be taken after a Sampler error" other than Continue in Thread Group so your test fails somewhere before these samplers and hence they are not being executed
etc.

How can I save table data ex: Min,max,avg,90%,throughput,etc

How can I save table data(ex: min, max,avg,90%, throughput,etc..) for an aggregate report or summary report while running through command prompt in JMeter.
You need to add a csv/jtl/xml file in your Summary Report or Aggregate Report.
Save your Jmeter script and execute it through cmd. Your results will be saved in the .csv file.
You can follow this Save Response Data in JMeter
If you want a text representation of the table data of the Aggregate Report listener you can use JMeterPluginsCMD Command Line Graph Plotting Tool, the relevant command would be something like:
JMeterPluginsCMD.bat --generate-csv aggregatereport.csv --input-jtl /path/to/your/test/result.jtl --plugin-type AggregateReport
You can install JMeter Plugins Command Line Tool using JMeter Plugins Manager

How to send a mail with only Summary report listener's Total columns

Is there a way where i trigger a jmeter job from jenkins for 100 threads and once the test is done the result with below details
Total Sample - 100
Average - 324
Min - 200
Max - 500
Throughput 4536
Sent bytes - 843
Received bytes - 643
Above result is the result of all the threads.
Are saved in a html or .csv file in a path and jenkins picks the .html or .csv result and publish the result through mail to set of people ?
You can create a .csv file with the required information using JMeterPluginsCMD Command Line Tool like:
JMeterPluginsCMD.bat --generate-csv result.csv --input-jtl result.jtl --plugin-type AggregateReport
You can install JMeterPluginsCMD tool using JMeter Plugins Manager
Once done you can Archive Arficacts (the result.csv file) to your build dashboard so it will be available for all Jenkins users. If you want to send it via email - go for Email-ext plugin

MergeResults plugin throws Error parsing field 'timeStamp' at line 1. java.text.ParseException: Unparseable date:

When I tried to do merge using MergeResults plugin it throws error:
Error parsing field 'timeStamp' at line 1. java.text.ParseException: Unparseable date:"
TWO AggregateReport JTL files successfully converted into csv using the below CMD runner command
JMeterPluginsCMD.bat --generate-csv E:\JMETER\PROJECT_NGP\Results\SL_Rel\Build_165-20749\Reports_09-05-2017-17-07-07\NGP_LoadTest_Results_AgReport.csv --input-jtl E:\JMETER\PROJECT_NGP\Results\SL_Rel\Build_165-20749\Reports_09-05-2017-17-07-07\NGP_LoadTest_Results_AgReport.jtl --plugin-type AggregateReport
Below is the error log details from jmeter.log file
2017-09-06 12:35:40,963 INFO o.a.j.s.CSVSaveService: E:\JMETER\PROJECT_NGP\Results\SL_Rel\Build_165-20749\Reports_09-05-2017-17-07-07\NGP_LoadTest_Results_AgReport.csv does not appear to have a valid header. Using default configuration.
2017-09-06 12:35:40,963 WARN o.a.j.s.CSVSaveService: Error parsing field 'timeStamp' at line 1. java.text.ParseException: Unparseable date: "sampler_label,aggregate_report_count,average,aggregate_report_median,aggregate_report_90%_line,aggregate_report_95%_line,aggregate_report_99%_line,aggregate_report_min,aggregate_report_max,aggregate_report_error%,aggregate_report_rate,aggregate_report_bandwidth,aggregate_report_stddev"
2017-09-06 12:35:40,963 WARN o.a.j.r.ResultCollector: Problem reading JTL file: E:\JMETER\PROJECT_NGP\Results\SL_Rel\Build_165-20749\Reports_09-05-2017-17-07-07\NGP_LoadTest_Results_AgReport.csv
2017-09-06 12:35:40,963 WARN o.a.j.s.CSVSaveService: Unknown column name sampler_label,aggregate_report_count,average,aggregate_report_median,aggregate_report_90%_line,aggregate_report_95%_line,aggregate_report_99%_line,aggregate_report_min,aggregate_report_max,aggregate_report_error%,aggregate_report_rate,aggregate_report_bandwidth,aggregate_report_stddev
In user.properties file and properties file timestamp settings are same(see the below screenshots).
Not able to figured it out what was wrong, Please advise.
JMeter configuration on the machine where you are doing results merge must match configuration of the machine where tests were executed. If there are inconsistencies the majority of JMeter Listeners will fail, neither you will be able to generate HTML Reporting Dashboard
For example I see in your user.properties file the following issues:
You have duplicate jmeter.save.saveservice.timestamp_format property settings defining different timestamp formats
You have jmeter.save.saveservice.default_delimiter property set to \t while your results file is comma-separated
So you need to inspect JMeter's configuration of the machine where you are trying to merge results and make it inline with the machine where you ran the test.
References:
Configuring JMeter
Apache JMeter Properties Customization Guide
With the raw jtl files it's working as expected.

Resources