Testkube: The Kubernetes-native testing framework

Testkube: The Kubernetes-native testing framework

Aug 30, 2022Β·

4 min read

Hello Hashnode Community! Today we will discover a fantastic OpenSource testing tool for Kubernetes.TestKube.

What is TestKube?

Testkube is a Kubernetes-native testing framework. It enables running tests directly in your Kubernetes cluster and then saves the results to a centralized space. It abstracts away all the troubles of containerizing different test types. Testkube makes testing in Kubernetes a smooth cloud-native experience.

  • TestKube gives us a centralized test result and is simple to integrate with GitOps and CI/CD procedures.

So, in this blog, we will go to cover:

  1. Why Testkube?
  2. Is it for you?
  3. Installation of Testkube
  4. Demo.


  • Basic knowledge of K8s

Why TestKube?

TestKube Decouples the testing activities performed at CI/CD pipeline and defines them in Testkube so that we can run our tests anytime without having to run the entire CI/CD pipeline for running an individual test, So moving across CI/CD platforms becomes more accessible as we don't need to redefine all the tests as we can reuse the way tests has been defined and orchestrated in TestKube.

CI/CD Workflow With TestKube


CI/CD Workflow Without TestKube


Because TestKube retrieves the test files from the project repository and executes them as you want, you don't need to perform any complicated settings to run your tests.

The complexities involved with CI/CD testing are simplified as TestKube Manages all the testing activities themselves.

TestKube provides the entire infrastructure for taking care of all testing workloads from inside the Kubernetes cluster.

Is TestKube for you?

  • If you are doing Integration testing for your application under Kubernetes, Testkube is for you.

  • If you wish to surpass K8's limitations, such as network limits or lack of access to testing environments

  • If your CI/CD and testing processes are too closely related


So, for installing TestKube you can go through this detailed guide, or you can also watch this video (from 03:23).

  • Now, open your terminal and write this command.πŸ‘‡
$ kubectl testkube install

After Installation, this screen will be visible to youπŸ‘‡


Note- This will be only visible if you have already installed K8s in your system.

  • Now, run thisπŸ‘‡ command to view all the TestKube components.
$ kubectl get pods -n testkube

Now, your screen will look like thisπŸ‘‡


Now, we will be able to see both client and server versions.

  • To see the version of the TestKube, run this command.πŸ‘‡
$ kubectl testkube version
  • The screen will look like thisπŸ‘‡


Note - TestKube installs in an empty cluster. We will need some service to test

To run your test, run this command.πŸ‘‡

kubectl testkube run test our-first-test-name

The screen will look like this.πŸ‘‡


πŸ“Œ The whole process will be going to look like this.πŸ‘‡


Demo of testing using K6 with Testkube

Now, we will go to see a demo using k6 with Testkube.

Running a K6 Test

K6 is integral part of Testkube. During the Testkube installation, the Testkube k6 executor installs by default. You must first build a Test in Testkube to perform a K6 test.

  • Create a new JS file.
// bash

$ touch k6-test.js

// You can give any name

Now we will create a k6 load test and run it. Write this code πŸ‘‡ inside the k6-test.js file.

import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
stages: [
 { duration: '5s', target: 20 },
 { duration: '5s', target: 10 },
export default function () {
const res = http.get('https://httpbin.test.k6.io/');
check(res, { 'status was 200': (r) => r.status == 200 });

Save the file as k6-test.js or anything you like.

  • Now execute the test script. First, we need to define it as k6/script πŸ‘‡
$ kubectl testkube create test --file path/to/your/k6-test.js --type "k6/script" --name k6-test

Now, run this command.

$ kubectl testkube run test k6-test -f

Now, we can view our logs and test results in the Testkube dashboard. Run this command.πŸ‘‡

$ kubectl testkube dashboard

Now, the dashboard will look like this.πŸ‘‡


Thank You

I hope you learn something from this blog. You can view this video to learn more about Testkube.

Did you find this article valuable?

Support WeMakeDevs by becoming a sponsor. Any amount is appreciated!