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  }