A performance plugin for pytest
Project description
pytest-performancetotal
With this plugin for pytest, which complements the playwright-pytest integration, you can seamlessly incorporate performance analysis into your test flows. It’s designed to work with UI interactions, API calls, or a combination of both, providing a straightforward method for measuring response times and pinpointing potential performance issues within your application. By leveraging this data, you can make strategic decisions to optimize and enhance your application’s performance. For insights into the original concept and additional details, refer to the article on the Node.js version of this plugin.
Installation
$ pip install pytest-performancetotal
Usage
To use pytest-performancetotal, simply add the performancetotal fixture to the test method. This will include the performance functionality in your test. No further setup is required. Here's an example:
import pytest
@pytest.mark.parametrize("iteration", [1, 2, 3])
def test_features(performancetotal, iteration):
performancetotal.sample_start("feature1")
time.sleep(1)
performancetotal.sample_end("feature1")
performancetotal.sample_start("feature2")
time.sleep(0.5)
performancetotal.sample_end("feature2")
You can also get immediate time span for a single sample inside a test:
feature1_timespan = performancetotal.get_sample_time("feature1")
be aware that get_sample_time returns a single measurement with no statistical analysis.
To use type hints follow this example:
from pytest_performancetotal.performance import Performance
def test_features(performancetotal: Performance, iteration):
# ... your test code here
Options
To disable appending new results into existing file and start fresh every run use:
pytest --performance-noappend
Getting the results
A new directory named performance_results
is created inside your project's root folder. Once all the tests are completed, two files are created inside the performance-results directory: results.json
and results.csv
. The analyzed data includes average time, standard error of mean (SEM), number of samples, minimum value, maximum value, earliest time, and latest time. The results table is also printed to the terminal log.
Support
For any questions or suggestions contact me at: tzur.paldi@outlook.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pytest-performancetotal-0.2.2.tar.gz
.
File metadata
- Download URL: pytest-performancetotal-0.2.2.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ab6885b8b1711df32bc8d5675f980dbf39efc1edfaeef23626440c190a6e837 |
|
MD5 | e0d345e3891d2cd8a608e93254d2ffb7 |
|
BLAKE2b-256 | 4dc1d4c798481f5fb052e9a97a08001aeb003bbf1cbd36742b172a04d2db251d |
File details
Details for the file pytest_performancetotal-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: pytest_performancetotal-0.2.2-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50677263d64fe0078480d37d3410f01e289202b348c7a4af46dc291b5fb96207 |
|
MD5 | b772fdd3193f4224162beb68a4577f0f |
|
BLAKE2b-256 | 083aa8c5775491a7eac45c9d2dd7f22b62c5712a79ac723264812814a97539d9 |