Skip to main content

QA Automation Starter for Python

Build Release
utils commons rest webdriver playwright
License: Apache 2.0
Open in GitHub Codespaces Open in Dev Container Allure Report

User documentation http://python.qa-automation-starter.aherscu.dev/

Getting Started

Open in Codespace or Dev Container and everything will get installed and configured, otherwise:

  1. Install Python 3.13 on your system

  2. Install PDM:

    pipx install pdm[all]
    
  3. Install dependencies:

    pdm run install-all
    

    NOTE: This must be run whenever new dependencies, or versions are changed. NOTE: in VSCode, you need to ensure that selected interpreter is from root's venv directory

    For Playwright tests, also install browsers:

    pdm run playwright-install
    
  4. Run all tests from the root:

    pdm run pytest
    
  5. Generate Allure reports

    pdm run allure-generate
    
  6. Serve MkDocs site

    pdm run mkdocs-serve
    

    then open http://127.0.0.1:8000/qa-automation-python in a browser


Project Structure

qa-automation-python/
├── qa-testing-utils/               # Shared low-level utility functions
├── qa-pytest-commons/              # Technology-agnostic test infrastructure
├── qa-pytest-rest/                 # REST-specific steps and config
├── qa-pytest-webdriver/            # Selenium-specific implementation
├── qa-pytest-playwright/           # Playwright-specific implementation
├── qa-pytest-rabbitmq/             # RabbitMQ-specific implementation
├── qa-pytest-kafka/                # Kafka-specific implementation
├── {{cookiecutter.project_slug}}/  # Cookiecutter project template
├── qa-pytest-examples/             # Usage examples for application test projects
├── pyproject.toml                  # Root environment definition for PDM
└── .vscode/                        # Recommended settings for VSCode integration

Releasing

  1. branch

  2. commit changes

  3. pull request -- will trigger a build

  4. build succeeds --> tag with vX.X.X, e.g. v1.2.3 -- will trigger a release:

    4.1. ensure you are on main and up-to-date

    4.2. verify which tags exists in local repo

    git tag
    

    4.3. create new tag, e.g. v0.0.8

    git tag v0.0.8
    

    4.4. push it

    git push origin v0.0.8
    
  5. verify new versions appeared on https://pypi.org/


Adding Exportable Symbols

Whenever adding a new global symbol (class/method/constant), these might need to be exported, thus listed in the __init__.py of the respective module.

Can be done automatically with mkinit:

pdm run regenerate-init

Formatting and Sorting Imports

Before committing:

pdm run format-all

Adding a New Package

cd qa-automation-python
pdm plugin add pdm-init  # if not already available
pdm init  # or copy an existing module like qa-testing-utils

Then edit pyproject.toml accordingly.


License

This project is licensed under the Apache 2.0 License.

Metadata

Release files for qa-automation-python 0.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qa-automation-python 0.0.0
File Size Uploaded
qa_automation_python-0.0.0.tar.gz 7.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qa-automation-python 0.0.0
File Interpreter ABI Platform
qa_automation_python-0.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.6 kB

Release files / qa_automation_python-0.0.0.tar.gz

Download URL qa_automation_python-0.0.0.tar.gz
Size 7.5 kB
Tags Source
SHA-256 checksum
How to use checksums
6c9a11047dfbd0f63add7fa721a53678305fbce4260350bf6e3b9c007f19fa04
BLAKE2b-256 checksum
How to use checksums
d2dd6f92da8de230cfe7dd5084cbd0f78ca3676e872244b20c1af0b1f9bcc3cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via pdm/2.26.6 CPython/3.13.9 Linux/6.17.11-200.fc42.x86_64

Release files / qa_automation_python-0.0.0-py3-none-any.whl

Download URL qa_automation_python-0.0.0-py3-none-any.whl
Size 7.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
68f01065a50e9df5974ff7744286687b71ab04e546935ab587b646324d11b75c
BLAKE2b-256 checksum
How to use checksums
d1c41779d150f19159c5e28ab4640c8e00114c3cd09c36bb28175ef10cf21ee8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via pdm/2.26.6 CPython/3.13.9 Linux/6.17.11-200.fc42.x86_64

Release history Release notifications | RSS feed

This release

0.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page