github.com/kubeshop/testkube@v1.17.23/test/postman/TestKube-Sanity.postman_collection.json (about) 1 { 2 "info": { 3 "_postman_id": "25756fae-eca1-42e0-9ee7-4cb9b381fe32", 4 "name": "Testkube-Sanity", 5 "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", 6 "_exporter_id": "22855798" 7 }, 8 "item": [ 9 { 10 "name": "Create postman/collection test", 11 "event": [ 12 { 13 "listen": "prerequest", 14 "script": { 15 "exec": [ 16 "console.log(\"uri\", pm.environment.get(\"api_uri\"));", 17 "console.log(\"test name\", pm.environment.get(\"test_name\"))", 18 "console.log(\"test type\", pm.environment.get(\"test_type\"))", 19 "", 20 "", 21 "function makeid(length) {", 22 " var result = '';", 23 " var characters = 'abcdefghijklmnopqrstuvwxyz0123456789';", 24 " var charactersLength = characters.length;", 25 " for ( var i = 0; i < length; i++ ) {", 26 " result += characters.charAt(Math.floor(Math.random() * ", 27 " charactersLength));", 28 " }", 29 " return result;", 30 "}", 31 "", 32 "pm.environment.set(\"test_name\", \"postman-test-\"+makeid(6))" 33 ], 34 "type": "text/javascript" 35 } 36 }, 37 { 38 "listen": "test", 39 "script": { 40 "exec": [ 41 "pm.test(\"Status code is 201\", function () {", 42 " pm.response.to.have.status(201);", 43 "});", 44 "", 45 "pm.test(\"Check if test created successfully\", function () {", 46 " let jsonData = pm.response.json();", 47 " let name = jsonData.metadata.name;", 48 " let testName = pm.environment.get(\"test_name\");", 49 " ", 50 " pm.expect(name).to.eql(testName);", 51 "});", 52 "" 53 ], 54 "type": "text/javascript" 55 } 56 } 57 ], 58 "protocolProfileBehavior": { 59 "disabledSystemHeaders": {} 60 }, 61 "request": { 62 "method": "POST", 63 "header": [], 64 "body": { 65 "mode": "raw", 66 "raw": "{\n \"name\": \"{{test_name}}\",\n \"type\": \"{{test_type}}\",\n \"labels\": {\n \"toDelete\": \"yes\"\n },\n \"namespace\": \"testkube\",\n \"content\": {\n \"type\": \"string\",\n \"data\": \"{\\r\\n\\t\\\"info\\\": {\\r\\n\\t\\t\\\"_postman_id\\\": \\\"3d9a6be2-bd3e-4cf7-89ca-354103aab4a7\\\",\\r\\n\\t\\t\\\"name\\\": \\\"testkube\\\",\\r\\n\\t\\t\\\"schema\\\": \\\"https:\\/\\/schema.getpostman.com\\/json\\/collection\\/v2.1.0\\/collection.json\\\"\\r\\n\\t},\\r\\n\\t\\\"item\\\": [\\r\\n\\t\\t{\\r\\n\\t\\t\\t\\\"name\\\": \\\"Health\\\",\\r\\n\\t\\t\\t\\\"event\\\": [\\r\\n\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\\"listen\\\": \\\"test\\\",\\r\\n\\t\\t\\t\\t\\t\\\"script\\\": {\\r\\n\\t\\t\\t\\t\\t\\t\\\"exec\\\": [\\r\\n\\t\\t\\t\\t\\t\\t\\t\\\"pm.test(\\\\\\\"Status code is 200\\\\\\\", function () {\\\",\\r\\n\\t\\t\\t\\t\\t\\t\\t\\\" pm.response.to.have.status(200);\\\",\\r\\n\\t\\t\\t\\t\\t\\t\\t\\\"});\\\"\\r\\n\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\t\\\"type\\\": \\\"text\\/javascript\\\"\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t],\\r\\n\\t\\t\\t\\\"request\\\": {\\r\\n\\t\\t\\t\\t\\\"method\\\": \\\"GET\\\",\\r\\n\\t\\t\\t\\t\\\"header\\\": [],\\r\\n\\t\\t\\t\\t\\\"url\\\": {\\r\\n\\t\\t\\t\\t\\t\\\"raw\\\": \\\"{{test_api_uri}}\\/health\\\",\\r\\n\\t\\t\\t\\t\\t\\\"host\\\": [\\r\\n\\t\\t\\t\\t\\t\\t\\\"{{test_api_uri}}\\\"\\r\\n\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\\"path\\\": [\\r\\n\\t\\t\\t\\t\\t\\t\\\"health\\\"\\r\\n\\t\\t\\t\\t\\t]\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\t\\\"response\\\": []\\r\\n\\t\\t}\\r\\n\\t]\\r\\n}\"\n }\n}", 67 "options": { 68 "raw": { 69 "language": "json" 70 } 71 } 72 }, 73 "url": { 74 "raw": "{{api_uri}}/v1/tests", 75 "host": [ 76 "{{api_uri}}" 77 ], 78 "path": [ 79 "v1", 80 "tests" 81 ] 82 } 83 }, 84 "response": [] 85 }, 86 { 87 "name": "List tests", 88 "event": [ 89 { 90 "listen": "test", 91 "script": { 92 "exec": [ 93 "pm.test(\"Status code is 200\", function () {", 94 " pm.response.to.have.status(200);", 95 "});", 96 "", 97 "pm.test(\"Test is on the list\", function () {", 98 " let jsonData = pm.response.json();", 99 " let contains = false;", 100 " for (let i=0; i<jsonData.length; i++) {", 101 " if (jsonData[i].name == pm.environment.get(\"test_name\")) {", 102 " contains = true;", 103 " }", 104 " }", 105 "", 106 " pm.expect(contains).to.be.true", 107 "});" 108 ], 109 "type": "text/javascript" 110 } 111 }, 112 { 113 "listen": "prerequest", 114 "script": { 115 "exec": [ 116 "console.log(\"uri\", pm.environment.get(\"api_uri\"));", 117 "console.log(\"test name\", pm.environment.get(\"test_name\"))", 118 "console.log(\"test type\", pm.environment.get(\"test_type\"))", 119 "console.log(\"exec name\", pm.environment.get(\"execution_name\"))", 120 "", 121 "" 122 ], 123 "type": "text/javascript" 124 } 125 } 126 ], 127 "request": { 128 "method": "GET", 129 "header": [], 130 "url": { 131 "raw": "{{api_uri}}/v1/tests", 132 "host": [ 133 "{{api_uri}}" 134 ], 135 "path": [ 136 "v1", 137 "tests" 138 ] 139 } 140 }, 141 "response": [] 142 }, 143 { 144 "name": "Get test", 145 "event": [ 146 { 147 "listen": "test", 148 "script": { 149 "exec": [ 150 "pm.test(\"Check response data\", function () {", 151 " var jsonData = pm.response.json();", 152 " pm.expect(jsonData.name).to.eql(pm.environment.get(\"test_name\"));", 153 "});", 154 "", 155 "" 156 ], 157 "type": "text/javascript" 158 } 159 }, 160 { 161 "listen": "prerequest", 162 "script": { 163 "exec": [ 164 "console.log(\"uri\", pm.environment.get(\"api_uri\"));", 165 "console.log(\"test name\", pm.environment.get(\"test_name\"))", 166 "console.log(\"test type\", pm.environment.get(\"test_type\"))", 167 "console.log(\"exec name\", pm.environment.get(\"execution_name\"))", 168 "", 169 "" 170 ], 171 "type": "text/javascript" 172 } 173 } 174 ], 175 "request": { 176 "method": "GET", 177 "header": [], 178 "url": { 179 "raw": "{{api_uri}}/v1/tests/{{test_name}}", 180 "host": [ 181 "{{api_uri}}" 182 ], 183 "path": [ 184 "v1", 185 "tests", 186 "{{test_name}}" 187 ] 188 } 189 }, 190 "response": [] 191 }, 192 { 193 "name": "API Start Test", 194 "event": [ 195 { 196 "listen": "test", 197 "script": { 198 "exec": [ 199 "pm.test(\"Status code is 201 CREATED\", function () {", 200 " pm.response.to.have.status(201);", 201 "});", 202 "", 203 "pm.test(\"Check execution is created\", function () {", 204 " let jsonData = pm.response.json();", 205 " console.log(\"create response\", jsonData);", 206 "", 207 " let executionName = jsonData.name ", 208 " let executionID = jsonData.id ", 209 " pm.expect(executionName).is.not.empty;", 210 " pm.environment.set(\"execution_name\", executionName)", 211 " pm.environment.set(\"execution_id\", executionID)", 212 "});" 213 ], 214 "type": "text/javascript" 215 } 216 }, 217 { 218 "listen": "prerequest", 219 "script": { 220 "exec": [ 221 "console.log(\"test name\", pm.environment.get(\"test_name\"))", 222 "" 223 ], 224 "type": "text/javascript" 225 } 226 } 227 ], 228 "request": { 229 "method": "POST", 230 "header": [], 231 "body": { 232 "mode": "raw", 233 "raw": "{\"namespace\":\"testkube\"}", 234 "options": { 235 "raw": { 236 "language": "json" 237 } 238 } 239 }, 240 "url": { 241 "raw": "{{api_uri}}/v1/tests/{{test_name}}/executions", 242 "host": [ 243 "{{api_uri}}" 244 ], 245 "path": [ 246 "v1", 247 "tests", 248 "{{test_name}}", 249 "executions" 250 ] 251 } 252 }, 253 "response": [] 254 }, 255 { 256 "name": "Get created test execution by ID", 257 "event": [ 258 { 259 "listen": "test", 260 "script": { 261 "exec": [ 262 "", 263 "pm.test(\"Check successfull test execution\", function () {", 264 " let jsonData = pm.response.json();", 265 " console.log(\"response\", jsonData);", 266 " let status = jsonData.executionResult.status;", 267 " console.log(\"execution status\", status);", 268 " ", 269 " pm.expect(status).to.not.eq(\"failed\");", 270 " if(status != \"passed\") { ", 271 " setTimeout(() => {}, 1000); // wait for 1 second before retrying", 272 " postman.setNextRequest(pm.info.requestId);", 273 " return;", 274 " } ", 275 "", 276 " pm.expect(jsonData.executionResult.status).to.eql(\"passed\");", 277 " pm.expect(jsonData[\"name\"]).to.eql(pm.environment.get(\"execution_name\"));", 278 " pm.expect(jsonData.executionResult[\"output\"]).contains(\"Health\");", 279 " pm.expect(jsonData.executionResult[\"output\"]).contains(\"200 OK\");", 280 "", 281 "});" 282 ], 283 "type": "text/javascript" 284 } 285 }, 286 { 287 "listen": "prerequest", 288 "script": { 289 "exec": [ 290 "console.log(\"uri\", pm.environment.get(\"api_uri\"));", 291 "console.log(\"test name\", pm.environment.get(\"test_name\"))", 292 "console.log(\"test type\", pm.environment.get(\"test_type\"))", 293 "console.log(\"exec name\", pm.environment.get(\"execution_name\"))", 294 "console.log(\"exec id\", pm.environment.get(\"execution_id\"))", 295 "", 296 "" 297 ], 298 "type": "text/javascript" 299 } 300 } 301 ], 302 "request": { 303 "method": "GET", 304 "header": [], 305 "url": { 306 "raw": "{{api_uri}}/v1/executions/{{execution_id}}", 307 "host": [ 308 "{{api_uri}}" 309 ], 310 "path": [ 311 "v1", 312 "executions", 313 "{{execution_id}}" 314 ] 315 } 316 }, 317 "response": [] 318 }, 319 { 320 "name": "List test executions", 321 "event": [ 322 { 323 "listen": "test", 324 "script": { 325 "exec": [ 326 "pm.test(\"Successfull test execution\", function () {", 327 " let json = pm.response.json();", 328 " jsonData = json.results;", 329 "", 330 " console.log(\"results\", jsonData);", 331 " let contains = false;", 332 " for (let i=0; i<jsonData.length; i++) {", 333 " if (jsonData[i].name == pm.environment.get(\"execution_name\")) {", 334 " contains = true;", 335 " }", 336 " }", 337 "", 338 " pm.expect(contains).to.be.true", 339 "});" 340 ], 341 "type": "text/javascript" 342 } 343 }, 344 { 345 "listen": "prerequest", 346 "script": { 347 "exec": [ 348 "console.log(\"uri\", pm.environment.get(\"api_uri\"));", 349 "console.log(\"test name\", pm.environment.get(\"test_name\"))", 350 "console.log(\"test type\", pm.environment.get(\"test_type\"))", 351 "console.log(\"exec name\", pm.environment.get(\"execution_name\"))", 352 "console.log(\"exec id\", pm.environment.get(\"execution_id\"))", 353 "" 354 ], 355 "type": "text/javascript" 356 } 357 } 358 ], 359 "request": { 360 "method": "GET", 361 "header": [], 362 "url": { 363 "raw": "{{api_uri}}/v1/tests/{{test_name}}/executions", 364 "host": [ 365 "{{api_uri}}" 366 ], 367 "path": [ 368 "v1", 369 "tests", 370 "{{test_name}}", 371 "executions" 372 ] 373 } 374 }, 375 "response": [] 376 }, 377 { 378 "name": "List recent test executions", 379 "event": [ 380 { 381 "listen": "test", 382 "script": { 383 "exec": [ 384 "pm.test(\"Execution is among the recent ones\", function () {", 385 " console.log(\"response\", pm.response.json());", 386 " let jsonArray = pm.response.json();", 387 " let jsonData = jsonArray.results", 388 "", 389 " let contains = false;", 390 " for (let i=0; i<jsonData.length; i++) {", 391 " if (jsonData[i].name == pm.environment.get(\"execution_name\")) {", 392 " contains = true;", 393 " }", 394 " }", 395 "", 396 " pm.expect(contains).to.be.true", 397 "});" 398 ], 399 "type": "text/javascript" 400 } 401 }, 402 { 403 "listen": "prerequest", 404 "script": { 405 "exec": [ 406 "console.log(\"uri\", pm.environment.get(\"api_uri\"));", 407 "console.log(\"test name\", pm.environment.get(\"test_name\"))", 408 "console.log(\"test type\", pm.environment.get(\"test_type\"))", 409 "console.log(\"exec name\", pm.environment.get(\"execution_name\"))", 410 "console.log(\"exec id\", pm.environment.get(\"execution_id\"))", 411 "" 412 ], 413 "type": "text/javascript" 414 } 415 } 416 ], 417 "request": { 418 "method": "GET", 419 "header": [], 420 "url": { 421 "raw": "{{api_uri}}/v1/executions?limit=2", 422 "host": [ 423 "{{api_uri}}" 424 ], 425 "path": [ 426 "v1", 427 "executions" 428 ], 429 "query": [ 430 { 431 "key": "limit", 432 "value": "2" 433 } 434 ] 435 } 436 }, 437 "response": [] 438 }, 439 { 440 "name": "Delete test", 441 "event": [ 442 { 443 "listen": "test", 444 "script": { 445 "exec": [ 446 "pm.test(\"Most recent execution is that one recently run\", function () {", 447 " pm.response.to.have.status(204);", 448 "});" 449 ], 450 "type": "text/javascript" 451 } 452 }, 453 { 454 "listen": "prerequest", 455 "script": { 456 "exec": [ 457 "console.log(\"uri\", pm.environment.get(\"api_uri\"));", 458 "console.log(\"test name\", pm.environment.get(\"test_name\"))", 459 "console.log(\"test type\", pm.environment.get(\"test_type\"))", 460 "console.log(\"exec name\", pm.environment.get(\"execution_name\"))", 461 "console.log(\"exec id\", pm.environment.get(\"execution_id\"))", 462 "" 463 ], 464 "type": "text/javascript" 465 } 466 } 467 ], 468 "request": { 469 "method": "DELETE", 470 "header": [], 471 "url": { 472 "raw": "{{api_uri}}/v1/tests/{{test_name}}", 473 "host": [ 474 "{{api_uri}}" 475 ], 476 "path": [ 477 "v1", 478 "tests", 479 "{{test_name}}" 480 ] 481 } 482 }, 483 "response": [] 484 } 485 ], 486 "event": [ 487 { 488 "listen": "prerequest", 489 "script": { 490 "type": "text/javascript", 491 "exec": [ 492 "" 493 ] 494 } 495 }, 496 { 497 "listen": "test", 498 "script": { 499 "type": "text/javascript", 500 "exec": [ 501 "" 502 ] 503 } 504 } 505 ], 506 "variable": [ 507 { 508 "key": "test_type", 509 "value": "postman/collection", 510 "type": "string" 511 } 512 ] 513 }