Load Test Output
In this tutorial, we will show you how to use Neocortix Cloud Services Scalable Compute to run a distributed LoadTest batch job, using a k6 client, in a framework where you can easily substitute your own LoadTest 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,

Building the K6 Binary Executable for Arm (aarch64)

To build the aarch64 Binary Executable
, please follow these steps. First, please install the Go compiler tools for your machine, from https://golang.org/doc/install. Then please execute these commands:
cd ~/ncsexamples/batchMode GOARCH=arm64 GOOS=linux GOPATH=$PWD/go go get go.k6.io/k6 cp -p go/bin/linux_arm64/k6 k6Worker tar -czf k6Worker/k6.tar.gz k6Worker/k6 rm k6Worker/k6
Now you will have the compressed binary executable file
, ready to send to the workers.
In the subdirectory
you will find the runBatchK6.py command. This script will create 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 k6, and then run k6 with a short (90 seconds) and simple test script
to send http requests to the target URL (currently
def frameCmd( self, frameNum ): cmd = 'cd k6Worker && ./k6 run -q script.js --out csv=~/worker_%03d.csv' % ( frameNum ) return cmd
The output of each instance will be a .csv file
containing request response timing information for each worker. The master will create several image files
, and then terminate the instances.

Example Command

Simply run
python3 ./runBatchK6.py
When the program is done, the output files
, will be put in a directory

Running a Longer Ramped Load Test

To run a longer ramped k6 load test, for 500 seconds with 30 devices, please edit
and set
timeLimit = 80*60, instTimeLimit = 14*60, frameTimeLimit = 14*60, endFrame = 30, nWorkers = 54
, and then in the
please replace
, and re-run
python3 ./runBatchK6.py
Here are example outputs:
Load Test Output
Load Test Output
Load Test Output