QA Automation framework for Python
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c9a11047dfbd0f63add7fa721a53678305fbce4260350bf6e3b9c007f19fa04
|
|
| MD5 |
83ab5dd02218a93a1aced5ba2a39daef
|
|
| BLAKE2b-256 |
d2dd6f92da8de230cfe7dd5084cbd0f78ca3676e872244b20c1af0b1f9bcc3cb
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68f01065a50e9df5974ff7744286687b71ab04e546935ab587b646324d11b75c
|
|
| MD5 |
70f5fe593d89706267ab0fc8ad9e2850
|
|
| BLAKE2b-256 |
d1c41779d150f19159c5e28ab4640c8e00114c3cd09c36bb28175ef10cf21ee8
|