In this tutorial, we will show you how to use Neocortix Cloud Services Scalable Compute to run a distributed LoadTest batch job, using a JMeter
client.
First, please follow the steps in the tutorial
Setting Up For Batch Jobs. After completion of the initial setup, you will have a directory with examples,
~/ncsexamples
.
In the subdirectory
~/ncsexamples/batchMode
you will find the
runBatchJMeter.py command.
This script creates a set of instances running on mobile devices, one instance for each load generator.
In the default example provided, we ask for 6 successful instances:
startFrame = 1,
endFrame = 6,
nWorkers = 10,
By setting
nWorkers = 10
, we slightly over-allocate instances to allow for some fraction to fail.
It will command the instances to install JMeter, and then run JMeter with a short (90 seconds) and simple
TestPlan.jmx
to send http
requests to the target URL (currently
https://loadtest-target.neocortix.com
):
def frameCmd( self, frameNum ):
cmd = 'date && apache-jmeter-5.3/bin/jmeter -n -t %s -l TestPlan_results_%03d.csv -D httpclient4.time_to_live=1 -D httpclient.reset_state_on_thread_group_iteration=true' % (
self.JMeterFilePath, frameNum
)
return cmd
The output of each instance will be
a .csv file
TestPlan_result_<n>.csv
containing request response timing information for each worker. The master will create several
image and output files
WorldMap.png
,
DeliveredLoad.png
,
ResponseTimesByRegion.png
,
graphs2.png
,
graphs3.png
,
histogram2.png
,
SLOcomparison.png
,
TestResults.html
,
and then terminate the instances.