# CloudBeat Python Integrations
[<img src="https://cdn.prod.website-files.com/5e5fd6a35f35b720bfd3198a/5e9c149f9ba5991a3901422b_cloudbeat_logo_png.webp" height="85px" alt="CloudBeat logo"/>](https://cloudbeat.io/ "CloudBeat")
[](https://pypi.python.org/pypi/cloudbeat-pytest)
[](https://pypi.python.org/pypi/cloudbeat-pytest)
Learn more about CloudBeat at [https://cloudbeat.io/](https://cloudbeat.io/)
~ ๐งพ [Documentation](https://docs.cloudbeat.io/python-pytest) โ official documentation for CloudBeat <br>
~ ๐๐ป [Contact and Support](https://www.cloudbeat.io/contact) โ contact us and we'd love to help <br>
~ ๐ฃ [Blog](https://www.cloudbeat.io/blog) โ stay updated with our latest news <br>
~ ๐ป [Demo](https://calendly.com/ndimer/cloudbeat-demo) โ request a demo <br>
---------
# Quick start
### Make sure your requirements.txt includes:
```sh
cloudbeat-pytest
cloudbeat-selenium
```
## Standard Installation
```sh
cd pytest-selenium
python -m venv env
env\Scripts\activate
pip install -r requirements.txt
```
## Installation using UV
```sh
uv venv
uv pip install -r requirements.txt
```
## Set up CloudBeat reporter in confitest.py
```python
import uuid
import pytest
from selenium import webdriver
from cloudbeat_common.models import CbConfig
from cloudbeat_common.reporter import CbTestReporter
from cloudbeat_selenium.wrapper import CbSeleniumWrapper
@pytest.fixture(scope="module")
def cb_config():
"""Prepare configuration class for further CB reporter initialization."""
config = CbConfig()
config.run_id = str(uuid.uuid4())
config.instance_id = str(uuid.uuid4())
config.project_id = str(uuid.uuid4())
config.capabilities = {"browserName": "chrome"}
return config
@pytest.fixture(scope="module")
def cb_reporter(cb_config):
reporter = CbTestReporter(cb_config)
return reporter
@pytest.fixture()
def setup(cb_reporter):
driver = webdriver.Chrome()
wrapper = CbSeleniumWrapper(cb_reporter)
wrapped_driver = wrapper.wrap(driver)
yield wrapped_driver
driver.quit()
```
### Set python src path if necessary
```sh
set PYTHONPATH=src
```
## Run your tests
### Standard
```sh
cd pytest-selenium
env\Scripts\activate
```
### All tests
```sh
pytest
```
### Parallel tests
```sh
pytest -n 4
```
### Single test
```sh
pytest -v -s Tests/test_login.py
```
### Using UV
```sh
uv run pytest # run all tests
uv run pytest -n 4 # run parallel tests
uv run pytest -v -s Tests/test_login.py # run a single test
```
Raw data
{
"_id": null,
"home_page": "https://cloudbeat.io/",
"name": "cloudbeat-pytest",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "cloudbeat testing reporting python pytest",
"author": "CBNR Cloud Solutions LTD",
"author_email": "info@cloudbeat.io",
"download_url": "https://files.pythonhosted.org/packages/b0/ca/6d4f840b9c542393512424fc5bd907249b7bdb3b2c2c8baf07ad5a1f8303/cloudbeat_pytest-1.0.2.tar.gz",
"platform": null,
"description": "# CloudBeat Python Integrations\r\n\r\n[<img src=\"https://cdn.prod.website-files.com/5e5fd6a35f35b720bfd3198a/5e9c149f9ba5991a3901422b_cloudbeat_logo_png.webp\" height=\"85px\" alt=\"CloudBeat logo\"/>](https://cloudbeat.io/ \"CloudBeat\")\r\n\r\n[](https://pypi.python.org/pypi/cloudbeat-pytest)\r\n[](https://pypi.python.org/pypi/cloudbeat-pytest)\r\n\r\nLearn more about CloudBeat at [https://cloudbeat.io/](https://cloudbeat.io/)\r\n\r\n~ \ud83e\uddfe [Documentation](https://docs.cloudbeat.io/python-pytest) \u2013 official documentation for CloudBeat <br>\r\n~ \ud83d\ude4b\ud83c\udffb [Contact and Support](https://www.cloudbeat.io/contact) \u2013 contact us and we'd love to help <br>\r\n~ \ud83d\udce3 [Blog](https://www.cloudbeat.io/blog) \u2013 stay updated with our latest news <br>\r\n~ \ud83d\udcbb [Demo](https://calendly.com/ndimer/cloudbeat-demo) \u2013 request a demo <br>\r\n\r\n---------\r\n\r\n# Quick start\r\n\r\n### Make sure your requirements.txt includes:\r\n```sh\r\ncloudbeat-pytest\r\ncloudbeat-selenium\r\n```\r\n\r\n## Standard Installation\r\n```sh\r\ncd pytest-selenium\r\npython -m venv env\r\nenv\\Scripts\\activate\r\npip install -r requirements.txt\r\n```\r\n\r\n## Installation using UV\r\n```sh\r\nuv venv\r\nuv pip install -r requirements.txt\r\n```\r\n\r\n## Set up CloudBeat reporter in confitest.py\r\n```python\r\nimport uuid\r\nimport pytest\r\nfrom selenium import webdriver\r\nfrom cloudbeat_common.models import CbConfig\r\nfrom cloudbeat_common.reporter import CbTestReporter\r\nfrom cloudbeat_selenium.wrapper import CbSeleniumWrapper\r\n\r\n\r\n@pytest.fixture(scope=\"module\")\r\ndef cb_config():\r\n \"\"\"Prepare configuration class for further CB reporter initialization.\"\"\"\r\n config = CbConfig()\r\n config.run_id = str(uuid.uuid4())\r\n config.instance_id = str(uuid.uuid4())\r\n config.project_id = str(uuid.uuid4())\r\n config.capabilities = {\"browserName\": \"chrome\"}\r\n return config\r\n\r\n\r\n@pytest.fixture(scope=\"module\")\r\ndef cb_reporter(cb_config):\r\n reporter = CbTestReporter(cb_config)\r\n return reporter\r\n\r\n\r\n@pytest.fixture()\r\ndef setup(cb_reporter):\r\n driver = webdriver.Chrome()\r\n wrapper = CbSeleniumWrapper(cb_reporter)\r\n wrapped_driver = wrapper.wrap(driver)\r\n yield wrapped_driver\r\n driver.quit()\r\n\r\n```\r\n\r\n### Set python src path if necessary\r\n```sh\r\nset PYTHONPATH=src\r\n```\r\n\r\n## Run your tests\r\n\r\n### Standard\r\n```sh\r\ncd pytest-selenium\r\nenv\\Scripts\\activate\r\n```\r\n\r\n### All tests\r\n```sh\r\npytest \r\n```\r\n\r\n### Parallel tests\r\n```sh\r\npytest -n 4\r\n```\r\n\r\n### Single test\r\n```sh\r\npytest -v -s Tests/test_login.py \r\n```\r\n\r\n### Using UV\r\n```sh\r\nuv run pytest # run all tests\r\nuv run pytest -n 4 # run parallel tests\r\nuv run pytest -v -s Tests/test_login.py # run a single test\r\n```\r\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "CloudBeat Pytest Kit",
"version": "1.0.2",
"project_urls": {
"Homepage": "https://cloudbeat.io/",
"Source": "https://github.com/cloudbeat-io/cb-kit-python"
},
"split_keywords": [
"cloudbeat",
"testing",
"reporting",
"python",
"pytest"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c77844310991ff7a5c6bd2bd2f50916f1f610a8acb94d1eef8d8e0e041fb9c71",
"md5": "7f714872096b0640d2f43c7acf8fa0d7",
"sha256": "6ed79cf866b91afab65c22ffb99c8070aac988f2330aa6666d014920bc869031"
},
"downloads": -1,
"filename": "cloudbeat_pytest-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7f714872096b0640d2f43c7acf8fa0d7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 7194,
"upload_time": "2025-08-21T14:27:04",
"upload_time_iso_8601": "2025-08-21T14:27:04.131938Z",
"url": "https://files.pythonhosted.org/packages/c7/78/44310991ff7a5c6bd2bd2f50916f1f610a8acb94d1eef8d8e0e041fb9c71/cloudbeat_pytest-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b0ca6d4f840b9c542393512424fc5bd907249b7bdb3b2c2c8baf07ad5a1f8303",
"md5": "748fc14cf0e541c7dac8a88f7f3373a5",
"sha256": "714a348927ae7c9152eb7f63d986f83c1ef2df3e1358e2e077fddef0319e25d7"
},
"downloads": -1,
"filename": "cloudbeat_pytest-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "748fc14cf0e541c7dac8a88f7f3373a5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 6654,
"upload_time": "2025-08-21T14:27:05",
"upload_time_iso_8601": "2025-08-21T14:27:05.081981Z",
"url": "https://files.pythonhosted.org/packages/b0/ca/6d4f840b9c542393512424fc5bd907249b7bdb3b2c2c8baf07ad5a1f8303/cloudbeat_pytest-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-21 14:27:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cloudbeat-io",
"github_project": "cb-kit-python",
"github_not_found": true,
"lcname": "cloudbeat-pytest"
}