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