awesome-python-testing
Collection of awesome 😎️ Python resources for testing
https://github.com/cleder/awesome-python-testing
Last synced: 5 days ago
JSON representation
-
Resources
-
Books
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Architecture Patterns with Python
- Python Testing with Selenium
- Python Unit Test Automation
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
- Python Testing with Selenium
-
Related
- Awesome Python - A curated list of awesome Python frameworks, libraries, software and resources.
- Python test automation - A comprehensive curated list of python test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation on python.
- commit-check - Check commit message formatting, branch naming, commit author, email, and more.
-
Videos
- PyCascades 2023 - Talk - Brian Okken: "Sharing is Caring - Sharing pytest Fixtures"
- PyCon US 2023 - Talk - Dan Craig: Testing Spacecraft with Pytest
- PyCon US 2023 - Talk - Dave Aronson: Kill All Mutants! (Intro to Mutation Testing)
- PyCon US 2023 - Talk - Shai Geva: 10 Ways To Shoot Yourself In The Foot With Tests
- PyCon US 2023 - Tutorial - Zac Hatfield-Dodds, Ryan Soklaski: Introduction to Property-Based Testing
- PyCascades 2023 - Talk - Brian Okken: "Sharing is Caring - Sharing pytest Fixtures"
- PyCon US 2023 - Talk - Dan Craig: Testing Spacecraft with Pytest
- PyCon US 2023 - Talk - Dave Aronson: Kill All Mutants! (Intro to Mutation Testing)
- PyCon US 2023 - Talk - Shai Geva: 10 Ways To Shoot Yourself In The Foot With Tests
- PyCon US 2023 - Tutorial - Zac Hatfield-Dodds, Ryan Soklaski: Introduction to Property-Based Testing
-
-
Rest API Testing
- Zato API Test - API testing in pure English. No programming needed. Implemented and extendable in Python.
- behave-restful - BDD Framework to Test REST Services and APIs.
- cherrybomb - CLI tool that helps you avoid undefined user behaviour by auditing your API specifications, validating them and running API security tests.
- Dredd - is a language-agnostic command-line tool for validating API description document against backend implementation of the API.
- HttpRunner - is a simple & elegant, yet powerful HTTP(S) testing framework.
- hypothesis-graphql - Hypothesis strategies for GraphQL schemas, queries and data.
- playback - A Python decorator-based framework that lets you "record" and "replay" operations (e.g. API requests, workers consuming jobs from queues).
- RESTler - is the first stateful REST API fuzzing tool for automatically testing cloud services through their REST APIs and finding security and reliability bugs in these services.
- Tavern - is a pytest plugin, command-line tool and Python library for automated testing of APIs, with a simple, concise and flexible YAML-based syntax.
- Schemathesis - A tool for automatic property-based testing of web applications built with Open API / Swagger specifications.
- postman2pytest - A CLI tool to convert Postman Collection v2.1 JSON files into runnable pytest suites, supporting environment variable substitution, folder filtering, and stress-test generation.
-
Retrying Tests
- pytest-check - A pytest plugin that allows multiple failed assertions per test function, so you can see the whole picture of what's going wrong.
- pytest-rerunfailures - A pytest plugin that re-runs failed tests up to -n times to eliminate flakey failures.
- pytest-retry - A simple plugin for retrying flaky tests in CI environments.
-
Snapshot Tests
- ApprovalTests - work by comparing the test results to a golden master.
- SnapshotTest - is a way to test your APIs without writing actual test cases.
- VCR.py - Record and replay HTTP interactions on your tests.
- syrupy - is a zero-dependency pytest snapshot plugin. It enables developers to write tests which assert immutability of computed results.
-
Speed
- Partial Testing - Run only the tests that are relevant for your changes.
- Pytest-incremental - analyses your project structure and file modifications between test-runs to modify the order tests are executed and de-select tests.
- pytest-testmon - Selects tests affected by changed files. Continuous test runner when used with pytest-watch.
- Awesome pytest speedup - A checklist of best practices to speed up your pytest suite.
- Django-Mercury-Performance-Testing - Quickly & Ergonomically transform your Django Tests to track performance statistics like response time, queries, memory usage, and more!
- pytest-picked - Run only tests from modified test files, or run tests from modified test files first, followed by all unmodified tests
-
Static Checks
- awesome-python-typing - Collection of awesome Python types, stubs, plugins, and tools to work with them.
- flake8 - is a python tool that glues together pep8, pyflakes, mccabe, and third-party plugins to check the style and quality of python code.
- awesome-flake8-extensions - A curated list of awesome flake8 extensions.
- Bandit - is a tool designed to find common security issues in Python code.
- pyanalyze - A tool for programmatically detecting common mistakes in Python code, such as references to undefined variables and some categories of type mismatches.
- pyflakes - A simple program which checks Python source files for errors.
- Refurb - A tool for refurbishing and modernizing Python codebases.
- slotscheck - Find mistakes in your `__slots__` definitions.
- typos - A Source code spell checker that finds and corrects spelling mistakes in source code.
- ruff - An extremely fast Python linter, written in Rust.
- complexipy - An extremely fast Python library to calculate the cognitive complexity of Python files, written in Rust.
- Pylint - A Python static code analysis tool which looks for programming errors, helps enforcing a coding standard, sniffs for code smells and offers simple refactoring suggestions.
- Typecheckers - A list of Python type checkers.
-
Testing Frameworks
- doctest - (Python standard library) The doctest module searches for pieces of text that look like interactive Python sessions, and then executes those sessions to verify that they work exactly as shown.
- unittest - (Python standard library) Unit testing framework.
- async-asgi-testclient - A framework-agnostic library for testing ASGI web applications.
- awesome-pytest - A curated list of awesome pytest resources.
- hammett - Fast python test runner, compatible with a subset of pytest.
- maelstrom - Maelstrom is a fast Rust and Python test runner that runs every test in its own container. Tests are either run locally or distributed to a clustered job runner.
- nose2 - The successor to `nose`, based on `unittest2`.
- perftester - A lightweight framework for performance testing of Python functions; allows for testing of performance in terms of execution time and memory usage.
- promptimize - a prompt engineering evaluation and testing toolkit. It accelerates and provides structure around prompt engineering at scale with confidence, bringing some of the ideas behind test-driven development (TDD) to engineering prompts.
- sundew - Sundew is a testing framework for Python, implementing a new approach to testing. One that combines functional programming concepts and the general best practices for writing tests that we already know, and enforces them in a way that enables some really powerful features that make testing easier, enjoyable, and more effective.
- Robot Framework - A generic test automation framework.
- testbook - A unit testing framework extension for testing code in Jupyter Notebooks.
- vedro - Pragmatic testing framework for Python
- Ward - is a modern test framework for Python with a focus on productivity and readability.
- xdoctest - A rewrite of Python's builtin doctest module (with pytest plugin integration) with AST instead of REGEX.
- Sphinx-testify - Testified documentation means that the documentation source references test results, and these references are verified during the build process. As a result, we can keep every paragraph even every sentence of the documentation aligned with the code, as long as there is a test that "testifies" the described behaviour.
- tryke - A Rust-based Python test runner with a Jest-style API
- pytest-conversational - A pytest plugin for testing rule-based chatbots and conversational UIs through multi-turn dialogue assertions, with no LLM dependency.
- rut - A modern and fully-featured test runner for Python's unittest framework (not `pytest`), with simplicity as a core design goal.
-
Test Runners
- green - A clean, colorful test runner.
-
Tools
- ghostwriter - Writing tests with Hypothesis frees you from the tedium of deciding on and writing out specific inputs to test.
- Auger - Project to automatically generate unit tests for Python code.
- CrossHair - An analysis tool for Python that blurs the line between testing and type systems.
- importlab - A library that automatically infers dependencies for Python files. Importlab's main use case is to work with static analysis tools that process one file at a time, ensuring that a file's dependencies are analysed before it is.
- Klara - Static analysis tools to automatic generate test case, based on SMT (z3) solver, with a powerful ast level inference system.
- logot - Test whether your code is logging correctly.
- Pifpaf - A suite of fixtures and a command-line tool that allows to start and stop daemons for a quick throw-away usage. This is typically useful when needing these daemons to run integration testing.
- Pynguin - A tool that allows developers to generate unit tests automatically.
- pytest-codegen - Pytest-codegen will statically analyze your code to create pytest function stubs.
- pytestify - Automatically convert unittests to pytest.
- pytest-mock-generator - A pytest fixture wrapper for `mock_autogen`.
- teyit - A static analyzer and a refactoring tool to rewrite your unittest assertions in the right way.
- pytest-databases - Reusable database fixtures for any and all databases.
- pytest-test-observer - A pytest plugin that ships per-test results to ClickHouse for trend analysis, flakiness tracking, and CI observability.
- secure-log2test - A CLI tool that converts Kibana JSON log exports into runnable pytest regression suites, with Pydantic-based redaction of authorization headers and other secrets at parse time.
-
UI Testing
- Flybirds - is a front-end UI automation test framework based on BDD mode, providing a series of out-of-the-box tools and complete documentation.
- Golem - is a test framework and a complete tool for browser automation. Tests can be written with code in Python, codeless using the web IDE, or both.
- Lost Pixel - is an open source visual regression testing tool. Run visual regression tests on your Storybook and Ladle stories and on your application pages.
- LuluTest - is an open source browser automation framework using Python and Selenium.
- PyAutoGUI - is a cross-platform GUI automation Python module for human beings.
- pytest-ui-automatic - Playwright Python tool practice pytest pytest-bdd screen-play page-object allure cucumber-report.
- selene - User-oriented Web UI browser tests in Python (Selenide port).
- SeleniumBase - is an all-in-one Python framework for automated browser testing. Tests are run with "pytest", and use WebDriver APIs for web-page interaction.
- splinter - Open source tool for testing web applications.
- squape - is a package that extends Squish API providing convenience tools for everyday automated test cases development.
- Selenium - Python bindings for [Selenium](http://www.seleniumhq.org/) WebDriver.
- helium - is great for web automation. Helium makes it easier to use.
- sixpack - A language-agnostic A/B Testing framework.
- pomcorn - is an open source Python package that contains base classes to create systems based on Selenium framework and Page Object Model pattern
- aria-testing - Accessibility-focused DOM testing library for tdom, built with modern Python 3.14+.
- HMNextAuto - Python-based UI automation framework for HarmonyOS NEXT. API compatible with uiautomator2, supports XPath, image recognition, performance monitoring and notification management.
Programming Languages
Categories
Resources
170
Testing Frameworks
19
Mock and Stub
18
UI Testing
16
Tools
15
Static Checks
13
Rest API Testing
11
Assertions
9
Load Testing
6
Mutation Testing
6
Fake Data
6
Speed
6
Memory Management
5
Property Based Testing
5
Object Factories
4
Snapshot Tests
4
Behavior-driven Development
3
Penetration Testing
3
Retrying Tests
3
Code Coverage
3
Design by Contract
3
Fixtures
2
LLM & MCP Testing
2
Reporting
1
Test Runners
1
Sub Categories
Keywords
python
72
testing
48
pytest
14
testing-tools
12
pytest-plugin
10
python3
10
http
10
test-automation
9
testing-framework
9
mock
8
linter
7
unit-testing
7
mocking
6
webdriver
6
bdd
5
cli
5
static-analysis
5
fixtures
5
automation
5
performance-testing
5
selenium
5
rust
4
test-runner
4
api
4
static-code-analysis
4
mutation-testing
4
test
3
openapi
3
security
3
code-quality
3
tdd
3
selenium-python
3
unit-test
3
gherkin
3
e2e-testing
3
unittest
3
awesome
3
mypy
3
benchmarking
3
load-testing
3
requests
3
locust
3
performance
3
django
3
behavior-driven-development
3
testing-library
3
fuzzing
3
api-security
2
typing
2
hypothesis
2