Skip to main content

Simplify parameterized testing with matrix combinations of diverse test parameters

Project description

vedro-matrix

PyPI Version License

vedro-matrix is a Python package that extends the Vedro framework, enabling parameterized testing with matrix combinations. It simplifies the process of creating and managing multiple test scenarios, especially when dealing with combinations of different test parameters like browsers, screen resolutions, user types, etc.

Installation

Install vedro-matrix using pip:

$ pip install vedro-matrix

Usage

To use vedro-matrix, import the params_matrix decorator from the package and apply it to your test scenarios in a vedro test suite.

Example

Here is an example of how to use vedro-matrix to test a web page's rendering on different browsers and resolutions:

import vedro
from vedro_matrix import params_matrix

class Scenario(vedro.Scenario):
    subject = "Open /about page ({browser}, {resolution})"

    @params_matrix(
        ["chrome", "firefox"],
        ["1024x720", "1920x1080"],
    )
    def __init__(self, browser, resolution):
        self.browser = browser
        self.resolution = resolution

    def when_user_opens_page(self):
        self.page = open_about_page(self.browser, self.resolution)

    def then_it_should_show_main_content(self):
        assert self.page.main_content.is_visible()

This script will generate and run 4 separate test scenarios:

  1. Open /about page (chrome, 1024x720)
  2. Open /about page (chrome, 1920x1080)
  3. Open /about page (firefox, 1024x720)
  4. Open /about page (firefox, 1920x1080)

Running Tests

Run the scenarios using the vedro command:

$ vedro run

You should see an output similar to the following, indicating that all scenarios have passed:

Scenarios
*
  Open /about page (chrome, 1024x720)
  Open /about page (chrome, 1920x1080)
  Open /about page (firefox, 1024x720)
  Open /about page (firefox, 1920x1080)

# --seed 79b84f2d-e98c-47bf-b057-acdf597c4143
# 4 scenarios, 4 passed, 0 failed, 0 skipped (1.51s)

Additional Usage Examples

In addition to the standard matrix setup with fixed parameters, vedro-matrix offers flexible options to generate test cases using various types of iterables, like lists or enums, which simplifies the process of defining complex combinations of test inputs.

1. Simple Numeric Parameters

You can use vedro-matrix to test different inputs, such as numeric IDs or other sequences. Here's an example where post_id varies:

import vedro
from vedro_matrix import params_matrix

class Scenario(vedro.Scenario):
    @params_matrix([1, 2, 3])
    def __init__(self, post_id):
        self.post_id = post_id

This will generate and run 3 test cases with the following values for post_id:

  1. Scenario with post_id = 1
  2. Scenario with post_id = 2
  3. Scenario with post_id = 3

2. Using Enums for Parameters

In more structured setups, you can use enums to pass values to your test scenarios. This is particularly useful when the test parameters represent distinct options, such as browser types or user roles. Here's how to achieve that:

import vedro
from vedro_matrix import params_matrix
from enum import StrEnum

class Browser(StrEnum):
    CHROME = "chrome"
    FIREFOX = "firefox"


class Scenario(vedro.Scenario):
    @params_matrix(Browser)
    def __init__(self, browser):
        self.browser = browser

In this case, vedro-matrix will generate two scenarios:

  1. Scenario with browser = "chrome"
  2. Scenario with browser = "firefox"

This approach improves code readability and maintainability, especially when managing larger test matrices with more complex inputs.

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

vedro_matrix-1.0.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

vedro_matrix-1.0.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file vedro_matrix-1.0.0.tar.gz.

File metadata

  • Download URL: vedro_matrix-1.0.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for vedro_matrix-1.0.0.tar.gz
Algorithm Hash digest
SHA256 893db764a691729a02d32cfdf095c41c671a48deaa493496fd822c2f37bb3a35
MD5 f621ca77fcc4530bda124b156a9dc096
BLAKE2b-256 f161611e727ec820728e64f28bd191057da62eeb822d1a59104dcfcbbc642ca1

See more details on using hashes here.

File details

Details for the file vedro_matrix-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: vedro_matrix-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for vedro_matrix-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d4d695cd597453e5fa45328c24f59f96174462abe1b4a5be35a536c960cf8edb
MD5 6fc9c22d9edb3f4db44b66e78dce4a1e
BLAKE2b-256 74c7695e38180b685ae5823a4a8eb4c5d815fb4480683326e56b87c2ef81bdda

See more details on using hashes here.

Supported by

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