| { |
| "info": { |
| "_postman_id": "23a07cf3-5e20-48d5-8af3-8aa65c6a681f", |
| "name": "Data Operational Performance Test", |
| "description": "A collection to test performance of registering and getting cmHandles (20000 is the default)", |
| "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", |
| "_exporter_id": "17907116" |
| }, |
| "item": [ |
| { |
| "name": "Register CM Handles", |
| "event": [ |
| { |
| "listen": "prerequest", |
| "script": { |
| "exec": [ |
| "const uuid = require(\"uuid\");", |
| "", |
| "const TOTAL_CMHANDLES = Number(pm.collectionVariables.get(\"TOTAL_CMHANDLES\"));", |
| "", |
| "var cmHandleIds = [];", |
| "var createdCmHandles = []", |
| "", |
| "for (i = 0; i < TOTAL_CMHANDLES; i++) {", |
| " let cmHandleId = uuid.v4().replace(/-/g, \"\");", |
| " cmHandleIds.push(cmHandleId);", |
| " createdCmHandles.push({", |
| " \"cmHandle\": cmHandleId,", |
| " \"cmHandleProperties\": { \"neType\": \"RadioNode\" },", |
| " \"publicCmHandleProperties\": {", |
| " \"Book\": \"Harry Potter\",", |
| " \"Author\": \"JK Rowling\"", |
| " }", |
| " });", |
| "}", |
| "", |
| "pm.collectionVariables.set(\"createdCmHandleIds\", JSON.stringify(cmHandleIds));", |
| "pm.collectionVariables.set(\"createdCmHandles\", JSON.stringify(createdCmHandles));", |
| "pm.collectionVariables.set(\"targetIds\", cmHandleIds);" |
| ], |
| "type": "text/javascript" |
| } |
| }, |
| { |
| "listen": "test", |
| "script": { |
| "exec": [ |
| "pm.test(\"HTTP Status is 200\", function () {\r", |
| " pm.response.to.be.ok;\r", |
| "});" |
| ], |
| "type": "text/javascript" |
| } |
| } |
| ], |
| "request": { |
| "method": "POST", |
| "header": [], |
| "body": { |
| "mode": "raw", |
| "raw": "{\r\n \"dmiPlugin\": \"http://{{DMI_HOST}}:{{DMI_PORT}}\",\r\n \"createdCmHandles\": {{createdCmHandles}}\r\n}", |
| "options": { |
| "raw": { |
| "language": "json" |
| } |
| } |
| }, |
| "url": { |
| "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmpInventory/v1/ch", |
| "protocol": "http", |
| "host": [ |
| "{{CPS_HOST}}" |
| ], |
| "port": "{{CPS_PORT}}", |
| "path": [ |
| "ncmpInventory", |
| "v1", |
| "ch" |
| ] |
| } |
| }, |
| "response": [] |
| }, |
| { |
| "name": "Get All Cm Handle IDs", |
| "event": [ |
| { |
| "listen": "test", |
| "script": { |
| "exec": [ |
| "// Convert the response body to a JSON object\r", |
| "var responseBodyAsJsonArray = JSON.parse(responseBody);\r", |
| "\r", |
| "var cmHandleInReadyState = [];\r", |
| "var cmHandleInNonReadyState = [];\r", |
| "\r", |
| "function countCmHandleStateInReady() {\r", |
| "for(var index = 0; index < responseBodyAsJsonArray.length; index++) {\r", |
| " if(typeof responseBodyAsJsonArray[index].state.cmHandleState !== 'undefined'\r", |
| " && responseBodyAsJsonArray[index].state.cmHandleState == 'READY') {\r", |
| " cmHandleInReadyState.push(responseBodyAsJsonArray[index].state.cmHandleState);\r", |
| " }else{\r", |
| " cmHandleInNonReadyState.push(responseBodyAsJsonArray[index].state.cmHandleState);\r", |
| " }\r", |
| "}\r", |
| "}\r", |
| "\r", |
| "countCmHandleStateInReady();\r", |
| "\r", |
| "pm.collectionVariables.set(\"numberOfCmHandlesInReadyState\", cmHandleInReadyState.length);\r", |
| "pm.collectionVariables.set(\"numberOfCmHandlesInNonReadyState\", cmHandleInNonReadyState.length);\r", |
| "\r", |
| "pm.test(\"HTTP Status is 200 with valid JSON response\", function () {\r", |
| " pm.response.to.be.ok;\r", |
| " pm.response.to.be.withBody;\r", |
| " pm.response.to.be.json;\r", |
| "});\r", |
| "\r", |
| "pm.test(\"20000 cm handles are in Ready state\", function () {\r", |
| " pm.expect(cmHandleInReadyState.length).to.eql(20000);\r", |
| "});\r", |
| "" |
| ], |
| "type": "text/javascript" |
| } |
| } |
| ], |
| "request": { |
| "method": "POST", |
| "header": [], |
| "body": { |
| "mode": "raw", |
| "raw": "{\r\n \"conditions\": [\r\n {\r\n \"name\": \"hasAllModules\"\r\n }\r\n ]\r\n}", |
| "options": { |
| "raw": { |
| "language": "json" |
| } |
| } |
| }, |
| "url": { |
| "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches", |
| "protocol": "http", |
| "host": [ |
| "{{CPS_HOST}}" |
| ], |
| "port": "{{CPS_PORT}}", |
| "path": [ |
| "ncmp", |
| "v1", |
| "ch", |
| "searches" |
| ], |
| "query": [ |
| { |
| "key": "resourceIdentifier", |
| "value": "stores:bookstore", |
| "disabled": true |
| }, |
| { |
| "key": "options", |
| "value": "(fields=schemas/schema/location,depth=5)", |
| "disabled": true |
| } |
| ] |
| } |
| }, |
| "response": [] |
| }, |
| { |
| "name": "ReadResourceDataForCmHandles", |
| "event": [ |
| { |
| "listen": "prerequest", |
| "script": { |
| "exec": [ |
| "const cmHandleIds = pm.collectionVariables.get(\"targetIds\"); \r", |
| "\r", |
| "var dataOperationRequest = []\r", |
| "var targetIds = [];\r", |
| "\r", |
| "for (index = 0; index < cmHandleIds.length ; index++) {\r", |
| "\r", |
| " targetIds.push(cmHandleIds[index]);\r", |
| " var dataOperationTargetIds = [];\r", |
| " if (targetIds.length == 5){\r", |
| " dataOperationTargetIds = targetIds;\r", |
| " dataOperationRequest.push({\r", |
| " \"operation\": \"read\",\r", |
| " \"operationId\": \"operational-\"+index,\r", |
| " \"datastore\": \"ncmp-datastore:passthrough-running\",\r", |
| " \"resourceIdentifier\": \"parent/child\",\r", |
| " \"targetIds\": dataOperationTargetIds\r", |
| " });\r", |
| "\r", |
| " pm.collectionVariables.unset(\"dataOperationTargetIds\");\r", |
| " // pm.globals.unset(\"variable_key\");\r", |
| " // pm.environment.unset(\"variable_key\");\r", |
| " // pm.collectionVariables.set(\"variable_key\", \"variable_value\");\r", |
| " // pm.sendRequest(\"https://postman-echo.com/get\", function (err, response) {\r", |
| " // console.log(response.json());\r", |
| " // });\r", |
| " // for (index = 0; index < dataOperationTargetIds.length ; index++) {\r", |
| " // targetIds.pop(dataOperationTargetIds[index]);\r", |
| " // }\r", |
| " }\r", |
| "}\r", |
| "\r", |
| " pm.collectionVariables.set(\"dataOperationRequest\", JSON.stringify(dataOperationRequest));" |
| ], |
| "type": "text/javascript" |
| } |
| }, |
| { |
| "listen": "test", |
| "script": { |
| "exec": [ |
| "pm.test(\"HTTP Status is 200 with valid JSON response\", function () {\r", |
| " pm.response.to.be.ok;\r", |
| " pm.response.to.be.withBody;\r", |
| " pm.response.to.be.json;\r", |
| "});" |
| ], |
| "type": "text/javascript" |
| } |
| } |
| ], |
| "request": { |
| "method": "POST", |
| "header": [ |
| { |
| "key": "topic", |
| "value": "client-topic", |
| "type": "default", |
| "disabled": true |
| } |
| ], |
| "body": { |
| "mode": "raw", |
| "raw": "{\r\n \"operations\":\r\n {{dataOperationRequest}}\r\n}", |
| "options": { |
| "raw": { |
| "language": "json" |
| } |
| } |
| }, |
| "url": { |
| "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/data?topic=my-client-topic", |
| "protocol": "http", |
| "host": [ |
| "{{CPS_HOST}}" |
| ], |
| "port": "{{CPS_PORT}}", |
| "path": [ |
| "ncmp", |
| "v1", |
| "data" |
| ], |
| "query": [ |
| { |
| "key": "topic", |
| "value": "my-client-topic" |
| } |
| ] |
| } |
| }, |
| "response": [] |
| } |
| ], |
| "auth": { |
| "type": "basic", |
| "basic": [ |
| { |
| "key": "password", |
| "value": "cpsr0cks!", |
| "type": "string" |
| }, |
| { |
| "key": "username", |
| "value": "cpsuser", |
| "type": "string" |
| } |
| ] |
| }, |
| "event": [ |
| { |
| "listen": "prerequest", |
| "script": { |
| "type": "text/javascript", |
| "exec": [ |
| "" |
| ] |
| } |
| }, |
| { |
| "listen": "test", |
| "script": { |
| "type": "text/javascript", |
| "exec": [ |
| "" |
| ] |
| } |
| } |
| ], |
| "variable": [ |
| { |
| "key": "createdCmHandleIds", |
| "value": "" |
| }, |
| { |
| "key": "createdCmHandles", |
| "value": "" |
| }, |
| { |
| "key": "TOTAL_CMHANDLES", |
| "value": "20000", |
| "type": "default" |
| }, |
| { |
| "key": "numberOfCmHandlesInReadyState", |
| "value": "", |
| "type": "default" |
| }, |
| { |
| "key": "numberOfCmHandlesInNonReadyState", |
| "value": "", |
| "type": "default" |
| }, |
| { |
| "key": "dataOperationRequest", |
| "value": "", |
| "type": "default" |
| }, |
| { |
| "key": "targetIds", |
| "value": "", |
| "type": "default" |
| } |
| ] |
| } |