QA Automation Starter for Python
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:
-
Install Python 3.13 on your system
-
Install PDM:
pipx install pdm[all]
-
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
-
Run all tests from the root:
pdm run pytest
-
Generate Allure reports
pdm run allure-generate
-
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
-
branch
-
commit changes
-
pull request -- will trigger a build
-
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 tag4.3. create new tag, e.g.
v0.0.8git tag v0.0.8
4.4. push it
git push origin v0.0.8
-
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)
| File | Size | Uploaded | |
|---|---|---|---|
| qa_automation_python-0.0.0.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|