{ "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" } ] }