End-to-end and performance test automation for the deciBel platform.
web-e2e/— Web E2E tests using pytest + Playwrightmobile-e2e/— Mobile E2E tests using pytest + Appiumstress-testing/— API load/stress tests using Locustshared/— Shared test data, media assets, and utilitiesdocs/— Project documentation (including coding style guidance)
- Page Object Model (POM): Web tests are organized around page classes in
web-e2e/pages/, and mobile tests use screen classes inmobile-e2e/screens/. This keeps UI interaction logic reusable and separate from test assertions. - Fixture-driven setup: Shared setup and lifecycle flows are centralized in
web-e2e/conftest.pyandmobile-e2e/conftest.pyusing pytest fixtures. This reduces duplication and keeps tests focused on behavior. - Modular suite boundaries: The repo is split by testing purpose (
web-e2e,mobile-e2e,stress-testing) with each suite owning its own dependencies and config, whileshared/holds reusable data/assets used across suites.
- Python 3.10+
- pip
- Access to deciBel test environments and test accounts
Additional tooling by suite:
- Web E2E: Playwright browser dependencies
- Mobile E2E: Running Appium server + Android emulator/device
- Stress testing: Locust-compatible API target
Create local .env files from examples:
web-e2e/.env.examplemobile-e2e/.env.exampleshared/.env.example
Populate credentials and environment-specific values before running tests.
Install suite-specific dependencies from each folder:
cd web-e2e
python -m pip install -r requirements.txt
python -m playwright install
cd ../mobile-e2e
python -m pip install -r requirements.txt
cd ../stress-testing
python -m pip install -r requirements.txtcd web-e2e
python -m pytest testscd mobile-e2e
python -m pytest testscd stress-testing
locust --config locust.conf- Default stress target host is configured in
stress-testing/locust.conf. - This repo follows conventions documented in
docs/CODE_STYLE_GUIDE.md.