Typhoon HIL plugin for pytest
Features
specify test parameters in a python module
reference them in pytest.mark.parametrize decorators
mark tests as Jira+Xray issues
send test reports directly to Xray using Xray’s REST API
Requirements
pytest 5+
pytz, tzlocal
requests 2.23+
Installation
You can install “pytest-tytest” via pip from PyPI:
$ pip install pytest-tytest
Usage
Credentials for Jira and Xray
Put credentials needed to access Jira and Xray in environment variables or a file.
XRAY_HOST: Xray URL, defaults to https://xray.cloud.xpand-it.com
XRAY_CLIENT_ID: Client ID of your Xray API key
XRAY_CLIENT_SECRET: Client secret of your Xray API key
JIRA_HOST: Your Jira host, probably https://mycompany.atlassian.net
JIRA_USER: Your Jira account username, probably your email address
JIRA_PASSWORD: Your Jira API token, not your password
You can define credentials as environment variables:
export XRAY_CLIENT_ID=... export XRAY_CLIENT_SECRET=...
Or you can store credentials in a file, for example, /private/secrets:
XRAY_CLIENT_ID=... XRAY_CLIENT_SECRET=... ...
Don’t put the variable values in quotes.
If you use a file to store credentials, you should use the secrets command line parameter:
pytest –secrets=/private/secrets
Test parameters defined in Python modules
Create a test parameter definition file as a Python module, such as this:
# myparams.py
import numpy as np
v_range = [277.0, 278.0]
f_range = np.arange(58, 63, 0.2)
vdc_range = [820.0]
class StayConnected:
voltage_dip_perc = [22, 45, 85, 95]
dip_total_time_pu = 0.95
All module attributes will be available at runtime as tytest.runtime_settings.Config.attr_name, for example:
from tytest.runtime_settings import Config as C
@python.mark.parametrize('v_range', C.v_range)
def test_something(v_range):
pass
Specify which parameter definition file you are using in command line:
pytest --runconfig=myparams.py
Marking tests for Xray reporting
Mark your tests with Jira issue keys, such as this:
@pytest.mark.xray(test_key='PRJ-123')
def test_something():
pass
Associate your test run with a test plan in Xray using the test plan key:
pytest --xray-plan-key=DEMO-1234
If you want to ignore potential networking errors while submitting test reports to Xray, turn this flag on:
pytest --xray-plan-key=DEMO-1234 --xray-fail-silently=True
Embedding the Allure report link
If you generate an Allure report during a test run, you can embed the link to the report in Xray’s test execution issue by using this command line parameter:
pytest allure-url=https://jenkins.mycompany.com/jobs/my_job/123/allure
Command-line parameter summary
pytest invocation now has some additional command line parameters:
--runconfig=RUNCONFIG
Specify test config script
--secrets=SECRETS Full path to secrets file
--xray-plan-key=XRAY_PLAN_KEY
Key of the Xray issue that represents the test plan that is being run
--xray-fail-silently=XRAY_FAIL_SILENTLY
Ignore Xray communication errors
--allure-url=ALLURE_URL
URL pointing to the Allure report
An example of invoking pytest:
pytest --runconfig=myparams.py --secrets=/private/secrets --xray-plan-key=PRJ-321 --xray-fail-silently=True --allure-url=https://jenkins.mycompany.com/jobs/my_job/123/allure
Contributing
Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.
License
Distributed under the terms of the MIT license, “pytest-tytest” is free and open source software
Issues
If you encounter any problems, please file an issue along with a detailed description.
Release files for pytest-tytest 0.1.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pytest-tytest-0.1.13.tar.gz | 7.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_tytest-0.1.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.3 kB
Release files / pytest-tytest-0.1.13.tar.gz
| Download URL | pytest-tytest-0.1.13.tar.gz |
|---|---|
| Size | 7.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bde28e093208f919b3c7324482fb6fb6abf571d1a2e8fb12f02a6496aee2e6c9
|
|
BLAKE2b-256 checksum How to use checksums |
c298ee143df30a48aa9f538b7d07c82b4fb94ba00163c1f14565942c9be016e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7
|
Release files / pytest_tytest-0.1.13-py3-none-any.whl
| Download URL | pytest_tytest-0.1.13-py3-none-any.whl |
|---|---|
| Size | 10.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8c84cf2eed46b616b1e0cb64aae5dd3680b170bd3f77e5739d663a64d6bf5149
|
|
BLAKE2b-256 checksum How to use checksums |
d7bf4ed8649f30784557ab736b07cb2fafedd40e5c1900a886ab0393d76128f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7
|