3 "_postman_id": "23a07cf3-5e20-48d5-8af3-8aa65c6a681f",
4 "name": "Data Operational Performance Test",
5 "description": "A collection to test performance of registering and getting cmHandles (20000 is the default)",
6 "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
7 "_exporter_id": "17907116"
11 "name": "Register CM Handles",
14 "listen": "prerequest",
17 "const uuid = require(\"uuid\");",
19 "const TOTAL_CMHANDLES = Number(pm.collectionVariables.get(\"TOTAL_CMHANDLES\"));",
21 "var cmHandleIds = [];",
22 "var createdCmHandles = []",
24 "for (i = 0; i < TOTAL_CMHANDLES; i++) {",
25 " let cmHandleId = uuid.v4().replace(/-/g, \"\");",
26 " cmHandleIds.push(cmHandleId);",
27 " createdCmHandles.push({",
28 " \"cmHandle\": cmHandleId,",
29 " \"cmHandleProperties\": { \"neType\": \"RadioNode\" },",
30 " \"publicCmHandleProperties\": {",
31 " \"Book\": \"Harry Potter\",",
32 " \"Author\": \"JK Rowling\"",
37 "pm.collectionVariables.set(\"createdCmHandleIds\", JSON.stringify(cmHandleIds));",
38 "pm.collectionVariables.set(\"createdCmHandles\", JSON.stringify(createdCmHandles));",
39 "pm.collectionVariables.set(\"targetIds\", cmHandleIds);"
41 "type": "text/javascript"
48 "pm.test(\"HTTP Status is 200\", function () {\r",
49 " pm.response.to.be.ok;\r",
52 "type": "text/javascript"
61 "raw": "{\r\n \"dmiPlugin\": \"http://{{DMI_HOST}}:{{DMI_PORT}}\",\r\n \"createdCmHandles\": {{createdCmHandles}}\r\n}",
69 "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmpInventory/v1/ch",
74 "port": "{{CPS_PORT}}",
85 "name": "Get All Cm Handle IDs",
91 "// Convert the response body to a JSON object\r",
92 "var responseBodyAsJsonArray = JSON.parse(responseBody);\r",
94 "var cmHandleInReadyState = [];\r",
95 "var cmHandleInNonReadyState = [];\r",
97 "function countCmHandleStateInReady() {\r",
98 "for(var index = 0; index < responseBodyAsJsonArray.length; index++) {\r",
99 " if(typeof responseBodyAsJsonArray[index].state.cmHandleState !== 'undefined'\r",
100 " && responseBodyAsJsonArray[index].state.cmHandleState == 'READY') {\r",
101 " cmHandleInReadyState.push(responseBodyAsJsonArray[index].state.cmHandleState);\r",
103 " cmHandleInNonReadyState.push(responseBodyAsJsonArray[index].state.cmHandleState);\r",
108 "countCmHandleStateInReady();\r",
110 "pm.collectionVariables.set(\"numberOfCmHandlesInReadyState\", cmHandleInReadyState.length);\r",
111 "pm.collectionVariables.set(\"numberOfCmHandlesInNonReadyState\", cmHandleInNonReadyState.length);\r",
113 "pm.test(\"HTTP Status is 200 with valid JSON response\", function () {\r",
114 " pm.response.to.be.ok;\r",
115 " pm.response.to.be.withBody;\r",
116 " pm.response.to.be.json;\r",
119 "pm.test(\"20000 cm handles are in Ready state\", function () {\r",
120 " pm.expect(cmHandleInReadyState.length).to.eql(20000);\r",
124 "type": "text/javascript"
133 "raw": "{\r\n \"conditions\": [\r\n {\r\n \"name\": \"hasAllModules\"\r\n }\r\n ]\r\n}",
141 "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/ch/searches",
146 "port": "{{CPS_PORT}}",
155 "key": "resourceIdentifier",
156 "value": "stores:bookstore",
161 "value": "(fields=schemas/schema/location,depth=5)",
170 "name": "ReadResourceDataForCmHandles",
173 "listen": "prerequest",
176 "const cmHandleIds = pm.collectionVariables.get(\"targetIds\"); \r",
178 "var dataOperationRequest = []\r",
179 "var targetIds = [];\r",
181 "for (index = 0; index < cmHandleIds.length ; index++) {\r",
183 " targetIds.push(cmHandleIds[index]);\r",
184 " var dataOperationTargetIds = [];\r",
185 " if (targetIds.length == 5){\r",
186 " dataOperationTargetIds = targetIds;\r",
187 " dataOperationRequest.push({\r",
188 " \"operation\": \"read\",\r",
189 " \"operationId\": \"operational-\"+index,\r",
190 " \"datastore\": \"ncmp-datastore:passthrough-running\",\r",
191 " \"resourceIdentifier\": \"parent/child\",\r",
192 " \"targetIds\": dataOperationTargetIds\r",
195 " pm.collectionVariables.unset(\"dataOperationTargetIds\");\r",
196 " // pm.globals.unset(\"variable_key\");\r",
197 " // pm.environment.unset(\"variable_key\");\r",
198 " // pm.collectionVariables.set(\"variable_key\", \"variable_value\");\r",
199 " // pm.sendRequest(\"https://postman-echo.com/get\", function (err, response) {\r",
200 " // console.log(response.json());\r",
202 " // for (index = 0; index < dataOperationTargetIds.length ; index++) {\r",
203 " // targetIds.pop(dataOperationTargetIds[index]);\r",
208 " pm.collectionVariables.set(\"dataOperationRequest\", JSON.stringify(dataOperationRequest));"
210 "type": "text/javascript"
217 "pm.test(\"HTTP Status is 200 with valid JSON response\", function () {\r",
218 " pm.response.to.be.ok;\r",
219 " pm.response.to.be.withBody;\r",
220 " pm.response.to.be.json;\r",
223 "type": "text/javascript"
232 "value": "client-topic",
239 "raw": "{\r\n \"operations\":\r\n {{dataOperationRequest}}\r\n}",
247 "raw": "http://{{CPS_HOST}}:{{CPS_PORT}}/ncmp/v1/data?topic=my-client-topic",
252 "port": "{{CPS_PORT}}",
261 "value": "my-client-topic"
274 "value": "cpsr0cks!",
286 "listen": "prerequest",
288 "type": "text/javascript",
297 "type": "text/javascript",
306 "key": "createdCmHandleIds",
310 "key": "createdCmHandles",
314 "key": "TOTAL_CMHANDLES",
319 "key": "numberOfCmHandlesInReadyState",
324 "key": "numberOfCmHandlesInNonReadyState",
329 "key": "dataOperationRequest",