Skip to main content

QA Automation framework for Python

Project description

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.

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

qa_automation_python-0.0.0.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

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

qa_automation_python-0.0.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file qa_automation_python-0.0.0.tar.gz.

File metadata

  • Download URL: qa_automation_python-0.0.0.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.26.6 CPython/3.13.9 Linux/6.17.11-200.fc42.x86_64

File hashes

Hashes for qa_automation_python-0.0.0.tar.gz
Algorithm Hash digest
SHA256 6c9a11047dfbd0f63add7fa721a53678305fbce4260350bf6e3b9c007f19fa04
MD5 83ab5dd02218a93a1aced5ba2a39daef
BLAKE2b-256 d2dd6f92da8de230cfe7dd5084cbd0f78ca3676e872244b20c1af0b1f9bcc3cb

See more details on using hashes here.

File details

Details for the file qa_automation_python-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: qa_automation_python-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.26.6 CPython/3.13.9 Linux/6.17.11-200.fc42.x86_64

File hashes

Hashes for qa_automation_python-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68f01065a50e9df5974ff7744286687b71ab04e546935ab587b646324d11b75c
MD5 70f5fe593d89706267ab0fc8ad9e2850
BLAKE2b-256 d1c41779d150f19159c5e28ab4640c8e00114c3cd09c36bb28175ef10cf21ee8

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