wrk load test tool wrapper and output parser
npm install wrkPrepare command line arguments and parse the output of the
wrk load testing tool
`` js
var wrk = require('wrk');
var conns = 1;
var results = [];
function benchmark() {
if (conns === 100) {
return console.log(results);
}
conns++;
wrk({
threads: 1,
connections: conns,
duration: '10s',
printLatency: true,
headers: { cookie: 'JSESSIONID=abcd' },
url: 'http://localhost:3000/'
}, function(err, out) {
results.push(out);
benchmark();
});
}
benchmark();
`
Options:
- threadsconnections
- duration
- printLatency
- headers
- : object with additional request headersurl
- : target urlpath
- : path to wrk binary (default is "wrk")debug
- : print the output of wrk to stdoutexecOptions
- : options that will be directly passed through to the child_process.exec of wrk
Callback parameters: (err, wrkResults)
wrkResults always has:
- transferPerSec
- requestsPerSec
- requestsTotal
- durationActual
- transferTotal
- latencyAvg
- latencyStdev
- latencyStdevPerc
- latencyMax
- rpsAvg
- rpsMax
- rpsStdev
- rpsStdevPerc
Has these if printLatency is enabled
- latency50
- latency75
- latency90
- latency99
And sometimes has (only if they exist):
- connectErrors
- readErrors
- writeErrors
- timeoutErrors
- non2xx3xx
With npm do:
```
npm install wrk
MIT