{"id":19083905,"url":"https://github.com/zhikhareval/db_web_test_automation","last_synced_at":"2026-04-30T11:35:36.372Z","repository":{"id":205140658,"uuid":"713497463","full_name":"ZhikharevAl/db_web_test_automation","owner":"ZhikharevAl","description":"This repository contains a test automation project using PyTest and Playwright. We use the ‘test cases as code’ approach and store test reports in a database. We also generate reports in Allure.","archived":false,"fork":false,"pushed_at":"2024-08-14T15:49:50.000Z","size":6733,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-12T11:37:37.877Z","etag":null,"topics":["allure","allure-report","database","github-actions","mit-license","playwright","playwright-python","playwright-tests","pytest","python","test-automation","test-case","web-testing"],"latest_commit_sha":null,"homepage":"https://zhikhareval.github.io/db_web_test_automation/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZhikharevAl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-02T16:31:30.000Z","updated_at":"2024-08-14T15:46:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"269dbab2-2b36-4130-b65f-fb4eb240a26d","html_url":"https://github.com/ZhikharevAl/db_web_test_automation","commit_stats":null,"previous_names":["zhikhareval/db_web_test_automation"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ZhikharevAl/db_web_test_automation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhikharevAl%2Fdb_web_test_automation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhikharevAl%2Fdb_web_test_automation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhikharevAl%2Fdb_web_test_automation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhikharevAl%2Fdb_web_test_automation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZhikharevAl","download_url":"https://codeload.github.com/ZhikharevAl/db_web_test_automation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhikharevAl%2Fdb_web_test_automation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32463892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["allure","allure-report","database","github-actions","mit-license","playwright","playwright-python","playwright-tests","pytest","python","test-automation","test-case","web-testing"],"created_at":"2024-11-09T02:49:27.063Z","updated_at":"2026-04-30T11:35:31.363Z","avatar_url":"https://github.com/ZhikharevAl.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎭UI Automation with Python and Playwright\n\n[![CI/CD](https://github.com/ZhikharevAl/db_web_test_automation/actions/workflows/run_tests.yml/badge.svg)](https://github.com/ZhikharevAl/db_web_test_automation/actions/workflows/run_tests.yml)\n\n[View Russian version of this file here](README.ru.md)\n\n## Contents\n\n1. [Description](#description)\n2. [Installation](#installation)\n3. [Running Tests](#running-tests)\n4. [Project Structure](#project-structure)\n5. [Documentation](#documentation)\n   - [Pairwise Testing](#pairwise-testing)\n   - [State Transition Diagram](#state-transition-diagram)\n6. [Coverage](#coverage)\n7. [Allure Report](#allure-report)\n8. [Telegram Notification](#telegram-notification)\n9. [License](#license)\n\n## Description\n\nThis project is a set of automated UI tests written in Python using Playwright, Allure, and PyTest.\n\n## Installation\n\n1. Install Python: [https://www.python.org/downloads/](https://www.python.org/downloads/)\n2. Clone the repository: `git clone https://github.com/ZhikharevAl/db_web_test_automation.git`\n3. Activate the virtual environment: `/.venv/Scripts/activate`\n4. Install dependencies: `pip install -r requirements.txt`\n\n## Running Tests\n\n1. Run tests:\n   - `pytest`\n   - `pytest --numprocesses auto`\n\n\u003e The `pytest --numprocesses auto` command is used to run tests in parallel using the pytest-xdist plugin. To install the pytest-xdist plugin, execute the following command:\n\u003e\n\u003e ```sh\n\u003e pip install -U pytest-xdist\n\u003e ```\n\u003e\n\u003e Or:\n\u003e\n\u003e ```sh\n\u003e pip install pytest-xdist\n\u003e ```\n\u003e\n\u003e If you want to use psutil to determine the number of available processors, install the additional psutil package:\n\u003e\n\u003e ```sh\n\u003e pip install pytest-xdist[psutil]\n\u003e ```\n\u003e\n\u003e Example:\n\u003e\n\u003e ```sh\n\u003e pytest --numprocesses auto --count=100 .\\tests\\name_test.py\n\u003e ```\n\u003e\n\u003e The `--numprocesses auto` option automatically determines the number of processes equal to the number of available processors and randomly distributes tests among them. The `--count=100` option specifies that each test should be run 100 times. The path `.\\tests\\name_test.py` points to the test file to be run.\n\n\u003chttps://github.com/ZhikharevAl/db_web_test_automation/assets/81284552/a16482bf-ff1d-49ae-9837-335163a4fb1d\u003e\n\n2. Run with a specified base URL:\n   - `pytest --base-url https://demoblaze.com/`\n\n\u003e The `pytest-base-url` plugin is a simple plugin for pytest that provides an optional base URL via the command line or configuration file. You can install pytest-base-url with pip:\n\u003e\n\u003e ```sh\n\u003e pip install pytest-base-url\n\u003e ```\n\u003e\n\u003e After installation, you can specify the base URL on the command line:\n\u003e\n\u003e ```sh\n\u003e pytest --base-url https://demoblaze.com/\n\u003e ```\n\u003e\n\u003e Or you can specify the base URL in the configuration file:\n\u003e\n\u003e ```ini\n\u003e [pytest]\n\u003e base_url = https://demoblaze.com/\n\u003e ```\n\n3. Automatic test restart on failure:\n\n\u003e If you want the test to automatically restart on failure, you can use the `pytest-rerunfailures` plugin. This plugin allows you to automatically rerun failed tests. To install the plugin, execute the following command:\n\u003e\n\u003e ```sh\n\u003e pip install pytest-rerunfailures\n\u003e ```\n\u003e\n\u003e Then, in the `pytest.ini` file, specify the following:\n\u003e\n\u003e ```ini\n\u003e [pytest]\n\u003e addopts = --reruns=5\n\u003e ```\n\u003e\n![286441348-049dfb7e-668a-4c6b-ba03-6794fddc7c82](https://github.com/ZhikharevAl/db_web_test_automation/assets/81284552/5fdb13f9-c727-400e-870b-3a62a5a15bba)\n\n4. Generate Allure report: `allure serve allure-results`\n\n## Project Structure\n\n- `.github/workflows/` - directory with workflow files\n- `data/` - directory with data\n- `docs/` - directory with documentation\n- `tests/` - directory with tests\n- `pages/` - directory with page descriptions\n- `.gitignore` - file with ignored files\n- `.dockerignore` - file with ignored files\n- `conftest.py` - configuration file\n- `docker-compose.yml` - docker-compose configuration file\n- `Dockerfile` - Dockerfile\n- `pytest.ini` - Pytest configuration file\n- `requirements.txt` - project dependencies file\n\n## Documentation\n\nDescriptions of tests and documentation can be found [here](https://zhikhareval.github.io/db_web_test_automation/).\n\n### Pairwise Testing\n\n![293063023-eef58ea5-62fb-47e5-8222-93c750683260](https://github.com/ZhikharevAl/db_web_test_automation/assets/81284552/611cf28a-af6a-4b65-8f58-fde14cfededa)\n\n### State Transition Diagram\n\n![293064089-015b7990-d614-4986-8e5c-062fc6b6c47d](https://github.com/ZhikharevAl/db_web_test_automation/assets/81284552/48a8297f-27f2-4ca5-a2c1-62115a4b99ec)\n\n## Coverage\n\n![Screenshot 2024-05-09 193751](https://github.com/ZhikharevAl/db_web_test_automation/assets/81284552/a527289e-4150-4be6-bf66-8b2d43f810f5)\n\n## Allure Report\n\n![Screenshot 2024-06-17 195516](https://github.com/ZhikharevAl/db_web_test_automation/assets/81284552/9784c787-aadf-45e6-b525-7fd10dcaf861)\n![Screenshot 2024-05-15 203604](https://github.com/ZhikharevAl/db_web_test_automation/assets/81284552/56e7e260-06d2-492d-9469-5eb16a0076f9)\n![Screenshot 2024-05-15 203957](https://github.com/ZhikharevAl/db_web_test_automation/assets/81284552/e98d5d07-091c-43c8-b7df-21354be67b55)\n\n## Telegram Notification\n\nFor Telegram notifications, you can use a [Telegram bot](https://t.me/information_message_bot).\n![302050143-f9c81f88-df69-4824-b9f6-9ff7e5c63b66](https://github.com/ZhikharevAl/db_web_test_automation/assets/81284552/53f22342-e7e4-4ec8-9cac-b901c09c383a)\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE.md file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhikhareval%2Fdb_web_test_automation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhikhareval%2Fdb_web_test_automation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhikhareval%2Fdb_web_test_automation/lists"}