Load Test Output
In this tutorial, we will show you how run your own JMeter scripts on the Neocortix platform and use our Daily Regression Test tools.
This is an advanced tutorial. We assume that you have already successfully installed our
ncscli
software on your Linux machine and completed the Basic JMeter tutorial. We also recommend that you review the JMeter Advanced tutorial, follow the easy instructions to Prepare the Master for JMeter HTML Reporting, and familiarize yourself with the JPetStore example.

Preparing Your JMeter Script

We assume that you have an existing JMeter script
YourScript.jmx
that you are already using professionally, and running it on conventional On-Premises or Cloud instances, likely on a high-performance server with many cores and a lot of memory, with many Virtual Users. We will show you how to modify
YourScript.jmx
so that you can run it on many small Neocortix instances, rather than on one huge conventional server.
The key idea is to modify
YourScript.jmx
so that it has at most 20 Virtual Users active at any time, and then you will need more instances to achieve the desired load. For example, if your
YourScript.jmx
has 4000 Virtual Users active at its peak, you will modify it to have only 20 Virtual Users active, and use 200 Neocortix instances to achieve the desired load.
Please create
YourModifiedScript.jmx
so that it has at most 20 Virtual Users active at any time, and make a note of the number of instances you will need to achieve your desired Load.
Please note that the Output File Name for the View Results Tree method should be set to
jmeterOut/VRT.jtl
as shown here:
Load Test Output
Please note also that the “Save as XML” checkbox should be unchecked in the JMeter Sample Result Save Configuration popup, so that the .jtl files will be in the right format, as shown here:
Load Test Output
And then, finally, you will need to put
YourModifiedScript.jmx
into the
~/ncsexamples/batchMode/jmeterWorker
directory, so that it can be found by the
runBatchJPetStore.py
script. And you will also have to copy any other files into that directory that your script may need, like plugin .jar files, user.csv files, etc.

Running A Small Example of Your Script

In the subdirectory
~/ncsexamples/batchMode
you will find the runBatchJPetStore.py command. Please edit
runBatchJPetStore.py
and substitute
YourModifiedScript.jmx
for
JPetstore_JMeter5.4.1.jmx
, and set
startFrame = 1, endFrame = 6, nWorkers = 10,
You may also have to modify the timeout values. We use these values for a 500s test. Please increase them if your test is longer than 500s.
timeLimit = 80*60, instTimeLimit = 12*60, frameTimeLimit = 11*60,
Once you have made those modifications, please run
./runBatchJPetStoreAll.sh
Here are example outputs, in
./data/petstore_<date>/TestResults.html
:
Load Test Output
Load Test Output

Running a Larger Example of Your Script

Now that you have
YourModifiedScript.jmx
working on a small number of instances, please edit
runBatchJPetStore.py
to increase the number of instances to achieve the desired Load. For example, for 200 instances, try these parameters:
startFrame = 1, endFrame = 200, nWorkers = 360,
Now please re-run
./runBatchJPetStoreAll.sh
Here are example outputs, in
./data/petstore_<date>/TestResults.html
:
Load Test Output
Load Test Output

Daily Regression Tests and SLO Comparisons

Once you have a large version of your test running, you will likely have many data directories in
./data/
. Those are a record of your recent tests. You can use
./plotJMeterRegression.py
to analyze the sequence of tests, looking for changes from one run to the next.
Please run
python3 ./plotJMeterRegression.py
Here is an example output
./data/regressionTest.png
, showing Daily Regression Test and Service Level Objective (SLO) Comparisons for all of the tests in the
./data/
directory.
Load Test Industry
Congratulations! You have gotten your own JMeter Script running on the Neocortix platform and performed Daily Regression Tests and SLO Comparisons. You are ready to use this powerful Global Last-Mile Load Testing system professionally.