Added Load test
diff --git a/load-test/README.md b/load-test/README.md index 307becc..cac88eb 100644 --- a/load-test/README.md +++ b/load-test/README.md
@@ -7,3 +7,7 @@ ## Run docker will open port 9000 for api hits + +## Start the load ++ Install https://artillery.io/ ++ `artillery run artillery/deployment.yaml ` \ No newline at end of file
diff --git a/load-test/artillery/deployment.yaml b/load-test/artillery/deployment.yaml new file mode 100644 index 0000000..d108142 --- /dev/null +++ b/load-test/artillery/deployment.yaml
@@ -0,0 +1,26 @@ +config: + target: 'http://localhost:9090' + http: + timeout: 10 + phases: + - duration: 120 + arrivalRate: 1 + processor: "./my-functions.js" + defaults: + headers: + x-my-service-auth: '987401838271002188298567' + +scenarios: + - + name: "Deployments ping" + flow: + - + get: + url: "/deployments" + afterResponse: "captureDeployments" + - + think: 1 + - + put: + url: "/deployments" + beforeRequest: "fakeStatuses"
diff --git a/load-test/artillery/my-functions.js b/load-test/artillery/my-functions.js new file mode 100644 index 0000000..aa93abe --- /dev/null +++ b/load-test/artillery/my-functions.js
@@ -0,0 +1,38 @@ +// +// my-functions.js +// +module.exports = { + captureDeployments: captureDeployments, + fakeStatuses: fakeStatuses +} + +function captureDeployments(requestParams, response, context, ee, next) { + + var array = JSON.parse(response.body); + context.vars.captureDeployments = array; + return next(); // MUST be called for the scenario to continue +} +/* + requestParam are the parameters from this list + https://github.com/request/request#requestoptions-callback +*/ +function fakeStatuses(requestParams, context, ee, next) { + //console.log("--------------------------"); + //console.log(context.vars.captureDeployments) + var d = context.vars.captureDeployments; + var statusArray = []; + + for (var i = 0; i< d.length; i++) { + var status = { + "id":d[i].id, + "status": (i>(d.length*0.1))?"FAIL":"SUCCESS", + "message": "Some random message long.Some random message long.Some random message long.Some random message long.Some random message long.Some random message long.Some random message long.", + "errorCode":1 + }; + statusArray.push(status); + } + requestParams.body = statusArray; + requestParams.json = true; + //console.log(requestParams.body); + return next();// MUST be called for the scenario to continue +} \ No newline at end of file