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  }