Top pytest Plugins

This is intended to find the most popular (as determined by download count) pytest plugins, as plugins usually have “pytest” in the name.
Counts are the number of downloads over 30 days.

The list

Data last updated: 2026-08-01 06:34:08

# Package Downloads Summary
1 pytest-asyncio 275,917,521 pytest support for asyncio
2 pytest-json-ctrf 273,013,127 pytest plugin to generate json report in CTRF (Common Test Report Format)
3 pytest-cov 235,924,037 pytest plugin for measuring coverage.
Test and Code episode pytest-cov : The pytest plugin for measuring coverage
4 pytest-xdist 177,097,162 pytest xdist plugin for distributed testing, most importantly across multiple CPUs
5 pytest-mock 105,035,819 Thin-wrapper around the mock package for easier use with pytest
Test and Code episode pytest-mock : Mocking in pytest
6 pytest-timeout 103,142,767 pytest plugin to abort hanging tests
7 pytest-rerunfailures 79,126,164 pytest plugin to re-run tests to eliminate flaky failures
8 hypothesis 48,260,681 The property-based testing library for Python
Includes a small pytest plugin.
9 pytest-metadata 35,249,000 pytest plugin for test session metadata
Test and Code episode pytest-metadata - provides access to test session metadata
10 pytest-env 24,043,458 pytest plugin that allows you to add environment variables.
11 pytest-httpx 22,873,380 Send responses to httpx.
12 pytest-html 21,783,628 pytest plugin for generating HTML reports
Test and Code episode pytest-html - a plugin that generates HTML reports for test results
13 pytest-django 21,555,994 A Django plugin for pytest.
Test and Code episode pytest-django with Adam Johnson
14 pytest-split 20,969,797 pytest plugin which splits the test suite to equally sized sub suites based on test execution time.
15 pytest-repeat 15,509,841 pytest plugin for repeating tests
Test and Code episode pytest-repeat - works fine on Python 3.14
16 pytest-json-report 15,022,199 A pytest plugin to report test results as JSON files
Seems no longer supported, but leaving here to recommend pytest-json-report-wip
17 pytest-benchmark 14,224,897 A pytest fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer.
18 pytest-socket 13,881,633 pytest Plugin to disable socket calls during tests
19 syrupy 13,351,369 pytest Snapshot Test Utility
20 pytest-unordered 10,998,579 Test equality of unordered collections in pytest
21 pytest-base-url 10,189,946 pytest plugin for URL based testing
22 pytest-randomly 10,021,263 pytest plugin to randomly order tests and control random.seed.
23 pytest-icdiff 9,655,067 use icdiff for better error messages in pytest assertions
24 pytest-playwright 9,625,460 A pytest wrapper with fixtures for Playwright to automate web browsers
25 pytest-homeassistant-custom-component 9,409,116 Experimental package to automatically extract test plugins for Home Assistant custom components
26 pytest-dependency 8,908,309 Manage dependencies of tests
27 pytest-sugar 8,196,404 pytest-sugar is a plugin for pytest that changes the default look and feel of pytest (e.g. progressbar, show tests that fail instantly).
28 allure-pytest 8,136,290 Allure pytest integration
29 pytest-custom-exit-code 7,855,803 Exit pytest test session with custom exit code in different scenarios
30 pytest-instafail 7,280,646 pytest plugin to show failures instantly
31 pytest-postgresql 6,639,491 Postgresql fixtures and fixture factories for pytest.
32 pytest-recording 6,134,948 A pytest plugin powered by VCR.py to record and replay HTTP traffic
33 pytest-order 6,082,883 pytest plugin to run tests in a specific order
34 pytest-aiohttp 6,033,878 pytest plugin for aiohttp support
35 pytest-dotenv 5,523,005 A py.test plugin that parses environment files before running tests
36 pytest-subtests 4,875,378 unittest subTest() support and subtests fixture
Test and Code episode Subtests in Python with unittest and pytest
37 pytest-testmon 4,761,816 selects tests affected by changed files and methods
38 pytest-check 4,041,371 A pytest plugin that allows multiple failures per test.
Test and Code episode pytest-check - allow multiple failures per test
39 pytest-httpserver 3,898,973 pytest-httpserver is a httpserver for pytest
40 pytest-timeouts 3,718,049 Linux-only pytest plugin to control durations of various test case execution phases
41 pytest-github-actions-annotate-failures 3,672,515 pytest plugin to annotate failed tests with a workflow command for GitHub Actions
42 pytest-bdd 3,611,297 BDD for pytest
43 pytest-durations 3,493,107 pytest plugin reporting fixtures and test functions execution time.
44 pytest-memray 2,893,206 A simple plugin to use with pytest
45 pytest-codspeed 2,883,538 pytest plugin to create CodSpeed benchmarks
46 pytest-random-order 2,844,743 Randomise the order in which pytest tests are run with some control over the randomness
47 pytest-factoryboy 2,833,269 Factory Boy support for pytest.
48 pytest-ordering 2,754,298 pytest plugin to run your tests in a specific order
49 pytest-snapshot 2,603,450 A plugin for snapshot testing with pytest.
50 pytest-retry 2,588,607 Adds the ability to retry flaky tests in CI environments
51 pytest-docker 2,387,633 Simple pytest fixtures for Docker and Docker Compose based tests
52 pytest-vcr 2,292,932 Plugin for managing VCR.py cassettes
53 pytest-lazy-fixtures 2,186,025 Allows you to use fixtures in @pytest.mark.parametrize.
54 pytest-flakefinder 2,065,167 Runs tests multiple times to expose flakiness.
55 pytest-profiling 1,867,549 Profiling plugin for py.test
56 pytest-celery 1,859,167 pytest plugin for Celery
57 pytest-watcher 1,808,295 Automatically rerun your tests on file modifications
58 pytest-datadir 1,767,458 pytest plugin for test data directories and files
59 pytest-docker-tools 1,737,976 Docker integration tests for pytest
60 pytest-test-groups 1,559,786 A pytest plugin for running a subset of your tests by splitting them in to equally sized groups.
61 pytest-testinfra 1,545,408 Test infrastructures
62 pytest-flask 1,476,016 A set of py.test fixtures to test Flask applications.
63 pytest-freezegun 1,437,061 Wrap tests with fixtures in freeze_time
64 pytest-freezer 1,383,989 pytest plugin providing a fixture interface for spulec/freezegun
65 pytest-alembic 1,284,731 A pytest plugin for verifying alembic migrations.
66 pytest-pretty 1,217,846 pytest plugin for printing summary data as I want it
67 pytest-opentelemetry 1,205,304 A pytest plugin for instrumenting test runs via OpenTelemetry
68 pytest-qt 1,187,026 pytest support for PyQt and PySide applications
69 pytest-describe 1,170,995 Describe-style plugin for pytest
70 pytest-sftpserver 1,067,149 py.test plugin to locally test sftp server connections.
71 pytest-regressions 1,026,806 Easy to use fixtures to write regression tests.
72 pytest-deadfixtures 1,021,674 A simple plugin to list unused fixtures in pytest
73 pytest-cases 1,020,857 Separate test code from test cases in pytest.
74 pytest-reportportal 1,011,026 Agent for Reporting results of tests to the Report Portal
75 pytest-ansible 983,385 Plugin for pytest to simplify calling ansible modules from tests or fixtures
76 pytest-find-dependencies 983,229 A pytest plugin to find dependencies between tests
77 pytest-watch 946,128 Local continuous test runner with pytest and watchdog.
78 pytest-azurepipelines 858,105 Formatting PyTest output for Azure Pipelines UI
79 pytest-picked 818,607 Run the tests related to the changed files
80 pytest-anyio 809,233 The pytest anyio plugin is built into anyio. You don’t need this package.
81 pytest-reportlog 801,875 Replacement for the –resultlog option, focused in simplicity and extensibility
82 pytest-race 792,803 Race conditions tester for pytest
83 pytest-assume 789,545 A pytest plugin that allows multiple failures per test
84 pytest-md 737,238 Plugin for generating Markdown reports for pytest results
Test and Code episode pytest-md and pytest-md-report: Markdown reports for pytest
85 pytest-harvest 730,549 Store data created during your pytest tests execution, and retrieve it at the end of the session, e.g. for applicative benchmarking purposes.
86 pytest-cache 687,699 pytest plugin with mechanisms for caching across test runs
87 pytest-doctestplus 678,215 pytest plugin with advanced doctest features.
88 pytest-mpl 677,495 pytest plugin to help with testing figures output from Matplotlib
89 pytest-variables 660,940 pytest plugin for providing variables to tests/fixtures
90 pytest-clarity 650,999 A plugin providing an alternative, colourful diff output for failing assertions.
91 pytest-nunit 629,105 A pytest plugin for generating NUnit3 test result XML output
92 pytest-pylint 616,413 pytest plugin to check source code with pylint
93 pytest-lazy-fixture 608,183 It helps to use fixtures in pytest.mark.parametrize
94 pylint-pytest 600,624 A Pylint plugin to suppress pytest-related false positives.
95 pytest-examples 594,886 pytest plugin for testing examples in docstrings and markdown files.
96 pytest-pytestrail 565,669 pytest plugin for interaction with TestRail
97 pytest-mypy 557,278 A pytest Plugin for Mypy
98 pytest-csv 551,864 CSV output for pytest.
99 pytest-subprocess 514,874 A plugin to fake subprocess for pytest
100 pytest-flake8 506,312 pytest plugin to check FLAKE8 requirements
101 pytest-selenium 504,519 pytest plugin for Selenium
102 pytest-timestamper 478,332 pytest plugin to add a timestamp prefix to the pytest output
103 pytest-mypy-plugins 459,503 pytest plugin for writing tests for mypy plugins
104 pytest-remotedata 429,009 pytest plugin for controlling remote data access.
105 pytest-pep8 417,618 pytest plugin to check PEP8 requirements
106 pytest-md-report 398,484 A pytest plugin to generate test outcomes reports with markdown table format.
Test and Code episode pytest-md and pytest-md-report: Markdown reports for pytest
107 pytest-localserver 395,896 pytest plugin to test server connections locally.
108 pytest-trio 394,538 pytest plugin for trio
109 pytest-spark 390,724 pytest plugin to run the tests with support of pyspark.
110 pytest-tornado 378,257 A py.test plugin providing fixtures and markers to simplify testing of asynchronous tornado applications.
111 pytest-html-merger 374,401 pytest HTML reports merging utility
112 pytest-fixture-config 351,234 Fixture configuration utils for py.test
113 pytest-arraydiff 344,276 pytest plugin to help with comparing array output from tests
114 pytest-textual-snapshot 343,784 Snapshot testing for Textual apps
115 pytest-tagging 342,890 a pytest plugin to tag tests
116 pytest-filter-subpackage 334,728 pytest plugin for filtering based on sub-packages
117 pytest-json 328,193 Generate JSON test reports
118 pytest-tornasync 324,443 py.test plugin for testing Python 3.5+ Tornado code
119 pytest-loop 321,529 pytest plugin for looping tests
120 pytest-slack 318,232 pytest to Slack reporting plugin
121 pytest-unused-fixtures 317,150 A pytest plugin to list unused fixtures after a test run.
122 pytest-astropy-header 314,167 pytest plugin to add diagnostic information to the header of the test output
123 pytest-mock-resources 312,380 A pytest plugin for easily instantiating reproducible mock resources.
124 pytest-xprocess 307,612 A pytest plugin for managing processes across test runs.
125 pytest-astropy 303,718 Meta-package containing dependencies for testing
126 pytest-loguru 302,970 pytest Loguru
127 pytest-markdown-docs 300,279 Run markdown code fences through pytest
128 pytest-hypothesis 288,845 404
129 pytest-structlog 286,541 Structured logging assertions
130 pytest-twisted 285,869 A twisted plugin for pytest.
131 pytest-cython 281,417 A plugin for testing Cython extension modules.
132 pytest-cpp 277,298 Use pytest’s runner to discover and execute C++ tests
133 pytest-mysql 276,115 MySQL process and client fixtures for pytest
134 pytest-integration 273,440 Organizing pytests by integration or not
135 pytest-cmake 269,703 Provide CMake module for pytest
136 pytest-excel 266,185 pytest plugin for generating excel reports
137 pytest-redis 265,492 Redis fixtures and fixture factories for pytest.
138 pytest-logger 257,462 Plugin configuring handlers for loggers from Python logging module.
139 pytest-insta 252,375 A practical snapshot testing plugin for pytest
140 pytest-emoji 247,486 A pytest plugin that adds emojis to your test result report
141 pytest-skip-slow 244,208 A pytest plugin to skip @pytest.mark.slow tests by default.
142 pytest-console-scripts 241,463 pytest plugin for testing console scripts
143 pytest-threadleak 240,664 Detects thread leaks
144 pytest-antilru 239,801 Bust functools.lru_cache when running pytest to avoid test pollution
145 pytest-helpers-namespace 230,571 pytest Helpers Namespace Plugin
146 pytest-run-parallel 230,523 A simple pytest plugin to run tests concurrently
147 pytest-xvfb 229,227 A pytest plugin to run Xvfb (or Xephyr/Xvnc) for tests.
148 pytest-shutil 220,856 A goodie-bag of unix shell and environment tools for py.test
149 pytestarch 219,634 Test framework for software architecture based on imports between modules
150 allure-pytest-bdd 217,635 Allure pytest-bdd integration
151 pytest-spec 212,637 Library pytest-spec is a pytest plugin to display test execution output like a SPECIFICATION.
152 pytest-responses 203,099 py.test integration for responses
153 flake8-pytest-style 201,433 A flake8 plugin checking common style issues or inconsistencies with pytest-based tests.
154 pytest-incremental 196,626 an incremental test runner (pytest plugin)
155 pytest-print 196,546 pytest-print adds the printer fixture you can use to print messages to the user (directly to the pytest runner, not stdout)
156 pytest-tap 196,276 Test Anything Protocol (TAP) reporting plugin for pytest
157 pytest-reporter 194,218 Generate pytest reports with templates
Error: project pytest-hot-reloading, Summary is None
158 pytest-hot-reloading 189,025
159 pytest-ruff 188,749 pytest plugin to check ruff requirements.
160 pytest-custom-report 188,480 Configure the symbols displayed for test outcomes
161 pytest-codeblocks 186,361 Test code blocks in your READMEs
162 pytest-playwright-asyncio 185,646 A pytest wrapper with async fixtures for Playwright to automate web browsers
163 pytest-logging 181,547 Configures logging and allows tweaking the log level with a py.test flag
164 pytest-reraise 180,427 Make multi-threaded pytest test cases fail when they should
165 pytest-reporter-html1 180,195 A basic HTML report template for pytest
166 pytest-grpc 179,974 pytest plugin for grpc
167 pytest-runtime-xfail 179,931 Call runtime_xfail() to mark running test as xfail.
168 pytest-item-dict 177,248 Get a hierarchical dict of session.items
169 pytest-xml 176,582 Create simple XML results for parsing
170 pytest-fail-slow 176,356 Fail tests that take too long to run
171 pytest-ignore-test-results 175,948 A pytest plugin to ignore test results.
172 pytest-embedded-jtag 172,555 Make pytest-embedded plugin work with JTAG.
173 tdd-guard-pytest 168,873 pytest plugin for TDD Guard - enforces Test-Driven Development principles
174 pytest-container 167,086 pytest fixtures for writing container based tests
175 pytest-jira-xray 164,470 pytest plugin to integrate tests with JIRA XRAY
176 pytest-circleci-parallelized 161,073 Parallelize pytest across CircleCI workers.
177 pytest-raises 159,704 An implementation of pytest.raises as a pytest.mark fixture
178 pytest-embedded-serial 157,907 Make pytest-embedded plugin work with Serial.
179 pytest-httpbin 157,747 Easily test your HTTP library against a local copy of httpbin
180 pytest-black 157,185 A pytest plugin to enable format checking with black
181 pytest-rng 156,336 Fixtures for seeding tests and making randomness reproducible
182 pytest-depends 155,474 Tests that depend on other tests
183 pytest-operator 152,528 Fixtures for Charmed Operators
184 pytest-rich 143,551 Leverage rich for richer test session output
185 pytest-embedded-qemu 143,293 Make pytest-embedded plugin work with QEMU.
186 allure-pytest-default-results 143,058 Generate default “unknown” results to show in Allure Report if test case does not run
187 pytest-httpx2 140,866 A pytest plugin for mocking out httpx2 using respx.
188 pytest-beartype-tests 139,866 pytest plugin that applies @beartype to every collected test function.
189 qase-pytest 135,186 Qase pytest Plugin for Qase TestOps and Qase Report
190 pytest-deepassert 133,296 A pytest plugin for enhanced assertion reporting with detailed diffs
191 pytest-jira 127,630 py.test JIRA integration plugin, using markers
192 pytest-embedded-serial-esp 127,201 Make pytest-embedded plugin work with Espressif target boards.
193 pytest-cagoule 127,047 pytest plugin to only run tests affected by changes
194 pytest-progress 124,223 pytest plugin for instant test progress status
195 pytest-datafiles 123,874 py.test plugin to create a ’tmp_path’ containing predefined files/directories.
196 pytest-testrail 123,329 A pytest plugin for creating TestRail runs and adding results
197 pytest-embedded-idf 121,054 Make pytest-embedded plugin work with ESP-IDF.
198 pytest-parametrization 114,571 Simpler PyTest parametrization
199 pytest-monitor 113,711 pytest plugin for analyzing resource usage.
200 pytest-schema 113,396 👍 Validate return values against a schema-like object in testing

Current process is based on hugovk’s Top PyPI Packages. Package data is filtered for “pytest”.
There’s also a filter for deprecated and unmaintained plugins.
See source code.