Postman Collections
Testkube is able to run Postman collections inside your Kubernetes cluster so it can be used to test internal or external services.
Test Environmentโ
Let's assume that our SUT (Service Under Test) is an internal Kubernetes service which has
ClusterIP Service
created and is exposed on port 8088
. The service name is testkube-api-server
and is exposing the /health
endpoint that we want to test.
To call the SUT inside a cluster:
curl http://testkube-api-server:8088/health
Output:
200 OK
Create a New Postman Testโ
Create a postman collection and export it as JSON:
Right click and export the given Collection to a file,
In this example, it is saved into ~/Downloads/API-Health.postman_collection.json
Now we can create a new Testkube based on the saved Postman Collection.
Create a New Testkube Test Scriptโ
kubectl testkube create test --name api-incluster-test --file ~/Downloads/API-Health.postman_collection.json --type postman/collection
Output:
Test created ๐ฅ
Test created!
Running a Testโ
kubectl testkube run test api-incluster-test
Type : postman/collection
Name : api-incluster-test
Execution ID : 615d6398b046f8fbd3d955d4
Execution name: openly-full-bream
Test queued for execution
Use the following command to get test execution details:
$ kubectl testkube get execution 615d6398b046f8fbd3d955d4
or watch test execution until complete:
$ kubectl testkube watch execution 615d6398b046f8fbd3d955d4
Test runs can be named. If no name is passed, Testkube will autogenerate a name.
Getting Test Resultsโ
Now we can watch/get test execution details:
kubectl testkube watch execution 615d6398b046f8fbd3d955d4
Output:
Type : postman/collection
Name : api-incluster-test
Execution ID : 615d6398b046f8fbd3d955d4
Execution name: openly-full-bream
Watching for changes
Status: success, Duration: 598ms
Getting results
Name: openly-full-bream, Status: success, Duration: 598ms
newman
API-Health
โ Health
GET http://testkube-api-server:8088/health [200 OK, 124B, 297ms]
โ Status code is 200
โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
โ โ executed โ failed โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ iterations โ 1 โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ requests โ 1 โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ test-scripts โ 2 โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ prerequest-scripts โ 1 โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ assertions โ 1 โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโค
โ total run duration: 523ms โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ total data received: 8B (approx) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ average response time: 297ms [min: 297ms, max: 297ms, s.d.: 0ยตs] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Test execution completed in 598ms
Summaryโ
Testkube simplifies running tests inside a cluster and stores tests and tests results for later use.