Prepare command line arguments and parse the output of the wrk load testing tool
varwrk=require('wrk');varconns=1;varresults=[];functionbenchmark(){if(conns===100){returnconsole.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:
threadsconnectionsdurationprintLatencyheaders: object with additional request headersurl: target urlpath: path to wrk binary (default is "wrk")debug: print the output ofwrkto stdoutexecOptions: options that will be directly passed through to thechild_process.execof 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