You have successfully subscribed to the Testkube newsletter.
You have successfully subscribed to the Testkube newsletter.
Oops! Something went wrong while submitting the form.
Last updated
July 19, 2025
Bruno Lopes
Product Leader
Testkube
Share on X
Share on LinkedIn
Share on Reddit
Share on HackerNews
Copy URL
Table of Contents
Testkube with Pytest TL;DR
TL;DR
Testkube with Pytest Guide
1
Pytest Integration Challenge: While Pytest is a popular, flexible Python testing framework with minimal boilerplate code, integrating it into Kubernetes environments traditionally poses scaling and parallel execution challenges
2
Testkube Solution:Testkube is a Kubernetes-native test orchestration framework that stores tests as Custom Resource Definitions (CRDs), enabling seamless scaling and integration with CI/CD pipelines
3
Simple Workflow Creation: Creating test workflows is straightforward - you define a YAML spec that includes your Git repository, Docker image, and shell commands (like pytest test-api-endpoint.py) without complex scripting
4
End-to-End Management: A single YAML file manages everything related to your tests including code, environments, resources, and artifacts, making the testing process more efficient and robust
5
Universal Testing Platform:Testkube works with any testing tool (not just Pytest) and any CI/CD system, positioning itself as the only native Kubernetes test orchestration framework for comprehensive testing workflows
Testing modern distributed applications within Kubernetes environments can be daunting due to the complexity and the need for scalable solutions. Traditional testing tools often fall short when it comes to efficiency and agility.
However, with the advent of Kubernetes native solutions like Testkube, it's easier than ever to integrate powerful testing frameworks such as Pytest into your testing workflows. In this comprehensive guide, we'll explore how to leverage Testkube with Pytest to streamline your testing processes in Kubernetes.
Pytest Overview
Python remains a top choice for programming among developers due to its simplicity and robust ecosystem. Pytest, a popular framework within this ecosystem, excels in testing Python-based applications, but not only. It is preferred for its minimalistic design, flexibility, and rich feature set, which makes it ideal to test any type of application. It includes:
Minimal Design: Pytest reduces boilerplate code, facilitating quick and easy test case creation.
Flexibility: Its modular nature and extensive plugin ecosystem allow for significant customization.
Rich Feature Set: Features like auto-discovery, assertive properties, and module fixtures streamline test management.
Diverse Testing: Pytest supports both unit and integration tests, ensuring you are covered in most testing scenarios.
While Pytest is robust for testing your applications, integrating it into Kubernetes can pose challenges such as scaling and parallel execution. This is where Testkube comes into play.
Why Use Testkube To Run Pytests in Kubernetes?
Testkube is specifically designed to orchestrate and scale Pytest executions within Kubernetes, taking full advantage of Kubernetes' scalability, flexibility, and efficiency. Here’s why it stands out:
Kubernetes Native: By storing tests as Kubernetes Custom Resource Definitions (CRDs), Testkube ensures compatibility and scalability.
Integration with CI/CD Tools: Testkube seamlessly integrates with existing CI/CD pipelines, enhancing end-to-end testing capabilities.
Simplified Workflow Creation: Without the need for complex scripting, Testkube facilitates the creation of detailed test workflows, allowing for better control and customization of test executions.
Creating a Pytest Test Workflow
We’ve created a custom Pytest image for this example, but you can also create your own. For all the files and examples shown on this blogpost, refer to this Pytest folder.
To demonstrate the power of Testkube with Pytest, let’s create a simple test workflow. We first create a Pytest test that checks an API endpoint for the correct number of objects returned.
import pytest
import requests
deftest_validate_object_count():# Send a GET request to the API endpoint response = requests.get("https://api.restful-api.dev/objects")
# Assert that the response status code is 200 (OK)assert response.status_code == 200# Parse the JSON response data = response.json()
# Validate the number of objects in the responseassertlen(data) == 13, f"Expected 13 objects, but received {len(data)}"
Below is are the steps to set up a Test Workflow in Testkube:
Prepare Your Kubernetes Cluster: Ensure your cluster has the Testkube agent installed and configured.
Navigate to Test Workflows: In the Testkube dashboard, click on "Add A New Test Workflow" and select "Create From Scratch".
Workflow Configuration: Follow the wizard to set up your workflow. Provide the test's image, the shell command (pytest test-api-endpoint.py), and the Git repository details.
On the next screen, you have to define the source of your test.
Choose Git from the drop-down.
Provide the path to the Git repository that has the test.
Provide a path if the test file isn’t in the root folder.
Check the “Use path as working directory” checkbox.
The wizard's last page shows you the final yaml spec generated based on the values you provided.
Click on “Create” to create and save the Test Workflow.
Executing a Test Workflow
Click on “Run Now” to run the workflow. Clicking on the respective execution will show you the logs, artifacts, and the underlying workflow file.
Creating a Test Workflow in Testkube is straightforward and simple. We saw that just from one yaml file, we can manage everything related to our test - code, environments, resources, and artifacts. This makes your testing process and workflows more efficient and robust.
Summary
Pytest is one of Python's most popular testing frameworks, and Testkube is the only native Kubernetes test orchestration framework. Leveraging both these tools together streamlines your testing process for Kubernetes applications.
As we saw in this post, developers can benefit from Testkube’s Kubernetes capabilities and Pytest’s flexibility in creating efficient Test Workflows. You can also bring in any other testing tool and create a Test Workflow, not just Pytest.
If you already have a testing tool and want to experience Test Workflows, visit our website to learn more about Testkube's capabilities and how it can transform your testing workflow. You can also join our Slack channel for any assistance.
Top 5 Most Important Pytest & Testkube in Kubernetes FAQs
Pytest & Testkube in Kubernetes FAQs
Essential questions about running Python tests in containerized environments
TL;DR: Yes. Pytest tests can be run inside Kubernetes using Testkube, which manages execution, scaling, and integration with CI/CD tools natively within the cluster.
Testkube provides a comprehensive Kubernetes-native testing framework that eliminates the complexity of managing test infrastructure. It supports distributed test execution, real-time monitoring, and seamless integration with your existing development workflows, making it easy to run Python tests at scale within your cluster environment.
TL;DR: Testkube simplifies running and scaling Pytest in Kubernetes, offers parallel execution, stores tests as CRDs, and integrates easily with Git-based workflows.
Beyond basic execution, Testkube provides enterprise-grade features including distributed test execution across multiple nodes, comprehensive reporting with detailed test analytics, automatic test artifact management, and seamless integration with popular CI/CD platforms like Jenkins, GitLab, and GitHub Actions. This eliminates the need to manage custom test infrastructure while providing robust monitoring and observability for your test suites.
TL;DR: Define a TestWorkflow YAML with your Git repo, Docker image, and test command (e.g., pytest test-api-endpoint.py). Testkube's UI also provides a wizard to generate this YAML.
The configuration process supports both declarative YAML definitions and an intuitive web interface. You can specify test parameters, environment variables, resource requirements, and execution schedules. Testkube automatically handles test discovery, dependency management, and result collection, making it accessible for both DevOps engineers who prefer infrastructure-as-code approaches and developers who favor GUI-based configuration.
TL;DR: Not necessarily. You can use a pre-built Pytest image (e.g. atulinfracloud/pytest-executor) or create your own if your tests need custom dependencies.
This flexibility allows teams to start quickly with standard images for basic testing scenarios while maintaining the option to customize their testing environment as requirements evolve. Custom images become useful when you need specific Python packages, database drivers, or testing frameworks beyond the standard Pytest installation. The approach supports both rapid prototyping for simple test cases and enterprise-scale deployments with complex dependency requirements.
TL;DR: Yes. Testkube supports any testing tool—Postman, Cypress, Playwright, JMeter, etc.—making it a universal Kubernetes-native testing orchestrator.
This multi-framework support makes Testkube a comprehensive testing platform that can unify your entire testing strategy under a single Kubernetes-native solution. Whether you're running unit tests with Pytest, integration tests with Postman, end-to-end tests with Cypress, or performance tests with JMeter, Testkube provides consistent execution, monitoring, and reporting across all testing tools. This reduces operational complexity while maintaining tool diversity and allowing teams to use the best testing framework for each specific use case.
About Testkube
Testkube is a test execution and orchestration framework for Kubernetes that works with any CI/CD system and testing tool you need. It empowers teams to deliver on the promise of agile, efficient, and comprehensive testing programs by leveraging all the capabilities of K8s to eliminate CI/CD bottlenecks, perfecting your testing workflow. Get started with Testkube's free trial today.