Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-performancetotal-0.2.1.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytest_performancetotal-0.2.1-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file pytest-performancetotal-0.2.1.tar.gz.

File metadata

  • Download URL: pytest-performancetotal-0.2.1.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

Hashes for pytest-performancetotal-0.2.1.tar.gz
Algorithm Hash digest
SHA256 18405dac1d04a2c1a53aea2db5b339ebbfcbba08242eb9bf4f497e867c583d3d
MD5 654b3324ee11a622e7c84aa13d707425
BLAKE2b-256 acc9628da0d6af560d03bd39052e9bae5f41769134021d76c258325942ee1982

See more details on using hashes here.

File details

Details for the file pytest_performancetotal-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_performancetotal-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a6460db0855b34b4d9e9edc425d16ff65f88bc534bd01c0bbd9d9897412b0b22
MD5 58db088a537313a199b5372bfbedf114
BLAKE2b-256 356f99bc2f8e27e41c0cb50bd22aa3cf191d67c3bf30f636fdd44a6122480341

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page