I have a Test Plan with multiple child Thread Groups;
Inside each thread group I have one parent Transaction Controller and a Constant Throughput Timer, trying to keep the total generated load of the Thread Group at 2 Transactions per second;
Underneath the transaction controller, I have 2 child Throughput Controllers: 1 trying to generate 8.1 % of the load and 1 trying to generate the remaining 91.9 % of the load;
Underneath each Throughput Controller, I have a child Random Controller which is supposed to make a random choice between 2 samplers underneath it;
Underneath each Random Controller, I have 2 samplers which are actually generating the requests.
When I run this in the GUI mode and I check the the Aggregate Report Listener I can see the Aggregated Throughput of all samplers running underneath the Transaction Controller and this is what I want.
My problem is that: When I run in CLI mode and generate the HTML Dashboard Report from the .jtl file, it is showing me the Transaction Controllers beside the actual samplers but it is not showing me the aggregated throughput of all child samplers per Transaction Controller (it is showing it as 0.00).
Thanks in advance!
Starting from @Dmitri's answer I managed to fix my problem. Thanks for pointing me in the right direction Dimitri!
The issue was caused by a wrong parameter in the command to run the script in CLI mode. It seems that that specific parameter was not creating .jtl file with all necessary things. I would have expected this command to not work at all if the .jtl file cannot be generated with all proper info to show a clean dashboard report, but it seems that is not the case. Not sure if this is a feature or a bug. :D
From my performance testing solution local root path I was using a separate .properties
file to load some libraries into jmeter's classpath (and store some global variables outside of JMeter as well) and was using -p
instead of -q
to load that file and that meant that (quote from original answer) "-q defines an additional properties file to be read, whereas -p overrides the jmeter.properties file. Thus when using -p I was missing properties that were required to correctly generate the dashboard."
Problem command : (because I still needed some properties from the default jmeter.properties file from the JMeter instalation (I think :D))
jmeter -n -p .\config.properties -t .\path\to\script.jmx -l .\path\to\jtlFile.jtl
The solution was to use -q
instead of -p
as explianed by the user bcromarty in his reponse to this other issue which I did encounter once I tried to do the script running and report generation in one command as exemplified by Dmitri (See Solution 2).
Solution1: (2 commands: Run the script, generate the jtl file; Then Generate the dashboard report)
jmeter -n -q .\config.properties -t .\path\to\script.jmx -l .\path\to\jtlFile.jtl
Once this is done, it will generate the .jtl file as before, but now the .jtl file seems to have everything it needs to properly fill in the values.
jmeter -g .\path\to\jtlFile.jtl -o .\path\to\htmlDashboardReport
Solution2: (1 command: run the script, generate the jtl file and at the end generate the HTML report)
jmeter -n -q .\config.properties -t .\path\to\jmeterScriptFile.jmx -f -l .\path\to\jtlFile.jtl -e -o .\path\to\dashboard