From 654e9f0450914e4c8dadb56289f6c4c7e1fa7b42 Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Mon, 20 Jul 2026 18:35:19 +0530 Subject: [PATCH 01/15] Update gitignore for project setup --- .env.example | 0 .gitignore | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e69de29 diff --git a/.gitignore b/.gitignore index 2eea525..54d6012 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,18 @@ -.env \ No newline at end of file +# Virtual Environment +.venv + +# Python cache +__pycache__/ +*.pyc + +# Environment Variables +.env + +# Reports +reports/ +logs/ +screenshots/ + +# Playwright artifacts +test-results/ +playwright-report/ \ No newline at end of file From 92fd64881a06f0c6cc752cc9d481b3cde9ae0e24 Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Mon, 20 Jul 2026 20:45:09 +0530 Subject: [PATCH 02/15] Add Configuration skeleton --- .vscode/settings.json | 7 +++++++ config/__init__.py | 0 config/config.py | 16 ++++++++++++++++ config/environments/prod.json | 11 +++++++++++ config/environments/qa.json | 19 +++++++++++++++++++ config/environments/uat.json | 11 +++++++++++ 6 files changed, 64 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 config/__init__.py diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3e99ede --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "python.testing.pytestArgs": [ + "." + ], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true +} \ No newline at end of file diff --git a/config/__init__.py b/config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/config/config.py b/config/config.py index e69de29..b5f160a 100644 --- a/config/config.py +++ b/config/config.py @@ -0,0 +1,16 @@ +class ConfigManager: + + def __init__(self): + pass + + def load_environment(self): + pass + + def load_configuration(self): + pass + + def get(self): + pass + + def validate(self): + pass diff --git a/config/environments/prod.json b/config/environments/prod.json index e69de29..b47492e 100644 --- a/config/environments/prod.json +++ b/config/environments/prod.json @@ -0,0 +1,11 @@ +{ + "base_url": "https://www.saucedemo.com/", + "browser": "chromium", + "headless": false, + "timeout": 30000, + "slow_mo": 0, + "viewport": { + "width": 1920, + "height": 1080 + } +} diff --git a/config/environments/qa.json b/config/environments/qa.json index e69de29..3d5c7a1 100644 --- a/config/environments/qa.json +++ b/config/environments/qa.json @@ -0,0 +1,19 @@ +{ + "application": { + "base_url": "https://www.saucedemo.com/" + }, + "browser": { + "name": "chromium", + "headless": false, + "slow_mo": 0 + }, + "timeouts": { + "default": 30000, + "navigation": 60000 + }, + "reports": { + "take_screenshot_on_failure": true, + "record_video": false, + "trace": true + } +} diff --git a/config/environments/uat.json b/config/environments/uat.json index e69de29..b47492e 100644 --- a/config/environments/uat.json +++ b/config/environments/uat.json @@ -0,0 +1,11 @@ +{ + "base_url": "https://www.saucedemo.com/", + "browser": "chromium", + "headless": false, + "timeout": 30000, + "slow_mo": 0, + "viewport": { + "width": 1920, + "height": 1080 + } +} From a14420e90276b015986dfa61f06d8208fc98c3e8 Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Tue, 21 Jul 2026 12:48:18 +0530 Subject: [PATCH 03/15] Added basic test case to test the configuration loading --- .env.example | 1 + config/config.py | 110 +++++++++++++++++++++++++++--- pytest.ini | 3 +- tests/unit/test_config_manager.py | 8 +++ 4 files changed, 112 insertions(+), 10 deletions(-) create mode 100644 tests/unit/test_config_manager.py diff --git a/.env.example b/.env.example index e69de29..e57e1e3 100644 --- a/.env.example +++ b/.env.example @@ -0,0 +1 @@ +ENVIRONMENT=qa \ No newline at end of file diff --git a/config/config.py b/config/config.py index b5f160a..710e576 100644 --- a/config/config.py +++ b/config/config.py @@ -1,16 +1,108 @@ +""" +Configuration management for the automation framework. +""" + +from typing import Any +from dotenv import load_dotenv +import os +from pathlib import Path +import json + + class ConfigManager: + """ + Responsible for loading and providing framework configuration. + """ def __init__(self): - pass + self._environment = None + self._config = {} + + # self initialization configuration manager + self.load_environment() + self.load_configuration() + self.validate() + + def load_environment(self) -> None: + """ + Load the active environment from the .env file. + """ + load_dotenv() + self._environment = os.getenv("ENVIRONMENT") + if not self._environment: + raise ValueError("ENVIRONMENT variable not set in .env file.") + + + def load_configuration(self) -> None: + """ + Load configuration from the active environment JSON file. + """ + if not self._environment: + raise RuntimeError("Environment is not loaded. Call load_environment() first.") + + config_file_path = Path(__file__).parent / "environments" / f"{self._environment}.json" + + if not config_file_path.exists(): + raise FileNotFoundError(f"Configuration file {config_file_path} not found.") + + with config_file_path.open("r", encoding="utf-8") as config_file: + self._config = json.load(config_file) + + def validate(self) -> None: + """ + Validate the loaded configuration to ensure all required keys are present. + """ + if not self._config: + raise RuntimeError("Configuration is not loaded. Call load_configuration() first.") + required_keys = { + "application": ["base_url"], + "browser": ["name", "headless", "slow_mo"], + "timeouts": ["default", "navigation"], + "reports": [ + "take_screenshot_on_failure", + "record_video", + "trace" + ] + } + + for category, keys in required_keys.items(): + if category not in self._config: + raise ValueError(f"Missing requiredconfiguration category: {category}") + for key in keys: + if key not in self._config[category]: + raise KeyError(f"Missing configuration key: {category}.{key}") + + + def get(self, key: str) -> Any: + """ + Retrieve a configuration value by key using a dot notation. - def load_environment(self): - pass + Example: + config.get("application.base_url") + config.get("browser.headless") + config.get("timeouts.default") + """ + if not key: + raise ValueError("Configuration key cannot be empty.") + + keys = key.split(".") + value = self._config - def load_configuration(self): - pass + for current_key in keys: + if not isinstance(value, dict) or current_key not in value: + raise KeyError(f"Configuration key not found: {key}") + + value = value[current_key] + + return value - def get(self): - pass +if __name__ == "__main__": + config = ConfigManager() + print("Configuration loaded and validated successfully.") - def validate(self): - pass + print("Environment: ", config._environment) + print("Base URL: ", config.get("application.base_url")) + print("Browser: ", config.get("browser.name")) + print("Headless: ", config.get("browser.headless")) + print("Default Timeout: ", config.get("timeouts.default")) + print("Trace: ", config.get("reports.trace")) diff --git a/pytest.ini b/pytest.ini index d871864..3c6b368 100644 --- a/pytest.ini +++ b/pytest.ini @@ -3,4 +3,5 @@ testpaths = tests python_files = test_*.py python_classes = Test* python_functions = test_* -adopts = -v \ No newline at end of file +adopts = -v +pythonpath = . \ No newline at end of file diff --git a/tests/unit/test_config_manager.py b/tests/unit/test_config_manager.py new file mode 100644 index 0000000..ad74f96 --- /dev/null +++ b/tests/unit/test_config_manager.py @@ -0,0 +1,8 @@ +from config.config import ConfigManager + + +def test_configuration_loads_successfully(): + config = ConfigManager() + + assert config.get("application.base_url") == "https://www.saucedemo.com/" + \ No newline at end of file From 576d0e38ad574ff4090e9b47d20bfefb5aa2f083 Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Tue, 21 Jul 2026 14:02:09 +0530 Subject: [PATCH 04/15] Add ConfigManager unit tests --- pytest.ini | 2 +- tests/unit/test_config_manager.py | 40 ++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/pytest.ini b/pytest.ini index 3c6b368..28b0cb0 100644 --- a/pytest.ini +++ b/pytest.ini @@ -3,5 +3,5 @@ testpaths = tests python_files = test_*.py python_classes = Test* python_functions = test_* -adopts = -v +addopts = -v pythonpath = . \ No newline at end of file diff --git a/tests/unit/test_config_manager.py b/tests/unit/test_config_manager.py index ad74f96..6f886a7 100644 --- a/tests/unit/test_config_manager.py +++ b/tests/unit/test_config_manager.py @@ -1,3 +1,4 @@ +import pytest from config.config import ConfigManager @@ -5,4 +6,41 @@ def test_configuration_loads_successfully(): config = ConfigManager() assert config.get("application.base_url") == "https://www.saucedemo.com/" - \ No newline at end of file + + +def test_browser_configuration(): + config = ConfigManager() + + assert config.get("browser.name") == "chromium" + assert config.get("browser.headless") is False + assert config.get("browser.slow_mo") == 0 + + +def test_timeout_configuration(): + config = ConfigManager() + + assert config.get("timeouts.default") == 30000 + assert config.get("timeouts.navigation") == 60000 + + +def test_report_configuration(): + config = ConfigManager() + + assert config.get("reports.take_screenshot_on_failure") is True + assert config.get("reports.record_video") is False + assert config.get("reports.trace") is True + + +def test_empty_configuration_key_raises_error(): + config = ConfigManager() + + with pytest.raises(ValueError): + config.get("") + + +def test_invalid_configuration_key_raises_error(): + config = ConfigManager() + + with pytest.raises(KeyError): + config.get("invalid.key") + From 8075871465593be2b86dc7f53141e1a41bbae67d Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Tue, 21 Jul 2026 14:13:52 +0530 Subject: [PATCH 05/15] Refactor configuration tests using pytest fixture --- tests/conftest.py | 11 +++++++++++ tests/unit/test_config_manager.py | 25 ++++++------------------- 2 files changed, 17 insertions(+), 19 deletions(-) create mode 100644 tests/conftest.py diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..0e918a3 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,11 @@ +import pytest +from config.config import ConfigManager + + +@pytest.fixture +def config(): + """ + Proivde a ConfigManager instance for tests. + """ + return ConfigManager() + diff --git a/tests/unit/test_config_manager.py b/tests/unit/test_config_manager.py index 6f886a7..7184a17 100644 --- a/tests/unit/test_config_manager.py +++ b/tests/unit/test_config_manager.py @@ -1,46 +1,33 @@ import pytest -from config.config import ConfigManager -def test_configuration_loads_successfully(): - config = ConfigManager() - +def test_configuration_loads_successfully(config): assert config.get("application.base_url") == "https://www.saucedemo.com/" -def test_browser_configuration(): - config = ConfigManager() - +def test_browser_configuration(config): assert config.get("browser.name") == "chromium" assert config.get("browser.headless") is False assert config.get("browser.slow_mo") == 0 -def test_timeout_configuration(): - config = ConfigManager() - +def test_timeout_configuration(config): assert config.get("timeouts.default") == 30000 assert config.get("timeouts.navigation") == 60000 -def test_report_configuration(): - config = ConfigManager() - +def test_report_configuration(config): assert config.get("reports.take_screenshot_on_failure") is True assert config.get("reports.record_video") is False assert config.get("reports.trace") is True -def test_empty_configuration_key_raises_error(): - config = ConfigManager() - +def test_empty_configuration_key_raises_error(config): with pytest.raises(ValueError): config.get("") -def test_invalid_configuration_key_raises_error(): - config = ConfigManager() - +def test_invalid_configuration_key_raises_error(config): with pytest.raises(KeyError): config.get("invalid.key") From fd4519cf97d979ce253779eb106bdf51b06b779f Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Thu, 23 Jul 2026 17:42:54 +0530 Subject: [PATCH 06/15] Add pytest markers and test execution strategy --- config/environments/qa.json | 2 +- core/{base_page.py => __init__.py} | 0 core/browser_manager.py | 82 ++++++++++++++++++++++ core/driver_factory.py | 0 core/playwright_manager.py | 0 core/test_data_manager.py | 46 ++++++++++++ core/browser.py => pages/__init__.py | 0 pages/base_page.py | 60 ++++++++++++++++ pages/cart_page.py | 46 ++++++++++++ pages/checkout_complete_page.py | 28 ++++++++ pages/checkout_overview_page.py | 37 ++++++++++ pages/checkout_page.py | 40 +++++++++++ pages/footer.py | 0 pages/header.py | 0 pages/inventory_page.py | 47 +++++++++++++ pages/login_page.py | 54 ++++++++++++++ pytest.ini | 8 ++- core/constants.py => test_data/__init__.py | 0 test_data/products.json | 12 ++++ test_data/users.json | 15 ++++ tests/conftest.py | 71 ++++++++++++++++++- tests/e2e/test_browser_launch.py | 10 +++ tests/e2e/test_cart.py | 25 +++++++ tests/e2e/test_checkout.py | 79 +++++++++++++++++++++ tests/e2e/test_inventory.py | 24 +++++++ tests/e2e/test_login.py | 17 +++++ tests/unit/test_config_manager.py | 4 +- 27 files changed, 702 insertions(+), 5 deletions(-) rename core/{base_page.py => __init__.py} (100%) create mode 100644 core/browser_manager.py delete mode 100644 core/driver_factory.py delete mode 100644 core/playwright_manager.py create mode 100644 core/test_data_manager.py rename core/browser.py => pages/__init__.py (100%) create mode 100644 pages/base_page.py create mode 100644 pages/cart_page.py create mode 100644 pages/checkout_complete_page.py create mode 100644 pages/checkout_overview_page.py create mode 100644 pages/checkout_page.py delete mode 100644 pages/footer.py delete mode 100644 pages/header.py create mode 100644 pages/inventory_page.py create mode 100644 pages/login_page.py rename core/constants.py => test_data/__init__.py (100%) create mode 100644 test_data/products.json create mode 100644 test_data/users.json create mode 100644 tests/e2e/test_browser_launch.py create mode 100644 tests/e2e/test_cart.py create mode 100644 tests/e2e/test_checkout.py create mode 100644 tests/e2e/test_inventory.py create mode 100644 tests/e2e/test_login.py diff --git a/config/environments/qa.json b/config/environments/qa.json index 3d5c7a1..e43bb64 100644 --- a/config/environments/qa.json +++ b/config/environments/qa.json @@ -5,7 +5,7 @@ "browser": { "name": "chromium", "headless": false, - "slow_mo": 0 + "slow_mo": 700 }, "timeouts": { "default": 30000, diff --git a/core/base_page.py b/core/__init__.py similarity index 100% rename from core/base_page.py rename to core/__init__.py diff --git a/core/browser_manager.py b/core/browser_manager.py new file mode 100644 index 0000000..e1ebc3e --- /dev/null +++ b/core/browser_manager.py @@ -0,0 +1,82 @@ +from typing import Optional +from playwright.sync_api import Browser, BrowserContext, Page, Playwright + + +class BrowserManager: + """ + Responsible for managing the Playwright browser lifecycle. + """ + + def __init__(self, playwright: Playwright, config): + """ + Initialize BrowserManager. + + Args: + playwright: Playwright instance + config: ConfigManager instance + """ + self._playwright = playwright + self._config = config + + self._browser: Optional[Browser] = None + self._context: Optional[BrowserContext] = None + self._page: Optional[Page] = None + + + def launch_browser(self): + """ + Launch the configured browser. + """ + browser_name = self._config.get("browser.name") + headless = self._config.get("browser.headless") + slow_mo = self._config.get("browser.slow_mo") + + if browser_name == "chromium": + browser_type = self._playwright.chromium + elif browser_name == "firefox": + browser_type = self._playwright.firefox + elif browser_name == "webkit": + browser_type = self._playwright.webkit + else: + raise ValueError(f"Unsupported browser: {browser_name}") + + self._browser = browser_type.launch(headless=headless, slow_mo=slow_mo) + return self._browser + + + def create_context(self) -> BrowserContext: + """ + Create a new browser context which provides an isolated browser session. + """ + if self._browser is None: + raise RuntimeError("Browser is not launched. Call launch_browser() first.") + + self._context = self._browser.new_context() + return self._context + + + def create_page(self) -> Page: + """ + Create a new page inside the browser context. + """ + if self._context is None: + raise RuntimeError("Browser context is not created. Call create_context() first.") + + self._page = self._context.new_page() + return self._page + + + def close(self) -> None: + """ + Close the browser and release resources. + """ + if self._context is not None: + self._context.close() + + if self._browser is not None: + self._browser.close() + + self._page = None + self._context = None + self._browser = None + diff --git a/core/driver_factory.py b/core/driver_factory.py deleted file mode 100644 index e69de29..0000000 diff --git a/core/playwright_manager.py b/core/playwright_manager.py deleted file mode 100644 index e69de29..0000000 diff --git a/core/test_data_manager.py b/core/test_data_manager.py new file mode 100644 index 0000000..3d2d6e2 --- /dev/null +++ b/core/test_data_manager.py @@ -0,0 +1,46 @@ +import json +from pathlib import Path +from typing import Any + + +class TestDataManager: + """ + Responsible for loading and providing test data. + """ + + def __init__(self): + self._data = {} + + + def load_data(self, file_name: str, data_key: str) -> None: + """ + Load test data from a JSON file and store it under the specified data key. + """ + data_file_path = (Path(__file__).parent.parent/"test_data"/file_name) + + if not data_file_path.exists(): + raise FileNotFoundError(f"Test data file {data_file_path} not found.") + + with data_file_path.open("r", encoding="utf-8") as data_file: + loaded_data = json.load(data_file) + + self._data[data_key] = loaded_data + + + def get(self, key: str) -> Any: + """ + Retrieve test data using a dot-separated key. + """ + if not key: + raise ValueError("Test data key cannot be empty.") + + value = self._data + + for part in key.split("."): + if not isinstance(value, dict) or part not in value: + raise KeyError(f"Test data key not found: {key}") + + value = value[part] + + return value + diff --git a/core/browser.py b/pages/__init__.py similarity index 100% rename from core/browser.py rename to pages/__init__.py diff --git a/pages/base_page.py b/pages/base_page.py new file mode 100644 index 0000000..dc3061a --- /dev/null +++ b/pages/base_page.py @@ -0,0 +1,60 @@ +from playwright.sync_api import Page + + +class BasePage: + """ + Base class for all Page Object Classes. + Contains common browser interaction methods. + """ + def __init__(self, page: Page): + self.page = page + + + def navigate(self, url: str) -> None: + """ + Navigate to the specified URL. + """ + self.page.goto(url) + + + def get_title(self) -> str: + """ + Return the current page title. + """ + return self.page.title() + + + def get_current_url(self) -> str: + """ + Return the current page URL. + """ + return self.page.url + + + def click(self, locator: str) -> None: + """ + Click an element using its locator. + """ + self.page.locator(locator).click() + + + def fill(self, locator: str, value: str) -> None: + """ + Fill an input field. + """ + self.page.locator(locator).fill(value) + + + def get_text(self, locator: str) -> None: + """ + Return the text content of an element. + """ + return self.page.locator(locator).inner_text() + + + def is_visible(self, locator: str) -> bool: + """ + Check whether an element is visible. + """ + return self.page.locator(locator).is_visible() + diff --git a/pages/cart_page.py b/pages/cart_page.py new file mode 100644 index 0000000..0a7cef2 --- /dev/null +++ b/pages/cart_page.py @@ -0,0 +1,46 @@ +from playwright.sync_api import Page +from pages.base_page import BasePage + + +class CartPage(BasePage): + """ + Page Object representing the SauceDemo shopping cart. + """ + + CART_ITEMS = ".cart_item" + CHECKOUT_BUTTON = "[data-test='checkout']" + + def __init__(self, page: Page): + super().__init__(page) + + + def is_loaded(self) -> bool: + """ + Verify that the shopping cart page is displayed. + """ + return self.page.url.endswith("/cart.html") + + + def get_product_names(self) -> list[str]: + """ + Return the names of all products currently present in the cart. + """ + products = self.page.locator(".inventory_item_name").all_inner_texts() + return products + + + def is_product_in_cart(self, product_name: str) -> bool: + """ + Verify whether a specific product exists in the shopping cart. + """ + # return product_name in self.get_product_names() + cart_item = self.page.locator(self.CART_ITEMS).filter(has_text=product_name) + return cart_item.count() > 0 + + + def click_checkout(self) -> None: + """ + Proceed to checkout. + """ + self.click(self.CHECKOUT_BUTTON) + diff --git a/pages/checkout_complete_page.py b/pages/checkout_complete_page.py new file mode 100644 index 0000000..6bc1388 --- /dev/null +++ b/pages/checkout_complete_page.py @@ -0,0 +1,28 @@ +from playwright.sync_api import Page +from pages.base_page import BasePage + + +class CheckoutCompletePage(BasePage): + """ + Page Object representing the completed SauceDemo checkout page. + """ + + COMPLETE_HEADER = "[data-test='complete-header']" + + def __init__(self, page: Page): + super().__init__(page) + + + def is_loaded(self) -> bool: + """ + Verify that the checkout complete page is displayed. + """ + return self.page.url.endswith("/checkout-complete.html") + + + def get_confirmation_message(self) -> str: + """ + Return the order confirmation message. + """ + return self.page.locator(self.COMPLETE_HEADER).inner_text() + diff --git a/pages/checkout_overview_page.py b/pages/checkout_overview_page.py new file mode 100644 index 0000000..d320a19 --- /dev/null +++ b/pages/checkout_overview_page.py @@ -0,0 +1,37 @@ +from playwright.sync_api import Page +from pages.base_page import BasePage + + +class CheckoutOverviewPage(BasePage): + """ + Page Object representing the SauceDemo checkout overview page. + """ + + CART_ITEMS = ".cart-item" + FINISH_BUTTON = "[data-test='finish']" + + def __init__(self, page: Page): + super().__init__(page) + + + def is_loaded(self) -> bool: + """ + Verify that the checkout overview page is displayed. + """ + return self.page.url.endswith("/checkout-step-two.html") + + + def is_product_in_order(self, product_name: str) -> None: + """ + Verify that a specific product appears in the order summary. + """ + products = self.page.locator(".inventory_item_name").all_inner_texts() + return product_name in products + + + def click_finish(self) -> None: + """ + Complete the order. + """ + self.click(self.FINISH_BUTTON) + diff --git a/pages/checkout_page.py b/pages/checkout_page.py new file mode 100644 index 0000000..c97301c --- /dev/null +++ b/pages/checkout_page.py @@ -0,0 +1,40 @@ +from playwright.sync_api import Page +from pages.base_page import BasePage + + +class CheckoutPage(BasePage): + """ + Page Object representing the SauceDemo checkout information page. + """ + + FIRST_NAME = "[data-test='firstName']" + LAST_NAME = "[data-test='lastName']" + POSTCAL_CODE = "[data-test='postalCode']" + CONTINUE_BUTTON = "[data-test='continue']" + + def __init__(self, page: Page): + super().__init__(page) + + + def is_loaded(self) -> bool: + """ + Verify that the checkout information page is displayed. + """ + return self.page.url.endswith("/checkout-step-one.html") + + + def enter_customer_information(self, first_name: str, last_name: str, postal_code: str,) -> None: + """ + Enter customer information required for checkout. + """ + self.fill(self.FIRST_NAME, first_name) + self.fill(self.LAST_NAME, last_name) + self.fill(self.POSTCAL_CODE, postal_code) + + + def click_continue(self) -> None: + """ + Continue to checkout overview. + """ + self.click(self.CONTINUE_BUTTON) + diff --git a/pages/footer.py b/pages/footer.py deleted file mode 100644 index e69de29..0000000 diff --git a/pages/header.py b/pages/header.py deleted file mode 100644 index e69de29..0000000 diff --git a/pages/inventory_page.py b/pages/inventory_page.py new file mode 100644 index 0000000..f0a82e9 --- /dev/null +++ b/pages/inventory_page.py @@ -0,0 +1,47 @@ +from playwright.sync_api import Page +from pages.base_page import BasePage + + +class InventoryPage(BasePage): + """ + Page Object representing the SauceDemo inventory page. + """ + + INVENTORY_CONTAINER = "[data-test='inventory-container']" + SHOPPING_CART = "[data-test='shopping-cart-link']" + + def __init__(self, page: Page): + super().__init__(page) + + + def is_loaded(self) -> bool: + """ + Check whether the inventory page is displayed. + """ + return self.is_visible(self.INVENTORY_CONTAINER) + + + def add_product_to_cart(self, product_name: str) -> None: + """ + Add a product to the shopping cart using its product name. + """ + # product = self.page.locator(".inventory_item").filter(has_text=product_name) + # product.locator("button").click() + product_slug = product_name.lower().replace(" ", "-") + add_to_cart_button = (f"[data-test='add-to-cart-{product_slug}']") + self.click(add_to_cart_button) + + + def open_cart(self) -> None: + """ + Open the shopping cart. + """ + self.click(self.SHOPPING_CART) + + + def get_cart_item_count(self) -> str: + """ + Return the number displayed on the shopping cart badge. + """ + return self.page.locator(".shopping_cart_badge").inner_text() + diff --git a/pages/login_page.py b/pages/login_page.py new file mode 100644 index 0000000..ab83e42 --- /dev/null +++ b/pages/login_page.py @@ -0,0 +1,54 @@ +from playwright.sync_api import Page +from pages.base_page import BasePage + + +class LoginPage(BasePage): + """ + Page Object representing the SauceDemo login page. + """ + + USERNAME_INPUT = "#user-name" + PASSWORD_INPUT = "#password" + LOGIN_BUTTON = "#login-button" + ERROR_MESSAGE = "[data-test='error']" + + def __init__(self, page: Page): + super().__init__(page) + + + def enter_username(self, username: str) -> None: + """ + Enter username into the username field. + """ + self.fill(self.USERNAME_INPUT, username) + + + def enter_password(self, password: str) -> None: + """ + Enter password into the password field. + """ + self.fill(self.PASSWORD_INPUT, password) + + + def click_login(self) -> None: + """ + Click the login button. + """ + self.click(self.LOGIN_BUTTON) + + + def login(self, username: str, password: str) -> None: + """ + Perform login using the provided credentials. + """ + self.enter_username(username) + self.enter_password(password) + self.click_login() + + + def is_error_message_visible(self) -> bool: + """ + Check whether the login error message is visible. + """ + return self.is_visible(self.ERROR_MESSAGE) + diff --git a/pytest.ini b/pytest.ini index 28b0cb0..c7a52f6 100644 --- a/pytest.ini +++ b/pytest.ini @@ -4,4 +4,10 @@ python_files = test_*.py python_classes = Test* python_functions = test_* addopts = -v -pythonpath = . \ No newline at end of file +pythonpath = . + +markers = + smoke: Critical tests covering core application functionality + regression: Comprehensive regression test suite + e2e: End-to-end tests covering complete user workflows + unit: Unit tests for framework components \ No newline at end of file diff --git a/core/constants.py b/test_data/__init__.py similarity index 100% rename from core/constants.py rename to test_data/__init__.py diff --git a/test_data/products.json b/test_data/products.json new file mode 100644 index 0000000..363b70a --- /dev/null +++ b/test_data/products.json @@ -0,0 +1,12 @@ +{ + "backpack": { + "name": "Sauce Labs Backpack" + }, + "bike_light": { + "name": "Sauce Labs Bike Light" + }, + "bolt_t_shirt": { + "name": "Sauce Labs Bolt T-Shirt" + } +} + diff --git a/test_data/users.json b/test_data/users.json new file mode 100644 index 0000000..eef3c21 --- /dev/null +++ b/test_data/users.json @@ -0,0 +1,15 @@ +{ + "valid_user": { + "username": "standard_user", + "password": "secret_sauce" + }, + "invalid_user": { + "username": "invalid_user", + "password": "invalid_password" + }, + "locked_out_user": { + "username": "locked_out_user", + "password": "secret_sauce" + } +} + diff --git a/tests/conftest.py b/tests/conftest.py index 0e918a3..ad4bd7d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,11 +1,78 @@ import pytest from config.config import ConfigManager +from playwright.sync_api import sync_playwright +from core.browser_manager import BrowserManager +from core.test_data_manager import TestDataManager -@pytest.fixture +@pytest.fixture(scope="session") def config(): """ - Proivde a ConfigManager instance for tests. + Provide a single ConfigManager instance for the entire test session. """ return ConfigManager() + +@pytest.fixture(scope="session") +def playwright(): + """ + Start the Playwright engine for the test session. + """ + with sync_playwright() as playwright_instance: + yield playwright_instance + + +@pytest.fixture(scope="session") +def browser_manager(playwright, config): + """ + Provide a BrowserManager instance. + """ + return BrowserManager(playwright=playwright, config=config,) + + +@pytest.fixture(scope="session") +def browser(browser_manager): + """ + Launch the configured browser. + """ + browser_instance = browser_manager.launch_browser() + + yield browser_instance + + browser_manager.close() + + +@pytest.fixture(scope="function") +def context(browser): + """ + Create an isolated browser context for each test. + """ + context_instance = browser.new_context() + + yield context_instance + + context_instance.close() + + +@pytest.fixture(scope="function") +def page(context): + """ + Create a new browser for each test. + """ + page_instance = context.new_page() + + yield page_instance + + page_instance.close() + + +@pytest.fixture(scope="session") +def test_data(): + """ + Provide test data to tests. + """ + data_manager = TestDataManager() + data_manager.load_data(file_name="users.json", data_key="users") + data_manager.load_data(file_name="products.json", data_key="products") + return data_manager + diff --git a/tests/e2e/test_browser_launch.py b/tests/e2e/test_browser_launch.py new file mode 100644 index 0000000..ddff3e4 --- /dev/null +++ b/tests/e2e/test_browser_launch.py @@ -0,0 +1,10 @@ +import pytest + +@pytest.mark.smoke +def test_browser_launch(page, config): + """ + Verify that the configured browser can launch and navigate to the application. + """ + page.goto(config.get("application.base_url")) + assert page.title() == "Swag Labs" + diff --git a/tests/e2e/test_cart.py b/tests/e2e/test_cart.py new file mode 100644 index 0000000..3672a79 --- /dev/null +++ b/tests/e2e/test_cart.py @@ -0,0 +1,25 @@ +from pages.cart_page import CartPage +from pages.inventory_page import InventoryPage +from pages.login_page import LoginPage +import pytest + + +@pytest.mark.regression +@pytest.mark.e2e +def test_product_is_displayed_in_cart(page, config): + """ + Verify that a selected product appears in the shopping cart. + """ + login_page = LoginPage(page) + login_page.navigate(config.get("application.base_url")) + login_page.login(username="standard_user", password="secret_sauce") + + inventory_page = InventoryPage(page) + product_name = "Sauce Labs Backpack" + inventory_page.add_product_to_cart(product_name) + inventory_page.open_cart() + + cart_page = CartPage(page) + assert cart_page.is_loaded() + assert cart_page.is_product_in_cart(product_name) + diff --git a/tests/e2e/test_checkout.py b/tests/e2e/test_checkout.py new file mode 100644 index 0000000..6c4851b --- /dev/null +++ b/tests/e2e/test_checkout.py @@ -0,0 +1,79 @@ +from pages.cart_page import CartPage +from pages.checkout_complete_page import CheckoutCompletePage +from pages.checkout_overview_page import CheckoutOverviewPage +from pages.checkout_page import CheckoutPage +from pages.inventory_page import InventoryPage +from pages.login_page import LoginPage +import pytest + + +@pytest.mark.smoke +@pytest.mark.regression +@pytest.mark.e2e +def test_complete_checkout_flow(page, config, test_data): + """ + Verify that a user can complete a complete product purchase flow. + """ + + # -------------------------------- + # Login + # -------------------------------- + login_page = LoginPage(page) + login_page.navigate(config.get("application.base_url")) + username = test_data.get("users.valid_user.username") + password = test_data.get("users.valid_user.password") + login_page.login(username=username, password=password) + + + # -------------------------------- + # Add Product + # -------------------------------- + inventory_page = InventoryPage(page) + product_name = test_data.get("products.backpack.name") + inventory_page.add_product_to_cart(product_name) + + + # -------------------------------- + # Open Cart + # -------------------------------- + inventory_page.open_cart() + cart_page = CartPage(page) + assert cart_page.is_loaded() + assert cart_page.is_product_in_cart(product_name) + + + # -------------------------------- + # Checkout + # -------------------------------- + cart_page.click_checkout() + checkout_page = CheckoutPage(page) + assert checkout_page.is_loaded() + + + # -------------------------------- + # Customer Information + # -------------------------------- + checkout_page.enter_customer_information(first_name="Prateek", last_name="Dharwal", postal_code="141001") + checkout_page.click_continue() + + + # -------------------------------- + # Checkout Overview + # -------------------------------- + checkout_overview_page = CheckoutOverviewPage(page) + assert checkout_overview_page.is_loaded() + assert checkout_overview_page.is_product_in_order(product_name) + + + # -------------------------------- + # Complete Order + # -------------------------------- + checkout_overview_page.click_finish() + + + # -------------------------------- + # Verify Completion + # -------------------------------- + checkout_complete_page = CheckoutCompletePage(page) + assert (checkout_complete_page.get_confirmation_message() == "Thank you for your order!") + diff --git a/tests/e2e/test_inventory.py b/tests/e2e/test_inventory.py new file mode 100644 index 0000000..7685d22 --- /dev/null +++ b/tests/e2e/test_inventory.py @@ -0,0 +1,24 @@ +from pages.inventory_page import InventoryPage +from pages.login_page import LoginPage +import pytest + + +@pytest.mark.smoke +@pytest.mark.e2e +def test_add_product_to_cart(page, config, test_data): + """ + Verify that a user can add product to the shopping cart. + """ + login_page = LoginPage(page) + login_page.navigate(config.get("application.base_url")) + username = test_data.get("users.valid_user.username") + password = test_data.get("users.valid_user.password") + login_page.login(username=username, password=password) + + inventory_page = InventoryPage(page) + assert inventory_page.is_loaded() + + product_name = test_data.get("products.backpack.name") + inventory_page.add_product_to_cart(product_name) + assert inventory_page.get_cart_item_count() == "1" + diff --git a/tests/e2e/test_login.py b/tests/e2e/test_login.py new file mode 100644 index 0000000..ec89004 --- /dev/null +++ b/tests/e2e/test_login.py @@ -0,0 +1,17 @@ +from pages.login_page import LoginPage +import pytest + + +@pytest.mark.smoke +@pytest.mark.e2e +def test_valid_login(page, config, test_data): + """ + Verify that a valid user can log in successfully. + """ + login_page = LoginPage(page) + login_page.navigate(config.get("application.base_url")) + username = test_data.get("users.valid_user.username") + password = test_data.get("users.valid_user.password") + login_page.login(username=username, password=password,) + assert page.url.endswith("/inventory.html") + diff --git a/tests/unit/test_config_manager.py b/tests/unit/test_config_manager.py index 7184a17..f65ffed 100644 --- a/tests/unit/test_config_manager.py +++ b/tests/unit/test_config_manager.py @@ -1,14 +1,16 @@ import pytest +@pytest.mark.unit def test_configuration_loads_successfully(config): assert config.get("application.base_url") == "https://www.saucedemo.com/" +@pytest.mark.unit def test_browser_configuration(config): assert config.get("browser.name") == "chromium" assert config.get("browser.headless") is False - assert config.get("browser.slow_mo") == 0 + assert config.get("browser.slow_mo") == 700 def test_timeout_configuration(config): From c6d6cccdea7fe76b7253b1e720749120dbf624ab Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Fri, 24 Jul 2026 21:10:40 +0530 Subject: [PATCH 07/15] Add framework logging utility --- .gitignore | 14 ++++++++- pages/inventory_page.py | 16 +++++++++- pages/login_page.py | 70 ++++++++++++++++++++++++----------------- utils/__init__.py | 0 utils/logger.py | 31 ++++++++++++++++++ 5 files changed, 101 insertions(+), 30 deletions(-) create mode 100644 utils/__init__.py create mode 100644 utils/logger.py diff --git a/.gitignore b/.gitignore index 54d6012..20e429a 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ # Python cache __pycache__/ *.pyc +*.py[cod] # Environment Variables .env @@ -15,4 +16,15 @@ screenshots/ # Playwright artifacts test-results/ -playwright-report/ \ No newline at end of file +playwright-report/ + +# Test Reports +reports/ + +# Allure +allure-resutls/ +allure-report/ + +# Pytest +.pytest_cache/ + diff --git a/pages/inventory_page.py b/pages/inventory_page.py index f0a82e9..7d2ef8e 100644 --- a/pages/inventory_page.py +++ b/pages/inventory_page.py @@ -1,5 +1,6 @@ from playwright.sync_api import Page from pages.base_page import BasePage +from utils.logger import get_logger class InventoryPage(BasePage): @@ -7,6 +8,8 @@ class InventoryPage(BasePage): Page Object representing the SauceDemo inventory page. """ + logger = get_logger(__name__) + INVENTORY_CONTAINER = "[data-test='inventory-container']" SHOPPING_CART = "[data-test='shopping-cart-link']" @@ -18,7 +21,10 @@ def is_loaded(self) -> bool: """ Check whether the inventory page is displayed. """ - return self.is_visible(self.INVENTORY_CONTAINER) + # return self.is_visible(self.INVENTORY_CONTAINER) + is_loaded = self.is_visible(self.INVENTORY_CONTAINER) + self.logger.info("Inventory page loaded: %s", is_loaded) + return is_loaded def add_product_to_cart(self, product_name: str) -> None: @@ -27,9 +33,17 @@ def add_product_to_cart(self, product_name: str) -> None: """ # product = self.page.locator(".inventory_item").filter(has_text=product_name) # product.locator("button").click() + + self.logger.info("Adding product to cart: %s", product_name) product_slug = product_name.lower().replace(" ", "-") add_to_cart_button = (f"[data-test='add-to-cart-{product_slug}']") self.click(add_to_cart_button) + self.logger.info("Product added to cart: %s", product_name) + + # self.logger.info("Adding product to cart: %s", product_name) + # product = (self.page.locator(".inventory_item").filter(has_text=product_name)) + # product.locator(".button").click() + # self.logger.info("Product added to cart: %s", product_name) def open_cart(self) -> None: diff --git a/pages/login_page.py b/pages/login_page.py index ab83e42..1622a79 100644 --- a/pages/login_page.py +++ b/pages/login_page.py @@ -1,5 +1,6 @@ from playwright.sync_api import Page from pages.base_page import BasePage +from utils.logger import get_logger class LoginPage(BasePage): @@ -7,48 +8,61 @@ class LoginPage(BasePage): Page Object representing the SauceDemo login page. """ - USERNAME_INPUT = "#user-name" - PASSWORD_INPUT = "#password" - LOGIN_BUTTON = "#login-button" + logger = get_logger(__name__) + + USERNAME_INPUT = "[data-test='username']" + PASSWORD_INPUT = "[data-test='password']" + LOGIN_BUTTON = "[data-test='login-button']" ERROR_MESSAGE = "[data-test='error']" def __init__(self, page: Page): super().__init__(page) - def enter_username(self, username: str) -> None: - """ - Enter username into the username field. - """ - self.fill(self.USERNAME_INPUT, username) + # def enter_username(self, username: str) -> None: + # """ + # Enter username into the username field. + # """ + # self.fill(self.USERNAME_INPUT, username) - def enter_password(self, password: str) -> None: - """ - Enter password into the password field. - """ - self.fill(self.PASSWORD_INPUT, password) + # def enter_password(self, password: str) -> None: + # """ + # Enter password into the password field. + # """ + # self.fill(self.PASSWORD_INPUT, password) - def click_login(self) -> None: - """ - Click the login button. - """ - self.click(self.LOGIN_BUTTON) + # def click_login(self) -> None: + # """ + # Click the login button. + # """ + # self.click(self.LOGIN_BUTTON) - def login(self, username: str, password: str) -> None: - """ - Perform login using the provided credentials. - """ - self.enter_username(username) - self.enter_password(password) - self.click_login() + # def login(self, username: str, password: str) -> None: + # """ + # Perform login using the provided credentials. + # """ + # self.enter_username(username) + # self.enter_password(password) + # self.click_login() - def is_error_message_visible(self) -> bool: + # def is_error_message_visible(self) -> bool: + # """ + # Check whether the login error message is visible. + # """ + # return self.is_visible(self.ERROR_MESSAGE) + + def login(self, username: str, password: str) -> None: """ - Check whether the login error message is visible. + Login using the provided credentials. """ - return self.is_visible(self.ERROR_MESSAGE) + + self.logger.info("Attempting login with username: %s", username) + self.fill(self.USERNAME_INPUT, username) + self.fill(self.PASSWORD_INPUT, password) + self.click(self.LOGIN_BUTTON) + self.logger.info("Login action completed for username %s", username) diff --git a/utils/__init__.py b/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/utils/logger.py b/utils/logger.py new file mode 100644 index 0000000..7c2f0e3 --- /dev/null +++ b/utils/logger.py @@ -0,0 +1,31 @@ +import logging +from pathlib import Path + + +def get_logger(name: str) -> logging.Logger: + """ + Create and return a configured logger. + """ + + logger = logging.getLogger(name) + + if logger.handlers: + return logger + + logger.setLevel(logging.INFO) + + log_direcotry = Path("reports/logs") + log_direcotry.mkdir(parents=True, exist_ok=True) + + log_file = log_direcotry / "automation.log" + formatter = logging.Formatter("%(asctime)s | %(levelname)s | %(name)s | %(message)s") + console_handler = logging.StreamHandler() + console_handler.setFormatter(formatter) + + file_handler = logging.FileHandler(log_file, encoding="utf-8") + file_handler.setFormatter(formatter) + logger.addHandler(console_handler) + logger.addHandler(file_handler) + + return logger + From d590d99ad2a070d5cc4a20e5b5ecc5b490e52c75 Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Sat, 25 Jul 2026 15:15:04 +0530 Subject: [PATCH 08/15] Add Github Actions CI pipeline --- .DS_Store | Bin 0 -> 8196 bytes .github/workflows/playwright-tests.yml | 78 ++++++++++++++ ...732f-41e1-b950-667da9c2395d-container.json | 1 + ...ec56-4b22-9597-3f72e2cee488-container.json | 1 + ...3ac5-4f26-8eb4-dd032e72ca04-container.json | 1 + ...5d11-4e8b-be2c-c60a07fe1b04-container.json | 1 + ...9ddc-4f9b-87e4-b85b52a8ec7e-container.json | 1 + ...c1c0-4b6f-b108-3b64b0915641-attachment.txt | 4 + ...ba7a-436b-932b-f345910afc3c-attachment.txt | 4 + ...3f2c-4c2b-be45-9197d50f9bb8-container.json | 1 + ...ce-169f-4a84-9243-7823df3eb1f9-result.json | 1 + ...1ca1-4762-85f7-0f8eb16137b0-attachment.txt | 2 + ...4a49-476e-abec-fad0a664ee9f-attachment.txt | 2 + ...1b56-4c2e-b4f3-cd9d666396cc-container.json | 1 + ...c488-4c25-bda5-6bb4199fc786-container.json | 1 + ...e1e8-4207-8139-e91080fd5053-container.json | 1 + ...9d2f-42e2-8846-66a1371e7167-container.json | 1 + ...1423-4209-ac36-b8af8f477736-attachment.txt | 5 + ...4c17-4faf-adb6-fe4879c8e73a-container.json | 1 + ...240b-4e00-a3b1-d9fb0e763a3e-attachment.txt | 4 + ...1052-4899-abc1-1f175d82c9fc-container.json | 1 + ...1b-0499-4883-be3a-1437aab7cada-result.json | 1 + ...47-b219-4412-99d0-3f641e8ca5ed-result.json | 1 + ...cd95-4285-aebb-14ae359110d8-container.json | 1 + ...0660-4ba5-9d92-d3b1a9a19399-container.json | 1 + ...50-04dd-4f63-adfd-d95022721bbc-result.json | 1 + ...d95e-484f-80c3-780fea819e00-container.json | 1 + ...7c-6d2a-4484-a5af-9beab5642d35-result.json | 1 + ...564c-41b4-aab7-4d4fa36b8fb4-attachment.txt | 4 + ...514b-497c-bee1-5ef401bf107b-container.json | 1 + ...ce2f-4edd-b1d0-a2d9e9ec26ba-container.json | 1 + ...19a5-4f8d-b800-35e3ceda5de3-container.json | 1 + ...f605-41d3-9845-b322175a90f7-container.json | 1 + ...55ef-4b42-840b-9c8e11a3929f-container.json | 1 + ...dc90-4446-bbe2-91f8d067e67a-container.json | 1 + ...51-4df7-4afe-8644-34291ed2f78e-result.json | 1 + ...6d89-4b87-9d25-6de0bef5a6fd-container.json | 1 + ...8704-4551-9dcf-db1602c70544-container.json | 1 + ...6caa-4b1a-b2c9-025d15276b05-container.json | 1 + ...0b5e-4e1d-833d-f6390c816f7a-container.json | 1 + ...2c56-4edd-933b-8d86eb03e4f2-container.json | 1 + ...04-cd1d-4fbc-b5fa-e28e0723c082-result.json | 1 + ...851e-4a12-b06b-37e19b3cff46-attachment.txt | 5 + ...008a-442c-a39d-2b93324b13bb-container.json | 1 + ...2cb6-4900-ac64-a27b959434ed-container.json | 1 + ...3839-4f49-8ac2-d60c384f1b48-container.json | 1 + ...a5-d5a4-4439-a9a6-5ebcbe97703f-result.json | 1 + ...9797-4252-b43b-291b80b747e7-container.json | 1 + ...ca87-4698-96ce-1d6ca6465536-container.json | 1 + ...5f-f0cb-4fab-9945-2ab61937df75-result.json | 1 + ...8022-4b94-b7e9-319472121bc4-container.json | 1 + ...b14b-45b9-b255-c7aae30a9046-container.json | 1 + ...4f69-4434-b4e9-1e2d46670260-container.json | 1 + ...6c9e-4997-a139-68e1fee6e76b-container.json | 1 + ...b1-e1bd-4581-9837-648ec03fd883-result.json | 1 + ...d8-a40c-4e3b-bb25-1b5004e1663f-result.json | 1 + ...9aee-4dea-bec8-7afd637e520b-container.json | 1 + ...152d-424d-ba3f-2134bba22eaa-container.json | 1 + ...c627-41e4-aefa-e49e25f01db3-container.json | 1 + ...dc3f-4386-a575-271b40348d06-container.json | 1 + ...97f5-4d7f-ac68-71a191bd7b0f-container.json | 1 + ...77dd-4de1-af8e-7c2d7c920f7f-container.json | 1 + ...96da-486c-9a76-604f3e288525-container.json | 1 + ...e39a-46a0-ae26-7dd860d86f5f-container.json | 1 + ...4c54-4e54-825c-a45264003bd2-container.json | 1 + ...0d9a-46c7-9201-0e9548dd4fd8-container.json | 1 + ...d3f5-4cf7-b4bb-3b3fbb2e9f83-container.json | 1 + ...0698-4e0e-a36c-1f1dd583a4f2-container.json | 1 + ...2e3f-4a11-822b-7f89660a4820-container.json | 1 + ...c95c-489f-ad0a-f03e2db3e30a-container.json | 1 + ...86d3-4853-a10b-928e61dba7d7-container.json | 1 + ...40f9-46b8-b14e-f22fffb22569-container.json | 1 + config/config.py | 9 ++ core/.DS_Store | Bin 0 -> 8196 bytes core/base_page.py | 0 core/browser.py | 0 core/constants.py | 0 core/driver_factory.py | 0 pages/.DS_Store | Bin 0 -> 6148 bytes tests/conftest.py | 95 +++++++++++++++++- tests/e2e/test_cart.py | 49 ++++++--- tests/e2e/test_checkout.py | 7 ++ tests/e2e/test_inventory.py | 43 +++++--- tests/e2e/test_login.py | 27 +++-- 84 files changed, 367 insertions(+), 33 deletions(-) create mode 100644 .DS_Store create mode 100644 .github/workflows/playwright-tests.yml create mode 100644 allure-results/0c39a498-732f-41e1-b950-667da9c2395d-container.json create mode 100644 allure-results/0de3babc-ec56-4b22-9597-3f72e2cee488-container.json create mode 100644 allure-results/10f9bd20-3ac5-4f26-8eb4-dd032e72ca04-container.json create mode 100644 allure-results/178679fa-5d11-4e8b-be2c-c60a07fe1b04-container.json create mode 100644 allure-results/1cadca75-9ddc-4f9b-87e4-b85b52a8ec7e-container.json create mode 100644 allure-results/1f57208f-c1c0-4b6f-b108-3b64b0915641-attachment.txt create mode 100644 allure-results/2000b371-ba7a-436b-932b-f345910afc3c-attachment.txt create mode 100644 allure-results/20df2670-3f2c-4c2b-be45-9197d50f9bb8-container.json create mode 100644 allure-results/233bbece-169f-4a84-9243-7823df3eb1f9-result.json create mode 100644 allure-results/260255c4-1ca1-4762-85f7-0f8eb16137b0-attachment.txt create mode 100644 allure-results/2cbafb84-4a49-476e-abec-fad0a664ee9f-attachment.txt create mode 100644 allure-results/2ceb3038-1b56-4c2e-b4f3-cd9d666396cc-container.json create mode 100644 allure-results/30197113-c488-4c25-bda5-6bb4199fc786-container.json create mode 100644 allure-results/305cc8cf-e1e8-4207-8139-e91080fd5053-container.json create mode 100644 allure-results/31e6752b-9d2f-42e2-8846-66a1371e7167-container.json create mode 100644 allure-results/35962b8c-1423-4209-ac36-b8af8f477736-attachment.txt create mode 100644 allure-results/3d530110-4c17-4faf-adb6-fe4879c8e73a-container.json create mode 100644 allure-results/3daa6615-240b-4e00-a3b1-d9fb0e763a3e-attachment.txt create mode 100644 allure-results/3f76f0a7-1052-4899-abc1-1f175d82c9fc-container.json create mode 100644 allure-results/4042bc1b-0499-4883-be3a-1437aab7cada-result.json create mode 100644 allure-results/41507e47-b219-4412-99d0-3f641e8ca5ed-result.json create mode 100644 allure-results/4701d9c3-cd95-4285-aebb-14ae359110d8-container.json create mode 100644 allure-results/4c398620-0660-4ba5-9d92-d3b1a9a19399-container.json create mode 100644 allure-results/4d60c450-04dd-4f63-adfd-d95022721bbc-result.json create mode 100644 allure-results/4f618868-d95e-484f-80c3-780fea819e00-container.json create mode 100644 allure-results/50988c7c-6d2a-4484-a5af-9beab5642d35-result.json create mode 100644 allure-results/52d244b6-564c-41b4-aab7-4d4fa36b8fb4-attachment.txt create mode 100644 allure-results/543e64d5-514b-497c-bee1-5ef401bf107b-container.json create mode 100644 allure-results/5b44244e-ce2f-4edd-b1d0-a2d9e9ec26ba-container.json create mode 100644 allure-results/5d71525f-19a5-4f8d-b800-35e3ceda5de3-container.json create mode 100644 allure-results/62772598-f605-41d3-9845-b322175a90f7-container.json create mode 100644 allure-results/633bbcfe-55ef-4b42-840b-9c8e11a3929f-container.json create mode 100644 allure-results/6555620d-dc90-4446-bbe2-91f8d067e67a-container.json create mode 100644 allure-results/660be751-4df7-4afe-8644-34291ed2f78e-result.json create mode 100644 allure-results/6abd6053-6d89-4b87-9d25-6de0bef5a6fd-container.json create mode 100644 allure-results/6ec0fa17-8704-4551-9dcf-db1602c70544-container.json create mode 100644 allure-results/6f7dca04-6caa-4b1a-b2c9-025d15276b05-container.json create mode 100644 allure-results/74d458cc-0b5e-4e1d-833d-f6390c816f7a-container.json create mode 100644 allure-results/7796880f-2c56-4edd-933b-8d86eb03e4f2-container.json create mode 100644 allure-results/79b76304-cd1d-4fbc-b5fa-e28e0723c082-result.json create mode 100644 allure-results/7a1b2851-851e-4a12-b06b-37e19b3cff46-attachment.txt create mode 100644 allure-results/7b55e7fd-008a-442c-a39d-2b93324b13bb-container.json create mode 100644 allure-results/80f57a8d-2cb6-4900-ac64-a27b959434ed-container.json create mode 100644 allure-results/85a1deb6-3839-4f49-8ac2-d60c384f1b48-container.json create mode 100644 allure-results/86ee44a5-d5a4-4439-a9a6-5ebcbe97703f-result.json create mode 100644 allure-results/893a79be-9797-4252-b43b-291b80b747e7-container.json create mode 100644 allure-results/89810f2a-ca87-4698-96ce-1d6ca6465536-container.json create mode 100644 allure-results/9979825f-f0cb-4fab-9945-2ab61937df75-result.json create mode 100644 allure-results/9ae268dd-8022-4b94-b7e9-319472121bc4-container.json create mode 100644 allure-results/9c331b31-b14b-45b9-b255-c7aae30a9046-container.json create mode 100644 allure-results/9c5938c7-4f69-4434-b4e9-1e2d46670260-container.json create mode 100644 allure-results/9ec44036-6c9e-4997-a139-68e1fee6e76b-container.json create mode 100644 allure-results/9f584ab1-e1bd-4581-9837-648ec03fd883-result.json create mode 100644 allure-results/a14672d8-a40c-4e3b-bb25-1b5004e1663f-result.json create mode 100644 allure-results/a65b44fd-9aee-4dea-bec8-7afd637e520b-container.json create mode 100644 allure-results/b74ce12c-152d-424d-ba3f-2134bba22eaa-container.json create mode 100644 allure-results/b8fa2057-c627-41e4-aefa-e49e25f01db3-container.json create mode 100644 allure-results/bfb2adce-dc3f-4386-a575-271b40348d06-container.json create mode 100644 allure-results/c1324b51-97f5-4d7f-ac68-71a191bd7b0f-container.json create mode 100644 allure-results/c47f5eff-77dd-4de1-af8e-7c2d7c920f7f-container.json create mode 100644 allure-results/c8e33a24-96da-486c-9a76-604f3e288525-container.json create mode 100644 allure-results/ca04d0eb-e39a-46a0-ae26-7dd860d86f5f-container.json create mode 100644 allure-results/d7b3def8-4c54-4e54-825c-a45264003bd2-container.json create mode 100644 allure-results/dab6dc1a-0d9a-46c7-9201-0e9548dd4fd8-container.json create mode 100644 allure-results/db6f8131-d3f5-4cf7-b4bb-3b3fbb2e9f83-container.json create mode 100644 allure-results/e27acb6d-0698-4e0e-a36c-1f1dd583a4f2-container.json create mode 100644 allure-results/e361e4bb-2e3f-4a11-822b-7f89660a4820-container.json create mode 100644 allure-results/e7de4516-c95c-489f-ad0a-f03e2db3e30a-container.json create mode 100644 allure-results/fad35c27-86d3-4853-a10b-928e61dba7d7-container.json create mode 100644 allure-results/fe817e32-40f9-46b8-b14e-f22fffb22569-container.json create mode 100644 core/.DS_Store create mode 100644 core/base_page.py create mode 100644 core/browser.py create mode 100644 core/constants.py create mode 100644 core/driver_factory.py create mode 100644 pages/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b15b6459c9b5839f256e4d15a0e2d6a212dffed6 GIT binary patch literal 8196 zcmeHM&u<$=6n^76&2CNGO`C*Jfn?Peq_#;2rBa1ZjhhO>uS9Vu32ia!^~7GX*)hB8 zxFL$6Xf{N| zDxJn_L~}%B;gZ%VpgN|=c6p7JoOv<}%fKh{sksseuO5i{7&?29DUd0UDUd0UDUd1f zUr+#hwk*~O`@U|?>P&%5fm5k~%nwCe(w2?wX{%BPDs=>a&Ev5u@No`MoT9O1V|&^v zD*Du?2WF_u95I-tqrE8Muw`R=+G;v6O($mF%*+XeskehyRB&QtZL>O4AX8vm0eN;m zOCAXdX*+d(mrJRFYyPP!id-0A6XFz8Li5z7{h?F8Wc~DPtaeiWpc5w%(985OdgBzK zUOQW5s= z^vG`@V)-7~M;Gl8-nD?SoDd^M`;i?%g)qmNX^)gv3#hFwi*lUIz0cnbGj3TLVL zd5nHL7%3tc#ph%~9G)DTc1jgx8*<0hbx3*1q}~qvI9Xi$jpfed zC(ce^Ri|}8+b$Do7Go^($*K0e$ZYaJ+ z1SrgGWOQEN59)8=r8MxpJrfoCwI9_Vj?<6JK390*{Dq6o)TPT)(^E4uGqW$wy>#Wu z%Qfe6-Su{wksR+`5s0V~boi$4iLmN_#WxfFIFU}xxs<}K^TuaKk2dz(z)T-KP<_1< zaUMQsMt);;dpqXI=8(Ttb1ueSB!XZ~#D3z7aO+_VsaF!dyAo~-ym1dQueN1Ve4j@# z>={I5k7W3H`nxE@W^(&@7V^|C)HPw67C=5i{M2loOYB79?CGRWm zDBaB?5g-|iE)SIihL?w}Qw0{2Od8(!BG1WmFw7_*m3oRL6Kkvz=h!losexS>N)0wf zqtikS=~||4cXVVjF^n**0pnP_Oba9Ui2?qYl#oJpfc267Qb?)J2oj;6=5j^{KPS)s z_fG!)f0`xAV$T%#-z&iK%hhFMbhYCg7cKH86>)uzOBT5^^|V!68!8Er&((1pcJL2F f_(juJHnyiNT2P+Xhk$JVS6^zf{a^hGPha&9", "start": 1784972666774}], "start": 1784972657470, "stop": 1784972666774} \ No newline at end of file diff --git a/allure-results/0de3babc-ec56-4b22-9597-3f72e2cee488-container.json b/allure-results/0de3babc-ec56-4b22-9597-3f72e2cee488-container.json new file mode 100644 index 0000000..e10016b --- /dev/null +++ b/allure-results/0de3babc-ec56-4b22-9597-3f72e2cee488-container.json @@ -0,0 +1 @@ +{"uuid": "2d2c7f70-6690-4bf3-a219-91a262457411", "children": ["799572c8-7c98-486f-8b0f-1619ecce312a", "a21733f1-46a9-4386-84e5-51882bea3fc2", "d2771ee5-ebfb-4c91-b9bf-e1f2fd9898fa", "7eb30509-d9b5-44e4-9fc6-15a1286f53c4", "39b5b3aa-ae1b-4e88-b2db-15bd7a6d31a1", "a83e51ed-203f-4d44-8e52-6437b6a1d5b3", "b3785c7a-0c91-4f3d-98e4-88788e780814", "fc36974f-f71e-44d1-8334-955ea164560e"], "befores": [{"name": "pytestconfig", "status": "passed", "start": 1784972654828, "stop": 1784972654828}], "afters": [{"name": "pytestconfig::", "start": 1784972666825}], "start": 1784972654828, "stop": 1784972666825} \ No newline at end of file diff --git a/allure-results/10f9bd20-3ac5-4f26-8eb4-dd032e72ca04-container.json b/allure-results/10f9bd20-3ac5-4f26-8eb4-dd032e72ca04-container.json new file mode 100644 index 0000000..ea53b35 --- /dev/null +++ b/allure-results/10f9bd20-3ac5-4f26-8eb4-dd032e72ca04-container.json @@ -0,0 +1 @@ +{"uuid": "8cc064c8-702d-44ae-b542-8686d5e91b4a", "children": ["83945fcc-d8fc-4b0f-9a54-8e43b052fd9c", "bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8", "0d3a97b2-2d02-4265-9ebd-2e0e6dfc5eb2"], "befores": [{"name": "playwright", "status": "passed", "start": 1784972654828, "stop": 1784972654953}], "afters": [{"name": "playwright::1", "status": "passed", "start": 1784972671061, "stop": 1784972671068}, {"name": "playwright::", "start": 1784972671068}], "start": 1784972654828, "stop": 1784972671068} \ No newline at end of file diff --git a/allure-results/178679fa-5d11-4e8b-be2c-c60a07fe1b04-container.json b/allure-results/178679fa-5d11-4e8b-be2c-c60a07fe1b04-container.json new file mode 100644 index 0000000..d0beafc --- /dev/null +++ b/allure-results/178679fa-5d11-4e8b-be2c-c60a07fe1b04-container.json @@ -0,0 +1 @@ +{"uuid": "0a6514cb-3ab5-4418-aabd-cf17096a0b90", "children": ["799572c8-7c98-486f-8b0f-1619ecce312a", "a21733f1-46a9-4386-84e5-51882bea3fc2", "d2771ee5-ebfb-4c91-b9bf-e1f2fd9898fa", "7eb30509-d9b5-44e4-9fc6-15a1286f53c4", "39b5b3aa-ae1b-4e88-b2db-15bd7a6d31a1", "a83e51ed-203f-4d44-8e52-6437b6a1d5b3", "b3785c7a-0c91-4f3d-98e4-88788e780814", "fc36974f-f71e-44d1-8334-955ea164560e"], "befores": [{"name": "config", "status": "passed", "start": 1784972654953, "stop": 1784972654954}], "afters": [{"name": "config::", "start": 1784972666819}], "start": 1784972654953, "stop": 1784972666819} \ No newline at end of file diff --git a/allure-results/1cadca75-9ddc-4f9b-87e4-b85b52a8ec7e-container.json b/allure-results/1cadca75-9ddc-4f9b-87e4-b85b52a8ec7e-container.json new file mode 100644 index 0000000..21164b6 --- /dev/null +++ b/allure-results/1cadca75-9ddc-4f9b-87e4-b85b52a8ec7e-container.json @@ -0,0 +1 @@ +{"uuid": "6e88dd67-7472-4066-9e60-6796860ef53d", "children": ["d2771ee5-ebfb-4c91-b9bf-e1f2fd9898fa"], "befores": [{"name": "page", "status": "passed", "start": 1784972662628, "stop": 1784972662729}], "afters": [{"name": "page::1", "status": "passed", "start": 1784972666247, "stop": 1784972666255}, {"name": "page::", "start": 1784972666255}], "start": 1784972662628, "stop": 1784972666255} \ No newline at end of file diff --git a/allure-results/1f57208f-c1c0-4b6f-b108-3b64b0915641-attachment.txt b/allure-results/1f57208f-c1c0-4b6f-b108-3b64b0915641-attachment.txt new file mode 100644 index 0000000..7147787 --- /dev/null +++ b/allure-results/1f57208f-c1c0-4b6f-b108-3b64b0915641-attachment.txt @@ -0,0 +1,4 @@ +2026-07-25 15:14:17,435 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-25 15:14:19,643 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-25 15:14:19,643 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Backpack +2026-07-25 15:14:20,362 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Backpack diff --git a/allure-results/2000b371-ba7a-436b-932b-f345910afc3c-attachment.txt b/allure-results/2000b371-ba7a-436b-932b-f345910afc3c-attachment.txt new file mode 100644 index 0000000..61c6577 --- /dev/null +++ b/allure-results/2000b371-ba7a-436b-932b-f345910afc3c-attachment.txt @@ -0,0 +1,4 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Backpack +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Backpack \ No newline at end of file diff --git a/allure-results/20df2670-3f2c-4c2b-be45-9197d50f9bb8-container.json b/allure-results/20df2670-3f2c-4c2b-be45-9197d50f9bb8-container.json new file mode 100644 index 0000000..c8b75d1 --- /dev/null +++ b/allure-results/20df2670-3f2c-4c2b-be45-9197d50f9bb8-container.json @@ -0,0 +1 @@ +{"uuid": "6aa100d5-155e-481f-b9de-1dd7e0da64de", "children": ["b3785c7a-0c91-4f3d-98e4-88788e780814"], "befores": [{"name": "page", "status": "passed", "start": 1784972666589, "stop": 1784972666661}], "afters": [{"name": "page::1", "status": "passed", "start": 1784972666662, "stop": 1784972666667}, {"name": "page::", "start": 1784972666667}], "start": 1784972666589, "stop": 1784972666667} \ No newline at end of file diff --git a/allure-results/233bbece-169f-4a84-9243-7823df3eb1f9-result.json b/allure-results/233bbece-169f-4a84-9243-7823df3eb1f9-result.json new file mode 100644 index 0000000..e036446 --- /dev/null +++ b/allure-results/233bbece-169f-4a84-9243-7823df3eb1f9-result.json @@ -0,0 +1 @@ +{"name": "test_report_configuration", "status": "passed", "start": 1784972666568, "stop": 1784972666568, "uuid": "a83e51ed-203f-4d44-8e52-6437b6a1d5b3", "historyId": "41e63037d2613349090a216040cde46e", "testCaseId": "41e63037d2613349090a216040cde46e", "fullName": "tests.unit.test_config_manager#test_report_configuration", "labels": [{"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "76605-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/260255c4-1ca1-4762-85f7-0f8eb16137b0-attachment.txt b/allure-results/260255c4-1ca1-4762-85f7-0f8eb16137b0-attachment.txt new file mode 100644 index 0000000..1695335 --- /dev/null +++ b/allure-results/260255c4-1ca1-4762-85f7-0f8eb16137b0-attachment.txt @@ -0,0 +1,2 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user \ No newline at end of file diff --git a/allure-results/2cbafb84-4a49-476e-abec-fad0a664ee9f-attachment.txt b/allure-results/2cbafb84-4a49-476e-abec-fad0a664ee9f-attachment.txt new file mode 100644 index 0000000..9c7dfd6 --- /dev/null +++ b/allure-results/2cbafb84-4a49-476e-abec-fad0a664ee9f-attachment.txt @@ -0,0 +1,2 @@ +2026-07-25 15:14:24,001 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-25 15:14:26,244 | INFO | pages.login_page | Login action completed for username standard_user diff --git a/allure-results/2ceb3038-1b56-4c2e-b4f3-cd9d666396cc-container.json b/allure-results/2ceb3038-1b56-4c2e-b4f3-cd9d666396cc-container.json new file mode 100644 index 0000000..55b84ea --- /dev/null +++ b/allure-results/2ceb3038-1b56-4c2e-b4f3-cd9d666396cc-container.json @@ -0,0 +1 @@ +{"uuid": "f901b648-f80d-425b-938f-0f4dfc0df391", "children": ["7eb30509-d9b5-44e4-9fc6-15a1286f53c4"], "befores": [{"name": "context", "status": "passed", "start": 1784972666280, "stop": 1784972666288}], "afters": [{"name": "context::1", "status": "passed", "start": 1784972666372, "stop": 1784972666383}, {"name": "context::", "start": 1784972666383}], "start": 1784972666280, "stop": 1784972666383} \ No newline at end of file diff --git a/allure-results/30197113-c488-4c25-bda5-6bb4199fc786-container.json b/allure-results/30197113-c488-4c25-bda5-6bb4199fc786-container.json new file mode 100644 index 0000000..080a19d --- /dev/null +++ b/allure-results/30197113-c488-4c25-bda5-6bb4199fc786-container.json @@ -0,0 +1 @@ +{"uuid": "52d520fe-62cb-44bf-b3c6-06927f1bae1c", "children": ["83945fcc-d8fc-4b0f-9a54-8e43b052fd9c", "bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8", "0d3a97b2-2d02-4265-9ebd-2e0e6dfc5eb2"], "befores": [{"name": "config", "status": "passed", "start": 1784972654953, "stop": 1784972654954}], "afters": [{"name": "config::", "start": 1784972671061}], "start": 1784972654953, "stop": 1784972671061} \ No newline at end of file diff --git a/allure-results/305cc8cf-e1e8-4207-8139-e91080fd5053-container.json b/allure-results/305cc8cf-e1e8-4207-8139-e91080fd5053-container.json new file mode 100644 index 0000000..3461f8e --- /dev/null +++ b/allure-results/305cc8cf-e1e8-4207-8139-e91080fd5053-container.json @@ -0,0 +1 @@ +{"uuid": "48f8efdc-096e-48a0-99f4-19315a943e44", "children": ["83945fcc-d8fc-4b0f-9a54-8e43b052fd9c", "bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8", "0d3a97b2-2d02-4265-9ebd-2e0e6dfc5eb2"], "befores": [{"name": "delete_output_dir", "status": "passed", "start": 1784972654828, "stop": 1784972654828}], "afters": [{"name": "delete_output_dir::", "start": 1784972671069}], "start": 1784972654828, "stop": 1784972671069} \ No newline at end of file diff --git a/allure-results/31e6752b-9d2f-42e2-8846-66a1371e7167-container.json b/allure-results/31e6752b-9d2f-42e2-8846-66a1371e7167-container.json new file mode 100644 index 0000000..2c05c32 --- /dev/null +++ b/allure-results/31e6752b-9d2f-42e2-8846-66a1371e7167-container.json @@ -0,0 +1 @@ +{"uuid": "8064b0e0-62df-480c-9758-85ce7c31982e", "children": ["799572c8-7c98-486f-8b0f-1619ecce312a"], "befores": [{"name": "page", "status": "passed", "start": 1784972655274, "stop": 1784972655451}], "afters": [{"name": "page::1", "status": "passed", "start": 1784972657430, "stop": 1784972657444}, {"name": "page::", "start": 1784972657444}], "start": 1784972655274, "stop": 1784972657444} \ No newline at end of file diff --git a/allure-results/35962b8c-1423-4209-ac36-b8af8f477736-attachment.txt b/allure-results/35962b8c-1423-4209-ac36-b8af8f477736-attachment.txt new file mode 100644 index 0000000..df35693 --- /dev/null +++ b/allure-results/35962b8c-1423-4209-ac36-b8af8f477736-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Backpack +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Backpack \ No newline at end of file diff --git a/allure-results/3d530110-4c17-4faf-adb6-fe4879c8e73a-container.json b/allure-results/3d530110-4c17-4faf-adb6-fe4879c8e73a-container.json new file mode 100644 index 0000000..d7cb4f3 --- /dev/null +++ b/allure-results/3d530110-4c17-4faf-adb6-fe4879c8e73a-container.json @@ -0,0 +1 @@ +{"uuid": "3ec24938-b734-4945-a669-72658182ac4c", "children": ["bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1784972665636, "stop": 1784972665636}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1784972670870, "stop": 1784972670870}, {"name": "capture_failure_artifacts::", "start": 1784972670870}], "start": 1784972665636, "stop": 1784972670870} \ No newline at end of file diff --git a/allure-results/3daa6615-240b-4e00-a3b1-d9fb0e763a3e-attachment.txt b/allure-results/3daa6615-240b-4e00-a3b1-d9fb0e763a3e-attachment.txt new file mode 100644 index 0000000..61c6577 --- /dev/null +++ b/allure-results/3daa6615-240b-4e00-a3b1-d9fb0e763a3e-attachment.txt @@ -0,0 +1,4 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Backpack +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Backpack \ No newline at end of file diff --git a/allure-results/3f76f0a7-1052-4899-abc1-1f175d82c9fc-container.json b/allure-results/3f76f0a7-1052-4899-abc1-1f175d82c9fc-container.json new file mode 100644 index 0000000..5903ca2 --- /dev/null +++ b/allure-results/3f76f0a7-1052-4899-abc1-1f175d82c9fc-container.json @@ -0,0 +1 @@ +{"uuid": "f67e1d77-eae6-4fdf-8e97-65b6762b47ee", "children": ["799572c8-7c98-486f-8b0f-1619ecce312a", "a21733f1-46a9-4386-84e5-51882bea3fc2", "d2771ee5-ebfb-4c91-b9bf-e1f2fd9898fa", "7eb30509-d9b5-44e4-9fc6-15a1286f53c4", "39b5b3aa-ae1b-4e88-b2db-15bd7a6d31a1", "a83e51ed-203f-4d44-8e52-6437b6a1d5b3", "b3785c7a-0c91-4f3d-98e4-88788e780814", "fc36974f-f71e-44d1-8334-955ea164560e"], "befores": [{"name": "playwright", "status": "passed", "start": 1784972654828, "stop": 1784972654953}], "afters": [{"name": "playwright::1", "status": "passed", "start": 1784972666819, "stop": 1784972666825}, {"name": "playwright::", "start": 1784972666825}], "start": 1784972654828, "stop": 1784972666825} \ No newline at end of file diff --git a/allure-results/4042bc1b-0499-4883-be3a-1437aab7cada-result.json b/allure-results/4042bc1b-0499-4883-be3a-1437aab7cada-result.json new file mode 100644 index 0000000..388c44e --- /dev/null +++ b/allure-results/4042bc1b-0499-4883-be3a-1437aab7cada-result.json @@ -0,0 +1 @@ +{"name": "test_empty_configuration_key_raises_error", "status": "passed", "start": 1784972666662, "stop": 1784972666662, "uuid": "b3785c7a-0c91-4f3d-98e4-88788e780814", "historyId": "efe7d96fc91d70c7d073cb3cb5c0ad99", "testCaseId": "efe7d96fc91d70c7d073cb3cb5c0ad99", "fullName": "tests.unit.test_config_manager#test_empty_configuration_key_raises_error", "labels": [{"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "76605-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/41507e47-b219-4412-99d0-3f641e8ca5ed-result.json b/allure-results/41507e47-b219-4412-99d0-3f641e8ca5ed-result.json new file mode 100644 index 0000000..ab4cd8f --- /dev/null +++ b/allure-results/41507e47-b219-4412-99d0-3f641e8ca5ed-result.json @@ -0,0 +1 @@ +{"name": "Verify selected product is displayed in cart", "status": "passed", "description": "Verify that a selected product appears correctly in the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1784972657568, "stop": 1784972658874}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1784972658874, "stop": 1784972658874}, {"name": "Login with valid credentials", "status": "passed", "start": 1784972658874, "stop": 1784972661094}, {"name": "Retrieve product name", "status": "passed", "start": 1784972661095, "stop": 1784972661095}, {"name": "Add Sauce Labs Backpack to cart", "status": "passed", "start": 1784972661095, "stop": 1784972661826}, {"name": "Open shopping cart", "status": "passed", "start": 1784972661826, "stop": 1784972662594}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1784972662594, "stop": 1784972662594}, {"name": "Verify 'Sauce Labs Backpack' is present in cart", "status": "passed", "start": 1784972662594, "stop": 1784972662599}], "attachments": [{"name": "log", "source": "3daa6615-240b-4e00-a3b1-d9fb0e763a3e-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "52d244b6-564c-41b4-aab7-4d4fa36b8fb4-attachment.txt", "type": "text/plain"}], "start": 1784972657568, "stop": 1784972662599, "uuid": "a21733f1-46a9-4386-84e5-51882bea3fc2", "historyId": "1023375bdd60dd57ece9a953ebf251e0", "testCaseId": "1023375bdd60dd57ece9a953ebf251e0", "fullName": "tests.e2e.test_cart#test_product_is_displayed_in_cart", "labels": [{"name": "epic", "value": "SauceDemo Application"}, {"name": "severity", "value": "critical"}, {"name": "story", "value": "Verify Product in Cart"}, {"name": "feature", "value": "Shopping Cart"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_cart"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "76605-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_cart"}], "titlePath": ["tests", "e2e", "test_cart.py"]} \ No newline at end of file diff --git a/allure-results/4701d9c3-cd95-4285-aebb-14ae359110d8-container.json b/allure-results/4701d9c3-cd95-4285-aebb-14ae359110d8-container.json new file mode 100644 index 0000000..369df74 --- /dev/null +++ b/allure-results/4701d9c3-cd95-4285-aebb-14ae359110d8-container.json @@ -0,0 +1 @@ +{"uuid": "8160dd02-db59-4ad3-85f2-ebba04422db8", "children": ["83945fcc-d8fc-4b0f-9a54-8e43b052fd9c", "bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8", "0d3a97b2-2d02-4265-9ebd-2e0e6dfc5eb2"], "befores": [{"name": "pytestconfig", "status": "passed", "start": 1784972654828, "stop": 1784972654828}], "afters": [{"name": "pytestconfig::", "start": 1784972671069}], "start": 1784972654828, "stop": 1784972671069} \ No newline at end of file diff --git a/allure-results/4c398620-0660-4ba5-9d92-d3b1a9a19399-container.json b/allure-results/4c398620-0660-4ba5-9d92-d3b1a9a19399-container.json new file mode 100644 index 0000000..c51a6eb --- /dev/null +++ b/allure-results/4c398620-0660-4ba5-9d92-d3b1a9a19399-container.json @@ -0,0 +1 @@ +{"uuid": "1e225256-15e2-4a38-a384-c80736c11feb", "children": ["b3785c7a-0c91-4f3d-98e4-88788e780814"], "befores": [{"name": "context", "status": "passed", "start": 1784972666584, "stop": 1784972666589}], "afters": [{"name": "context::1", "status": "passed", "start": 1784972666667, "stop": 1784972666682}, {"name": "context::", "start": 1784972666683}], "start": 1784972666584, "stop": 1784972666683} \ No newline at end of file diff --git a/allure-results/4d60c450-04dd-4f63-adfd-d95022721bbc-result.json b/allure-results/4d60c450-04dd-4f63-adfd-d95022721bbc-result.json new file mode 100644 index 0000000..25aa98c --- /dev/null +++ b/allure-results/4d60c450-04dd-4f63-adfd-d95022721bbc-result.json @@ -0,0 +1 @@ +{"name": "test_browser_launch", "status": "passed", "description": "\nVerify that the configured browser can launch and navigate to the application.\n", "start": 1784972655453, "stop": 1784972657429, "uuid": "799572c8-7c98-486f-8b0f-1619ecce312a", "historyId": "59b5d8399386c636ae239d08cbfa52ef", "testCaseId": "59b5d8399386c636ae239d08cbfa52ef", "fullName": "tests.e2e.test_browser_launch#test_browser_launch", "labels": [{"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_browser_launch"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "76605-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_browser_launch"}], "titlePath": ["tests", "e2e", "test_browser_launch.py"]} \ No newline at end of file diff --git a/allure-results/4f618868-d95e-484f-80c3-780fea819e00-container.json b/allure-results/4f618868-d95e-484f-80c3-780fea819e00-container.json new file mode 100644 index 0000000..6b32db2 --- /dev/null +++ b/allure-results/4f618868-d95e-484f-80c3-780fea819e00-container.json @@ -0,0 +1 @@ +{"uuid": "1c9c2050-6c66-4d76-9a68-8bd3529047a8", "children": ["0d3a97b2-2d02-4265-9ebd-2e0e6dfc5eb2"], "befores": [{"name": "context", "status": "passed", "start": 1784972670913, "stop": 1784972670921}], "afters": [{"name": "context::1", "status": "passed", "start": 1784972671001, "stop": 1784972671013}, {"name": "context::", "start": 1784972671013}], "start": 1784972670913, "stop": 1784972671013} \ No newline at end of file diff --git a/allure-results/50988c7c-6d2a-4484-a5af-9beab5642d35-result.json b/allure-results/50988c7c-6d2a-4484-a5af-9beab5642d35-result.json new file mode 100644 index 0000000..21d65db --- /dev/null +++ b/allure-results/50988c7c-6d2a-4484-a5af-9beab5642d35-result.json @@ -0,0 +1 @@ +{"name": "Verify valid user can login successfully", "status": "passed", "description": "Verify that a valid user can successfully log into the SauceDemo application.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1784972662729, "stop": 1784972664001}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1784972664002, "stop": 1784972664002}, {"name": "Login with valid credentials", "status": "passed", "start": 1784972664002, "stop": 1784972666245}, {"name": "Verify user is successfully logged in", "status": "passed", "start": 1784972666245, "stop": 1784972666245}], "attachments": [{"name": "log", "source": "260255c4-1ca1-4762-85f7-0f8eb16137b0-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "2cbafb84-4a49-476e-abec-fad0a664ee9f-attachment.txt", "type": "text/plain"}], "start": 1784972662729, "stop": 1784972666246, "uuid": "d2771ee5-ebfb-4c91-b9bf-e1f2fd9898fa", "historyId": "5ac5da8f801af0b6d14e8acfcb100ad8", "testCaseId": "5ac5da8f801af0b6d14e8acfcb100ad8", "fullName": "tests.e2e.test_login#test_valid_login", "labels": [{"name": "severity", "value": "critical"}, {"name": "feature", "value": "Authentication"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "story", "value": "Valid User Login"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_login"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "76605-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_login"}], "titlePath": ["tests", "e2e", "test_login.py"]} \ No newline at end of file diff --git a/allure-results/52d244b6-564c-41b4-aab7-4d4fa36b8fb4-attachment.txt b/allure-results/52d244b6-564c-41b4-aab7-4d4fa36b8fb4-attachment.txt new file mode 100644 index 0000000..d448162 --- /dev/null +++ b/allure-results/52d244b6-564c-41b4-aab7-4d4fa36b8fb4-attachment.txt @@ -0,0 +1,4 @@ +2026-07-25 15:14:18,874 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-25 15:14:21,093 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-25 15:14:21,094 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Backpack +2026-07-25 15:14:21,825 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Backpack diff --git a/allure-results/543e64d5-514b-497c-bee1-5ef401bf107b-container.json b/allure-results/543e64d5-514b-497c-bee1-5ef401bf107b-container.json new file mode 100644 index 0000000..ba50814 --- /dev/null +++ b/allure-results/543e64d5-514b-497c-bee1-5ef401bf107b-container.json @@ -0,0 +1 @@ +{"uuid": "e2b265b0-558c-4bc3-b891-ccaa1c7ca554", "children": ["799572c8-7c98-486f-8b0f-1619ecce312a", "a21733f1-46a9-4386-84e5-51882bea3fc2", "d2771ee5-ebfb-4c91-b9bf-e1f2fd9898fa", "7eb30509-d9b5-44e4-9fc6-15a1286f53c4", "39b5b3aa-ae1b-4e88-b2db-15bd7a6d31a1", "a83e51ed-203f-4d44-8e52-6437b6a1d5b3", "b3785c7a-0c91-4f3d-98e4-88788e780814", "fc36974f-f71e-44d1-8334-955ea164560e"], "befores": [{"name": "delete_output_dir", "status": "passed", "start": 1784972654828, "stop": 1784972654828}], "afters": [{"name": "delete_output_dir::", "start": 1784972666825}], "start": 1784972654828, "stop": 1784972666825} \ No newline at end of file diff --git a/allure-results/5b44244e-ce2f-4edd-b1d0-a2d9e9ec26ba-container.json b/allure-results/5b44244e-ce2f-4edd-b1d0-a2d9e9ec26ba-container.json new file mode 100644 index 0000000..ae14403 --- /dev/null +++ b/allure-results/5b44244e-ce2f-4edd-b1d0-a2d9e9ec26ba-container.json @@ -0,0 +1 @@ +{"uuid": "40ae8160-b3cc-4e3f-847f-d2fc6ff9bc28", "children": ["7eb30509-d9b5-44e4-9fc6-15a1286f53c4"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1784972666367, "stop": 1784972666367}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1784972666368, "stop": 1784972666368}, {"name": "capture_failure_artifacts::", "start": 1784972666368}], "start": 1784972666367, "stop": 1784972666368} \ No newline at end of file diff --git a/allure-results/5d71525f-19a5-4f8d-b800-35e3ceda5de3-container.json b/allure-results/5d71525f-19a5-4f8d-b800-35e3ceda5de3-container.json new file mode 100644 index 0000000..0bbfd1b --- /dev/null +++ b/allure-results/5d71525f-19a5-4f8d-b800-35e3ceda5de3-container.json @@ -0,0 +1 @@ +{"uuid": "c67547b0-a0be-4738-b81d-d41f24ec8d74", "children": ["d2771ee5-ebfb-4c91-b9bf-e1f2fd9898fa"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1784972662729, "stop": 1784972662729}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1784972666246, "stop": 1784972666246}, {"name": "capture_failure_artifacts::", "start": 1784972666246}], "start": 1784972662729, "stop": 1784972666246} \ No newline at end of file diff --git a/allure-results/62772598-f605-41d3-9845-b322175a90f7-container.json b/allure-results/62772598-f605-41d3-9845-b322175a90f7-container.json new file mode 100644 index 0000000..f599693 --- /dev/null +++ b/allure-results/62772598-f605-41d3-9845-b322175a90f7-container.json @@ -0,0 +1 @@ +{"uuid": "61e93158-c5f1-4c04-b16a-0f7d4cc5c27e", "children": ["0d3a97b2-2d02-4265-9ebd-2e0e6dfc5eb2"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1784972670994, "stop": 1784972670994}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1784972670995, "stop": 1784972670995}, {"name": "capture_failure_artifacts::", "start": 1784972670995}], "start": 1784972670994, "stop": 1784972670995} \ No newline at end of file diff --git a/allure-results/633bbcfe-55ef-4b42-840b-9c8e11a3929f-container.json b/allure-results/633bbcfe-55ef-4b42-840b-9c8e11a3929f-container.json new file mode 100644 index 0000000..d6a79a1 --- /dev/null +++ b/allure-results/633bbcfe-55ef-4b42-840b-9c8e11a3929f-container.json @@ -0,0 +1 @@ +{"uuid": "919e92d9-08ee-49b4-89ab-12304d700528", "children": ["799572c8-7c98-486f-8b0f-1619ecce312a", "a21733f1-46a9-4386-84e5-51882bea3fc2", "d2771ee5-ebfb-4c91-b9bf-e1f2fd9898fa", "7eb30509-d9b5-44e4-9fc6-15a1286f53c4", "39b5b3aa-ae1b-4e88-b2db-15bd7a6d31a1", "a83e51ed-203f-4d44-8e52-6437b6a1d5b3", "b3785c7a-0c91-4f3d-98e4-88788e780814", "fc36974f-f71e-44d1-8334-955ea164560e"], "befores": [{"name": "_verify_url", "status": "passed", "start": 1784972654828, "stop": 1784972654828}], "afters": [{"name": "_verify_url::", "start": 1784972666825}], "start": 1784972654828, "stop": 1784972666825} \ No newline at end of file diff --git a/allure-results/6555620d-dc90-4446-bbe2-91f8d067e67a-container.json b/allure-results/6555620d-dc90-4446-bbe2-91f8d067e67a-container.json new file mode 100644 index 0000000..e5b7e9c --- /dev/null +++ b/allure-results/6555620d-dc90-4446-bbe2-91f8d067e67a-container.json @@ -0,0 +1 @@ +{"uuid": "37c26754-b1eb-40b5-8cad-1b4355e3ad14", "children": ["83945fcc-d8fc-4b0f-9a54-8e43b052fd9c", "bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8"], "befores": [{"name": "test_data", "status": "passed", "start": 1784972655264, "stop": 1784972655264}], "afters": [{"name": "test_data::", "start": 1784972671013}], "start": 1784972655264, "stop": 1784972671013} \ No newline at end of file diff --git a/allure-results/660be751-4df7-4afe-8644-34291ed2f78e-result.json b/allure-results/660be751-4df7-4afe-8644-34291ed2f78e-result.json new file mode 100644 index 0000000..9b6515b --- /dev/null +++ b/allure-results/660be751-4df7-4afe-8644-34291ed2f78e-result.json @@ -0,0 +1 @@ +{"name": "Verify valid user can login successfully", "status": "passed", "description": "Verify that a valid user can successfully log into the SauceDemo application.", "attachments": [{"name": "log", "source": "2000b371-ba7a-436b-932b-f345910afc3c-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "1f57208f-c1c0-4b6f-b108-3b64b0915641-attachment.txt", "type": "text/plain"}], "start": 1784972655482, "stop": 1784972665528, "uuid": "83945fcc-d8fc-4b0f-9a54-8e43b052fd9c", "historyId": "6327861429a6ad237647b2479feceb98", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "severity", "value": "critical"}, {"name": "feature", "value": "Checkout"}, {"name": "story", "value": "Valid User Login"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "76606-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/6abd6053-6d89-4b87-9d25-6de0bef5a6fd-container.json b/allure-results/6abd6053-6d89-4b87-9d25-6de0bef5a6fd-container.json new file mode 100644 index 0000000..2cf831e --- /dev/null +++ b/allure-results/6abd6053-6d89-4b87-9d25-6de0bef5a6fd-container.json @@ -0,0 +1 @@ +{"uuid": "8c10eaee-8b2e-4bc1-88a5-f30ae11f0e5a", "children": ["799572c8-7c98-486f-8b0f-1619ecce312a", "a21733f1-46a9-4386-84e5-51882bea3fc2", "d2771ee5-ebfb-4c91-b9bf-e1f2fd9898fa", "7eb30509-d9b5-44e4-9fc6-15a1286f53c4", "39b5b3aa-ae1b-4e88-b2db-15bd7a6d31a1", "a83e51ed-203f-4d44-8e52-6437b6a1d5b3", "b3785c7a-0c91-4f3d-98e4-88788e780814", "fc36974f-f71e-44d1-8334-955ea164560e"], "befores": [{"name": "browser_manager", "status": "passed", "start": 1784972654954, "stop": 1784972654954}], "afters": [{"name": "browser_manager::", "start": 1784972666818}], "start": 1784972654954, "stop": 1784972666818} \ No newline at end of file diff --git a/allure-results/6ec0fa17-8704-4551-9dcf-db1602c70544-container.json b/allure-results/6ec0fa17-8704-4551-9dcf-db1602c70544-container.json new file mode 100644 index 0000000..c67e68d --- /dev/null +++ b/allure-results/6ec0fa17-8704-4551-9dcf-db1602c70544-container.json @@ -0,0 +1 @@ +{"uuid": "9147afe6-d924-4f6a-8fec-285ac0250671", "children": ["a83e51ed-203f-4d44-8e52-6437b6a1d5b3"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1784972666567, "stop": 1784972666567}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1784972666568, "stop": 1784972666568}, {"name": "capture_failure_artifacts::", "start": 1784972666568}], "start": 1784972666567, "stop": 1784972666568} \ No newline at end of file diff --git a/allure-results/6f7dca04-6caa-4b1a-b2c9-025d15276b05-container.json b/allure-results/6f7dca04-6caa-4b1a-b2c9-025d15276b05-container.json new file mode 100644 index 0000000..7d87612 --- /dev/null +++ b/allure-results/6f7dca04-6caa-4b1a-b2c9-025d15276b05-container.json @@ -0,0 +1 @@ +{"uuid": "99cbf058-1bf2-43d7-ba2d-8149c6e2e0aa", "children": ["39b5b3aa-ae1b-4e88-b2db-15bd7a6d31a1"], "befores": [{"name": "context", "status": "passed", "start": 1784972666384, "stop": 1784972666390}], "afters": [{"name": "context::1", "status": "passed", "start": 1784972666468, "stop": 1784972666483}, {"name": "context::", "start": 1784972666483}], "start": 1784972666384, "stop": 1784972666483} \ No newline at end of file diff --git a/allure-results/74d458cc-0b5e-4e1d-833d-f6390c816f7a-container.json b/allure-results/74d458cc-0b5e-4e1d-833d-f6390c816f7a-container.json new file mode 100644 index 0000000..68d7af2 --- /dev/null +++ b/allure-results/74d458cc-0b5e-4e1d-833d-f6390c816f7a-container.json @@ -0,0 +1 @@ +{"uuid": "eace9a54-3549-4e53-8a8d-64f36a608704", "children": ["799572c8-7c98-486f-8b0f-1619ecce312a"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1784972655452, "stop": 1784972655452}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1784972657430, "stop": 1784972657430}, {"name": "capture_failure_artifacts::", "start": 1784972657430}], "start": 1784972655452, "stop": 1784972657430} \ No newline at end of file diff --git a/allure-results/7796880f-2c56-4edd-933b-8d86eb03e4f2-container.json b/allure-results/7796880f-2c56-4edd-933b-8d86eb03e4f2-container.json new file mode 100644 index 0000000..2563e2a --- /dev/null +++ b/allure-results/7796880f-2c56-4edd-933b-8d86eb03e4f2-container.json @@ -0,0 +1 @@ +{"uuid": "e2a888f5-4890-44dc-9cb0-c61b4685147b", "children": ["7eb30509-d9b5-44e4-9fc6-15a1286f53c4"], "befores": [{"name": "page", "status": "passed", "start": 1784972666288, "stop": 1784972666367}], "afters": [{"name": "page::1", "status": "passed", "start": 1784972666368, "stop": 1784972666371}, {"name": "page::", "start": 1784972666371}], "start": 1784972666288, "stop": 1784972666371} \ No newline at end of file diff --git a/allure-results/79b76304-cd1d-4fbc-b5fa-e28e0723c082-result.json b/allure-results/79b76304-cd1d-4fbc-b5fa-e28e0723c082-result.json new file mode 100644 index 0000000..3edd1cb --- /dev/null +++ b/allure-results/79b76304-cd1d-4fbc-b5fa-e28e0723c082-result.json @@ -0,0 +1 @@ +{"name": "test_browser_configuration", "status": "passed", "start": 1784972670995, "stop": 1784972670995, "uuid": "0d3a97b2-2d02-4265-9ebd-2e0e6dfc5eb2", "historyId": "a4ac93025171fc690a5a66c1c3f513ab", "testCaseId": "a4ac93025171fc690a5a66c1c3f513ab", "fullName": "tests.unit.test_config_manager#test_browser_configuration", "labels": [{"name": "tag", "value": "unit"}, {"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "76606-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/7a1b2851-851e-4a12-b06b-37e19b3cff46-attachment.txt b/allure-results/7a1b2851-851e-4a12-b06b-37e19b3cff46-attachment.txt new file mode 100644 index 0000000..b2b73e7 --- /dev/null +++ b/allure-results/7a1b2851-851e-4a12-b06b-37e19b3cff46-attachment.txt @@ -0,0 +1,5 @@ +2026-07-25 15:14:27,910 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-25 15:14:30,124 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-25 15:14:30,135 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-25 15:14:30,135 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Backpack +2026-07-25 15:14:30,860 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Backpack diff --git a/allure-results/7b55e7fd-008a-442c-a39d-2b93324b13bb-container.json b/allure-results/7b55e7fd-008a-442c-a39d-2b93324b13bb-container.json new file mode 100644 index 0000000..a51114d --- /dev/null +++ b/allure-results/7b55e7fd-008a-442c-a39d-2b93324b13bb-container.json @@ -0,0 +1 @@ +{"uuid": "c08ce7ae-fa51-4be5-a625-84d99671dee1", "children": ["799572c8-7c98-486f-8b0f-1619ecce312a", "a21733f1-46a9-4386-84e5-51882bea3fc2", "d2771ee5-ebfb-4c91-b9bf-e1f2fd9898fa", "7eb30509-d9b5-44e4-9fc6-15a1286f53c4", "39b5b3aa-ae1b-4e88-b2db-15bd7a6d31a1", "a83e51ed-203f-4d44-8e52-6437b6a1d5b3", "b3785c7a-0c91-4f3d-98e4-88788e780814", "fc36974f-f71e-44d1-8334-955ea164560e"], "befores": [{"name": "browser", "status": "passed", "start": 1784972654954, "stop": 1784972655247}], "afters": [{"name": "browser::1", "status": "passed", "start": 1784972666774, "stop": 1784972666818}, {"name": "browser::", "start": 1784972666818}], "start": 1784972654954, "stop": 1784972666818} \ No newline at end of file diff --git a/allure-results/80f57a8d-2cb6-4900-ac64-a27b959434ed-container.json b/allure-results/80f57a8d-2cb6-4900-ac64-a27b959434ed-container.json new file mode 100644 index 0000000..3b351c5 --- /dev/null +++ b/allure-results/80f57a8d-2cb6-4900-ac64-a27b959434ed-container.json @@ -0,0 +1 @@ +{"uuid": "aa46e4c0-1067-45ac-91a6-56025d36cb75", "children": ["bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8"], "befores": [{"name": "page", "status": "passed", "start": 1784972665553, "stop": 1784972665636}], "afters": [{"name": "page::1", "status": "passed", "start": 1784972670871, "stop": 1784972670877}, {"name": "page::", "start": 1784972670877}], "start": 1784972665553, "stop": 1784972670877} \ No newline at end of file diff --git a/allure-results/85a1deb6-3839-4f49-8ac2-d60c384f1b48-container.json b/allure-results/85a1deb6-3839-4f49-8ac2-d60c384f1b48-container.json new file mode 100644 index 0000000..038524f --- /dev/null +++ b/allure-results/85a1deb6-3839-4f49-8ac2-d60c384f1b48-container.json @@ -0,0 +1 @@ +{"uuid": "d67dbd2c-7e08-4485-9eb2-3429cf75e6d3", "children": ["a83e51ed-203f-4d44-8e52-6437b6a1d5b3"], "befores": [{"name": "page", "status": "passed", "start": 1784972666489, "stop": 1784972666567}], "afters": [{"name": "page::1", "status": "passed", "start": 1784972666568, "stop": 1784972666572}, {"name": "page::", "start": 1784972666572}], "start": 1784972666489, "stop": 1784972666572} \ No newline at end of file diff --git a/allure-results/86ee44a5-d5a4-4439-a9a6-5ebcbe97703f-result.json b/allure-results/86ee44a5-d5a4-4439-a9a6-5ebcbe97703f-result.json new file mode 100644 index 0000000..6f5fd02 --- /dev/null +++ b/allure-results/86ee44a5-d5a4-4439-a9a6-5ebcbe97703f-result.json @@ -0,0 +1 @@ +{"name": "test_invalid_configuration_key_raises_error", "status": "passed", "start": 1784972666756, "stop": 1784972666756, "uuid": "fc36974f-f71e-44d1-8334-955ea164560e", "historyId": "ffab144bb11fc6dcdb64f5461f7a40a4", "testCaseId": "ffab144bb11fc6dcdb64f5461f7a40a4", "fullName": "tests.unit.test_config_manager#test_invalid_configuration_key_raises_error", "labels": [{"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "76605-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/893a79be-9797-4252-b43b-291b80b747e7-container.json b/allure-results/893a79be-9797-4252-b43b-291b80b747e7-container.json new file mode 100644 index 0000000..8bf8c21 --- /dev/null +++ b/allure-results/893a79be-9797-4252-b43b-291b80b747e7-container.json @@ -0,0 +1 @@ +{"uuid": "56e1beaf-c3fc-4318-834b-722b230b9560", "children": ["fc36974f-f71e-44d1-8334-955ea164560e"], "befores": [{"name": "page", "status": "passed", "start": 1784972666691, "stop": 1784972666756}], "afters": [{"name": "page::1", "status": "passed", "start": 1784972666757, "stop": 1784972666762}, {"name": "page::", "start": 1784972666762}], "start": 1784972666691, "stop": 1784972666762} \ No newline at end of file diff --git a/allure-results/89810f2a-ca87-4698-96ce-1d6ca6465536-container.json b/allure-results/89810f2a-ca87-4698-96ce-1d6ca6465536-container.json new file mode 100644 index 0000000..aad3035 --- /dev/null +++ b/allure-results/89810f2a-ca87-4698-96ce-1d6ca6465536-container.json @@ -0,0 +1 @@ +{"uuid": "b184e5cc-5553-4930-93c0-41062effd0d8", "children": ["83945fcc-d8fc-4b0f-9a54-8e43b052fd9c", "bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8", "0d3a97b2-2d02-4265-9ebd-2e0e6dfc5eb2"], "befores": [{"name": "browser", "status": "passed", "start": 1784972654954, "stop": 1784972655263}], "afters": [{"name": "browser::1", "status": "passed", "start": 1784972671013, "stop": 1784972671060}, {"name": "browser::", "start": 1784972671060}], "start": 1784972654954, "stop": 1784972671060} \ No newline at end of file diff --git a/allure-results/9979825f-f0cb-4fab-9945-2ab61937df75-result.json b/allure-results/9979825f-f0cb-4fab-9945-2ab61937df75-result.json new file mode 100644 index 0000000..90e4716 --- /dev/null +++ b/allure-results/9979825f-f0cb-4fab-9945-2ab61937df75-result.json @@ -0,0 +1 @@ +{"name": "test_configuration_loads_successfully", "status": "passed", "start": 1784972666367, "stop": 1784972666368, "uuid": "7eb30509-d9b5-44e4-9fc6-15a1286f53c4", "historyId": "460f9f36ffdc12b2d3d3f76e80167765", "testCaseId": "460f9f36ffdc12b2d3d3f76e80167765", "fullName": "tests.unit.test_config_manager#test_configuration_loads_successfully", "labels": [{"name": "tag", "value": "unit"}, {"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "76605-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/9ae268dd-8022-4b94-b7e9-319472121bc4-container.json b/allure-results/9ae268dd-8022-4b94-b7e9-319472121bc4-container.json new file mode 100644 index 0000000..1369d7b --- /dev/null +++ b/allure-results/9ae268dd-8022-4b94-b7e9-319472121bc4-container.json @@ -0,0 +1 @@ +{"uuid": "978becdb-94ba-4c2b-b96c-8223c84b93b6", "children": ["bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8"], "befores": [{"name": "context", "status": "passed", "start": 1784972665548, "stop": 1784972665553}], "afters": [{"name": "context::1", "status": "passed", "start": 1784972670878, "stop": 1784972670911}, {"name": "context::", "start": 1784972670911}], "start": 1784972665548, "stop": 1784972670911} \ No newline at end of file diff --git a/allure-results/9c331b31-b14b-45b9-b255-c7aae30a9046-container.json b/allure-results/9c331b31-b14b-45b9-b255-c7aae30a9046-container.json new file mode 100644 index 0000000..0c6b1c0 --- /dev/null +++ b/allure-results/9c331b31-b14b-45b9-b255-c7aae30a9046-container.json @@ -0,0 +1 @@ +{"uuid": "f0275d1d-2dcf-43be-8714-83b73c69a1d3", "children": ["83945fcc-d8fc-4b0f-9a54-8e43b052fd9c", "bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8", "0d3a97b2-2d02-4265-9ebd-2e0e6dfc5eb2"], "befores": [{"name": "_verify_url", "status": "passed", "start": 1784972654828, "stop": 1784972654828}], "afters": [{"name": "_verify_url::", "start": 1784972671069}], "start": 1784972654828, "stop": 1784972671069} \ No newline at end of file diff --git a/allure-results/9c5938c7-4f69-4434-b4e9-1e2d46670260-container.json b/allure-results/9c5938c7-4f69-4434-b4e9-1e2d46670260-container.json new file mode 100644 index 0000000..8cb0705 --- /dev/null +++ b/allure-results/9c5938c7-4f69-4434-b4e9-1e2d46670260-container.json @@ -0,0 +1 @@ +{"uuid": "e784996c-5186-42f0-b072-d8f7a34979b9", "children": ["fc36974f-f71e-44d1-8334-955ea164560e"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1784972666756, "stop": 1784972666756}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1784972666757, "stop": 1784972666757}, {"name": "capture_failure_artifacts::", "start": 1784972666757}], "start": 1784972666756, "stop": 1784972666757} \ No newline at end of file diff --git a/allure-results/9ec44036-6c9e-4997-a139-68e1fee6e76b-container.json b/allure-results/9ec44036-6c9e-4997-a139-68e1fee6e76b-container.json new file mode 100644 index 0000000..454c4a9 --- /dev/null +++ b/allure-results/9ec44036-6c9e-4997-a139-68e1fee6e76b-container.json @@ -0,0 +1 @@ +{"uuid": "d1868859-7da0-406d-b640-6e7937f18e64", "children": ["d2771ee5-ebfb-4c91-b9bf-e1f2fd9898fa"], "befores": [{"name": "context", "status": "passed", "start": 1784972662617, "stop": 1784972662628}], "afters": [{"name": "context::1", "status": "passed", "start": 1784972666256, "stop": 1784972666277}, {"name": "context::", "start": 1784972666278}], "start": 1784972662617, "stop": 1784972666278} \ No newline at end of file diff --git a/allure-results/9f584ab1-e1bd-4581-9837-648ec03fd883-result.json b/allure-results/9f584ab1-e1bd-4581-9837-648ec03fd883-result.json new file mode 100644 index 0000000..32fd006 --- /dev/null +++ b/allure-results/9f584ab1-e1bd-4581-9837-648ec03fd883-result.json @@ -0,0 +1 @@ +{"name": "test_timeout_configuration", "status": "passed", "start": 1784972666462, "stop": 1784972666462, "uuid": "39b5b3aa-ae1b-4e88-b2db-15bd7a6d31a1", "historyId": "003fd2a3481b2aed0bbaf6ff2852624c", "testCaseId": "003fd2a3481b2aed0bbaf6ff2852624c", "fullName": "tests.unit.test_config_manager#test_timeout_configuration", "labels": [{"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "76605-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/a14672d8-a40c-4e3b-bb25-1b5004e1663f-result.json b/allure-results/a14672d8-a40c-4e3b-bb25-1b5004e1663f-result.json new file mode 100644 index 0000000..fdea04b --- /dev/null +++ b/allure-results/a14672d8-a40c-4e3b-bb25-1b5004e1663f-result.json @@ -0,0 +1 @@ +{"name": "Verify user can add product to cart", "status": "passed", "description": "Verify that a logged-in user can add Sauce Labs Backpack to the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1784972665637, "stop": 1784972667910}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1784972667910, "stop": 1784972667910}, {"name": "Login with valid credentials", "status": "passed", "start": 1784972667910, "stop": 1784972670125}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1784972670125, "stop": 1784972670135}, {"name": "Retrieve product name", "status": "passed", "start": 1784972670135, "stop": 1784972670135}, {"name": "Add Sauce Labs Backpack to cart", "status": "passed", "start": 1784972670135, "stop": 1784972670861}, {"name": "Verify product was added to cart", "status": "passed", "start": 1784972670861, "stop": 1784972670869}], "attachments": [{"name": "log", "source": "35962b8c-1423-4209-ac36-b8af8f477736-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "7a1b2851-851e-4a12-b06b-37e19b3cff46-attachment.txt", "type": "text/plain"}], "start": 1784972665637, "stop": 1784972670870, "uuid": "bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8", "historyId": "76249ae9582a105da809f2e4b4437aaf", "testCaseId": "76249ae9582a105da809f2e4b4437aaf", "fullName": "tests.e2e.test_inventory#test_add_product_to_cart", "labels": [{"name": "severity", "value": "critical"}, {"name": "feature", "value": "Inventory Management"}, {"name": "story", "value": "Add Product to Cart"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_inventory"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "76606-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_inventory"}], "titlePath": ["tests", "e2e", "test_inventory.py"]} \ No newline at end of file diff --git a/allure-results/a65b44fd-9aee-4dea-bec8-7afd637e520b-container.json b/allure-results/a65b44fd-9aee-4dea-bec8-7afd637e520b-container.json new file mode 100644 index 0000000..181cfc0 --- /dev/null +++ b/allure-results/a65b44fd-9aee-4dea-bec8-7afd637e520b-container.json @@ -0,0 +1 @@ +{"uuid": "9f2572d9-83e8-4829-8ff6-024716553567", "children": ["83945fcc-d8fc-4b0f-9a54-8e43b052fd9c", "bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8", "0d3a97b2-2d02-4265-9ebd-2e0e6dfc5eb2"], "befores": [{"name": "browser_manager", "status": "passed", "start": 1784972654954, "stop": 1784972654954}], "afters": [{"name": "browser_manager::", "start": 1784972671060}], "start": 1784972654954, "stop": 1784972671060} \ No newline at end of file diff --git a/allure-results/b74ce12c-152d-424d-ba3f-2134bba22eaa-container.json b/allure-results/b74ce12c-152d-424d-ba3f-2134bba22eaa-container.json new file mode 100644 index 0000000..ca3d607 --- /dev/null +++ b/allure-results/b74ce12c-152d-424d-ba3f-2134bba22eaa-container.json @@ -0,0 +1 @@ +{"uuid": "6b20e377-0af1-40ac-9b69-e53faccfdf47", "children": ["0d3a97b2-2d02-4265-9ebd-2e0e6dfc5eb2"], "befores": [{"name": "page", "status": "passed", "start": 1784972670921, "stop": 1784972670994}], "afters": [{"name": "page::1", "status": "passed", "start": 1784972670995, "stop": 1784972671000}, {"name": "page::", "start": 1784972671000}], "start": 1784972670921, "stop": 1784972671000} \ No newline at end of file diff --git a/allure-results/b8fa2057-c627-41e4-aefa-e49e25f01db3-container.json b/allure-results/b8fa2057-c627-41e4-aefa-e49e25f01db3-container.json new file mode 100644 index 0000000..45e27ea --- /dev/null +++ b/allure-results/b8fa2057-c627-41e4-aefa-e49e25f01db3-container.json @@ -0,0 +1 @@ +{"uuid": "071ff465-9e70-422e-af84-3b715b35e9b1", "children": ["83945fcc-d8fc-4b0f-9a54-8e43b052fd9c", "bae7f386-b0b4-4d9c-ba4b-61a7555cb2a8", "0d3a97b2-2d02-4265-9ebd-2e0e6dfc5eb2"], "befores": [{"name": "base_url", "status": "passed", "start": 1784972654828, "stop": 1784972654828}], "afters": [{"name": "base_url::", "start": 1784972671069}], "start": 1784972654828, "stop": 1784972671069} \ No newline at end of file diff --git a/allure-results/bfb2adce-dc3f-4386-a575-271b40348d06-container.json b/allure-results/bfb2adce-dc3f-4386-a575-271b40348d06-container.json new file mode 100644 index 0000000..d683e56 --- /dev/null +++ b/allure-results/bfb2adce-dc3f-4386-a575-271b40348d06-container.json @@ -0,0 +1 @@ +{"uuid": "d699b3ea-a338-438b-afa0-ff2f37ec122e", "children": ["fc36974f-f71e-44d1-8334-955ea164560e"], "befores": [{"name": "context", "status": "passed", "start": 1784972666684, "stop": 1784972666691}], "afters": [{"name": "context::1", "status": "passed", "start": 1784972666762, "stop": 1784972666773}, {"name": "context::", "start": 1784972666773}], "start": 1784972666684, "stop": 1784972666773} \ No newline at end of file diff --git a/allure-results/c1324b51-97f5-4d7f-ac68-71a191bd7b0f-container.json b/allure-results/c1324b51-97f5-4d7f-ac68-71a191bd7b0f-container.json new file mode 100644 index 0000000..d11cf68 --- /dev/null +++ b/allure-results/c1324b51-97f5-4d7f-ac68-71a191bd7b0f-container.json @@ -0,0 +1 @@ +{"uuid": "14a8c064-99b9-4f74-8e2c-0fa9ac1739a8", "children": ["b3785c7a-0c91-4f3d-98e4-88788e780814"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1784972666662, "stop": 1784972666662}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1784972666662, "stop": 1784972666662}, {"name": "capture_failure_artifacts::", "start": 1784972666662}], "start": 1784972666662, "stop": 1784972666662} \ No newline at end of file diff --git a/allure-results/c47f5eff-77dd-4de1-af8e-7c2d7c920f7f-container.json b/allure-results/c47f5eff-77dd-4de1-af8e-7c2d7c920f7f-container.json new file mode 100644 index 0000000..f94c273 --- /dev/null +++ b/allure-results/c47f5eff-77dd-4de1-af8e-7c2d7c920f7f-container.json @@ -0,0 +1 @@ +{"uuid": "5a8f3413-defd-4738-b82c-223442ba8911", "children": ["a21733f1-46a9-4386-84e5-51882bea3fc2"], "befores": [{"name": "context", "status": "passed", "start": 1784972657471, "stop": 1784972657478}], "afters": [{"name": "context::1", "status": "passed", "start": 1784972662603, "stop": 1784972662615}, {"name": "context::", "start": 1784972662615}], "start": 1784972657471, "stop": 1784972662615} \ No newline at end of file diff --git a/allure-results/c8e33a24-96da-486c-9a76-604f3e288525-container.json b/allure-results/c8e33a24-96da-486c-9a76-604f3e288525-container.json new file mode 100644 index 0000000..7cec7e7 --- /dev/null +++ b/allure-results/c8e33a24-96da-486c-9a76-604f3e288525-container.json @@ -0,0 +1 @@ +{"uuid": "ec8a47e3-67af-4475-bb0d-baf2f712dc98", "children": ["83945fcc-d8fc-4b0f-9a54-8e43b052fd9c"], "befores": [{"name": "page", "status": "passed", "start": 1784972655279, "stop": 1784972655481}], "afters": [{"name": "page::1", "status": "passed", "start": 1784972665529, "stop": 1784972665533}, {"name": "page::", "start": 1784972665533}], "start": 1784972655279, "stop": 1784972665533} \ No newline at end of file diff --git a/allure-results/ca04d0eb-e39a-46a0-ae26-7dd860d86f5f-container.json b/allure-results/ca04d0eb-e39a-46a0-ae26-7dd860d86f5f-container.json new file mode 100644 index 0000000..1a48c0b --- /dev/null +++ b/allure-results/ca04d0eb-e39a-46a0-ae26-7dd860d86f5f-container.json @@ -0,0 +1 @@ +{"uuid": "bec2d897-43a0-4d0d-b056-9bfb237a544f", "children": ["83945fcc-d8fc-4b0f-9a54-8e43b052fd9c"], "befores": [{"name": "context", "status": "passed", "start": 1784972655264, "stop": 1784972655279}], "afters": [{"name": "context::1", "status": "passed", "start": 1784972665534, "stop": 1784972665546}, {"name": "context::", "start": 1784972665546}], "start": 1784972655264, "stop": 1784972665546} \ No newline at end of file diff --git a/allure-results/d7b3def8-4c54-4e54-825c-a45264003bd2-container.json b/allure-results/d7b3def8-4c54-4e54-825c-a45264003bd2-container.json new file mode 100644 index 0000000..73d284b --- /dev/null +++ b/allure-results/d7b3def8-4c54-4e54-825c-a45264003bd2-container.json @@ -0,0 +1 @@ +{"uuid": "dd8d5d5f-f9ca-4d5c-b556-c98b7397da39", "children": ["a83e51ed-203f-4d44-8e52-6437b6a1d5b3"], "befores": [{"name": "context", "status": "passed", "start": 1784972666484, "stop": 1784972666489}], "afters": [{"name": "context::1", "status": "passed", "start": 1784972666572, "stop": 1784972666583}, {"name": "context::", "start": 1784972666583}], "start": 1784972666484, "stop": 1784972666583} \ No newline at end of file diff --git a/allure-results/dab6dc1a-0d9a-46c7-9201-0e9548dd4fd8-container.json b/allure-results/dab6dc1a-0d9a-46c7-9201-0e9548dd4fd8-container.json new file mode 100644 index 0000000..1cca86a --- /dev/null +++ b/allure-results/dab6dc1a-0d9a-46c7-9201-0e9548dd4fd8-container.json @@ -0,0 +1 @@ +{"uuid": "43d32435-0e3a-4680-a0ce-6dc1e6e8e131", "children": ["83945fcc-d8fc-4b0f-9a54-8e43b052fd9c"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1784972655481, "stop": 1784972655481}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1784972665528, "stop": 1784972665528}, {"name": "capture_failure_artifacts::", "start": 1784972665528}], "start": 1784972655481, "stop": 1784972665528} \ No newline at end of file diff --git a/allure-results/db6f8131-d3f5-4cf7-b4bb-3b3fbb2e9f83-container.json b/allure-results/db6f8131-d3f5-4cf7-b4bb-3b3fbb2e9f83-container.json new file mode 100644 index 0000000..6b0aacb --- /dev/null +++ b/allure-results/db6f8131-d3f5-4cf7-b4bb-3b3fbb2e9f83-container.json @@ -0,0 +1 @@ +{"uuid": "5fcce5f6-cf57-4523-971d-5b8e253fcdeb", "children": ["a21733f1-46a9-4386-84e5-51882bea3fc2"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1784972657567, "stop": 1784972657567}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1784972662600, "stop": 1784972662600}, {"name": "capture_failure_artifacts::", "start": 1784972662600}], "start": 1784972657567, "stop": 1784972662600} \ No newline at end of file diff --git a/allure-results/e27acb6d-0698-4e0e-a36c-1f1dd583a4f2-container.json b/allure-results/e27acb6d-0698-4e0e-a36c-1f1dd583a4f2-container.json new file mode 100644 index 0000000..8be0423 --- /dev/null +++ b/allure-results/e27acb6d-0698-4e0e-a36c-1f1dd583a4f2-container.json @@ -0,0 +1 @@ +{"uuid": "0eeccd9c-90eb-4a7a-ba34-66b6e5f61c37", "children": ["799572c8-7c98-486f-8b0f-1619ecce312a"], "befores": [{"name": "context", "status": "passed", "start": 1784972655247, "stop": 1784972655274}], "afters": [{"name": "context::1", "status": "passed", "start": 1784972657445, "stop": 1784972657469}, {"name": "context::", "start": 1784972657469}], "start": 1784972655247, "stop": 1784972657469} \ No newline at end of file diff --git a/allure-results/e361e4bb-2e3f-4a11-822b-7f89660a4820-container.json b/allure-results/e361e4bb-2e3f-4a11-822b-7f89660a4820-container.json new file mode 100644 index 0000000..bd1934e --- /dev/null +++ b/allure-results/e361e4bb-2e3f-4a11-822b-7f89660a4820-container.json @@ -0,0 +1 @@ +{"uuid": "739e811f-9685-4533-a55b-3730e9824e4b", "children": ["a21733f1-46a9-4386-84e5-51882bea3fc2"], "befores": [{"name": "page", "status": "passed", "start": 1784972657478, "stop": 1784972657567}], "afters": [{"name": "page::1", "status": "passed", "start": 1784972662600, "stop": 1784972662603}, {"name": "page::", "start": 1784972662603}], "start": 1784972657478, "stop": 1784972662603} \ No newline at end of file diff --git a/allure-results/e7de4516-c95c-489f-ad0a-f03e2db3e30a-container.json b/allure-results/e7de4516-c95c-489f-ad0a-f03e2db3e30a-container.json new file mode 100644 index 0000000..cd1db99 --- /dev/null +++ b/allure-results/e7de4516-c95c-489f-ad0a-f03e2db3e30a-container.json @@ -0,0 +1 @@ +{"uuid": "9b75dc99-f700-484a-9891-82149b0ef1ce", "children": ["39b5b3aa-ae1b-4e88-b2db-15bd7a6d31a1"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1784972666461, "stop": 1784972666462}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1784972666462, "stop": 1784972666462}, {"name": "capture_failure_artifacts::", "start": 1784972666462}], "start": 1784972666461, "stop": 1784972666462} \ No newline at end of file diff --git a/allure-results/fad35c27-86d3-4853-a10b-928e61dba7d7-container.json b/allure-results/fad35c27-86d3-4853-a10b-928e61dba7d7-container.json new file mode 100644 index 0000000..be63684 --- /dev/null +++ b/allure-results/fad35c27-86d3-4853-a10b-928e61dba7d7-container.json @@ -0,0 +1 @@ +{"uuid": "7d0fde4a-810b-419f-95cd-83190463094d", "children": ["799572c8-7c98-486f-8b0f-1619ecce312a", "a21733f1-46a9-4386-84e5-51882bea3fc2", "d2771ee5-ebfb-4c91-b9bf-e1f2fd9898fa", "7eb30509-d9b5-44e4-9fc6-15a1286f53c4", "39b5b3aa-ae1b-4e88-b2db-15bd7a6d31a1", "a83e51ed-203f-4d44-8e52-6437b6a1d5b3", "b3785c7a-0c91-4f3d-98e4-88788e780814", "fc36974f-f71e-44d1-8334-955ea164560e"], "befores": [{"name": "base_url", "status": "passed", "start": 1784972654828, "stop": 1784972654828}], "afters": [{"name": "base_url::", "start": 1784972666825}], "start": 1784972654828, "stop": 1784972666825} \ No newline at end of file diff --git a/allure-results/fe817e32-40f9-46b8-b14e-f22fffb22569-container.json b/allure-results/fe817e32-40f9-46b8-b14e-f22fffb22569-container.json new file mode 100644 index 0000000..96811cb --- /dev/null +++ b/allure-results/fe817e32-40f9-46b8-b14e-f22fffb22569-container.json @@ -0,0 +1 @@ +{"uuid": "3c719e76-a9ce-4550-885f-af007be60110", "children": ["39b5b3aa-ae1b-4e88-b2db-15bd7a6d31a1"], "befores": [{"name": "page", "status": "passed", "start": 1784972666390, "stop": 1784972666461}], "afters": [{"name": "page::1", "status": "passed", "start": 1784972666462, "stop": 1784972666468}, {"name": "page::", "start": 1784972666468}], "start": 1784972666390, "stop": 1784972666468} \ No newline at end of file diff --git a/config/config.py b/config/config.py index 710e576..b0e1880 100644 --- a/config/config.py +++ b/config/config.py @@ -33,6 +33,15 @@ def load_environment(self) -> None: raise ValueError("ENVIRONMENT variable not set in .env file.") + def set_environment(self, environment: str) -> None: + """ + Set the active environment explicitly. + """ + if not environment: + raise ValueError("Environment cannot be empty.") + self._environment = environment + + def load_configuration(self) -> None: """ Load configuration from the active environment JSON file. diff --git a/core/.DS_Store b/core/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0870c1f1d4b091460bacb978a6e456bbfaa420e2 GIT binary patch literal 8196 zcmeHMO-}+b5Pek+L^}>Asm3qG6Zl#Xy{r z&g*t&x}CRW%M<{vvlyNOO#pRP!INW(k|KJk8|5JOh|C*tzfX}*=l$!&Z0>1ug?qK|lx=4Do*r|0WO%_4V_tbIDPM8HPa9plV}J$T zXfdIsc->OlLry!7XPy#_*?-2da^jfwll4_bd(n;bJ~GCVde3{cIjXcWwzkjwCeFMv zI{F_ma?kOWF}9Y>X6K`>n)NE;QoXVz+)b3*UVJM15phGGdil&(QCHe9@>8x+S#uv; zH=e6}#C15}3X_$T^Q>wgp8C&XSh4W~Yx1(a$X1)M3Z@Z@fVvA)=q^mO{hz#8F$VUD zfx|G_rsV&Z)#v~F6q3!=7%&EY$$+bM@46j2>8@VlEW3Qd`p7Cp?23TuLh@AhN0Vs*>zmeSk)bA2<(mX>YBlUSK4 zGcP;IWHJwuGyq(0KE43D0NPZ+R)=PbNWW-94ua>H=yZ+@A4sVsipFSj7z4(@Ut>V_ zZU-Y|c*l%(wSQ;j@OEC5Is0$$$o-rmr;Rx($ACLL!K|94Ie=+);XM{Ot ztj~fN_v{^D$#FSe@xrJQXPj$EoM_(qD`ghxd)7QM$AbMib4l(2V`W7A&ARWxy0_NF zxHi`!E0ii^=3)MsNjfT@~NUt38J?iX8(z={DmA0nz?60q{9M+c2Q0f;TSRoIqGMq;9XNx;e@ zdnnF_5`Cx(PYmb7>5sy=Bw*#yhr?-R&J!}b@IrB#o&HFN!zCWg8Ux0_CIg55vn%)i z)$aHIW{`au1IEC=V!*Zf4}EzShP$;yQBBn@H` Tu<}R`#r_B=4Q7miUuED6Xmp|! literal 0 HcmV?d00001 diff --git a/tests/conftest.py b/tests/conftest.py index ad4bd7d..94cfa37 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -3,6 +3,16 @@ from playwright.sync_api import sync_playwright from core.browser_manager import BrowserManager from core.test_data_manager import TestDataManager +from pathlib import Path +from datetime import datetime +import allure + + +def pytest_addoption(parser): + """ + Add custom command-line options to pytest. + """ + parser.addoption("--env", action="store", default=None, help="Environment to run tests against. Example: qa, staging, prod") @pytest.fixture(scope="session") @@ -10,7 +20,11 @@ def config(): """ Provide a single ConfigManager instance for the entire test session. """ - return ConfigManager() + config_manager = ConfigManager() + config_manager.load_environment() + config_manager.load_configuration() + config_manager.validate() + return config_manager @pytest.fixture(scope="session") @@ -43,11 +57,13 @@ def browser(browser_manager): @pytest.fixture(scope="function") -def context(browser): +def context(browser, config): """ Create an isolated browser context for each test. """ context_instance = browser.new_context() + if config.get("reports.trace"): + context_instance.tracing.start(screenshots=True, snapshots=True, sources=True) yield context_instance @@ -76,3 +92,78 @@ def test_data(): data_manager.load_data(file_name="products.json", data_key="products") return data_manager + +@pytest.hookimpl(hookwrapper=True) +def pytest_runtest_makereport(item, call): + """ + Capture test result and attach it to the test item. + """ + + outcome = yield + report = outcome.get_result() + + setattr(item, f"rep_{report.when}", report) + + +@pytest.fixture(autouse=True) +def capture_failure_artifacts(request, page, context, config): + """ + Capture screenshot and Playwright trace when a test fails + and attach them to the Allure report. + """ + + yield + + # Get the test execution report + report = getattr(request.node, "rep_call", None) + if not report or not report.failed: + return + + # Create report directories + screenshot_directory = Path("reports/screenshots") + trace_directory = Path("reports/traces") + + screenshot_directory.mkdir(parents=True, exist_ok=True) + trace_directory.mkdir(parents=True, exist_ok=True) + + # Get a safe test name + test_name = request.node.name + + # -------------------------------- + # Screenshot + # -------------------------------- + if config.get("reports.take_screenshot_on_failure"): + screenshot_path = screenshot_directory/f"{test_name}.png" + page.screenshot(path=str(screenshot_path), full_page=True) + print(f"\nScreenshot saved: {screenshot_path}") + + # Attach screenshot to Allure + with open(screenshot_path, "rb") as screenshot: + allure.attach.file(screenshot.read(), name=f"{test_name} - Failure Screenshot", attachment_type=allure.attachment_type.PNG) + + # -------------------------------- + # Playwright Trace + # -------------------------------- + if config.get("reports.trace"): + trace_path = (trace_directory/f"{test_name}.zip") + context.tracing.stop(path=str(trace_path)) + print(f"Trace saved: {trace_path}") + + # Attach trace to Allure + with open(trace_path, "rb") as trace: + allure.attach.file(trace.read(), name=f"{test_name} - Playwright Trace", attachment_type=allure.attachment_type.ZIP) + + +def pytest_configure(config): + """ + Create a unqiue HTML report path for every test execution. + """ + if not config.option.htmlpath: + report_directory = Path("reports/html") + report_directory.mkdir(parents=True, exist_ok=True) + + timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S") + + report_path = report_directory / f"report_{timestamp}.html" + config.option.htmlpath = str(report_path) + diff --git a/tests/e2e/test_cart.py b/tests/e2e/test_cart.py index 3672a79..20de088 100644 --- a/tests/e2e/test_cart.py +++ b/tests/e2e/test_cart.py @@ -2,24 +2,47 @@ from pages.inventory_page import InventoryPage from pages.login_page import LoginPage import pytest +import allure +@allure.epic("SauceDemo Application") +@allure.feature("Shopping Cart") +@allure.story("Verify Product in Cart") +@allure.title("Verify selected product is displayed in cart") +@allure.description("Verify that a selected product appears correctly in the shopping cart.") +@allure.severity(allure.severity_level.CRITICAL) @pytest.mark.regression @pytest.mark.e2e -def test_product_is_displayed_in_cart(page, config): +def test_product_is_displayed_in_cart(page, config, test_data): """ Verify that a selected product appears in the shopping cart. """ - login_page = LoginPage(page) - login_page.navigate(config.get("application.base_url")) - login_page.login(username="standard_user", password="secret_sauce") - - inventory_page = InventoryPage(page) - product_name = "Sauce Labs Backpack" - inventory_page.add_product_to_cart(product_name) - inventory_page.open_cart() - - cart_page = CartPage(page) - assert cart_page.is_loaded() - assert cart_page.is_product_in_cart(product_name) + + with allure.step("Navigate to SauceDemo application"): + login_page = LoginPage(page) + login_page.navigate(config.get("application.base_url")) + + with allure.step("Retrieve valid user credentials"): + username = test_data.get("users.valid_user.username") + password = test_data.get("users.valid_user.password") + + with allure.step("Login with valid credentials"): + login_page.login(username=username, password=password) + + with allure.step("Retrieve product name"): + product_name = test_data.get("products.backpack.name") + + with allure.step(f"Add {product_name} to cart"): + inventory_page = InventoryPage(page) + inventory_page.add_product_to_cart(product_name) + + with allure.step("Open shopping cart"): + inventory_page.open_cart() + + with allure.step("Verify cart page is loaded"): + cart_page = CartPage(page) + assert cart_page.is_loaded() + + with allure.step(f"Verify '{product_name}' is present in cart"): + assert cart_page.is_product_in_cart(product_name) diff --git a/tests/e2e/test_checkout.py b/tests/e2e/test_checkout.py index 6c4851b..1d53d25 100644 --- a/tests/e2e/test_checkout.py +++ b/tests/e2e/test_checkout.py @@ -5,8 +5,15 @@ from pages.inventory_page import InventoryPage from pages.login_page import LoginPage import pytest +import allure +@allure.epic("SauceDemo Application") +@allure.feature("Checkout") +@allure.story("Valid User Login") +@allure.title("Verify valid user can login successfully") +@allure.description("Verify that a valid user can successfully log into the SauceDemo application.") +@allure.severity(allure.severity_level.CRITICAL) @pytest.mark.smoke @pytest.mark.regression @pytest.mark.e2e diff --git a/tests/e2e/test_inventory.py b/tests/e2e/test_inventory.py index 7685d22..7e4e021 100644 --- a/tests/e2e/test_inventory.py +++ b/tests/e2e/test_inventory.py @@ -1,24 +1,43 @@ from pages.inventory_page import InventoryPage from pages.login_page import LoginPage import pytest +import allure +@allure.epic("SauceDemo Application") +@allure.feature("Inventory Management") +@allure.story("Add Product to Cart") +@allure.title("Verify user can add product to cart") +@allure.description("Verify that a logged-in user can add Sauce Labs Backpack to the shopping cart.") +@allure.severity(allure.severity_level.CRITICAL) @pytest.mark.smoke @pytest.mark.e2e def test_add_product_to_cart(page, config, test_data): """ Verify that a user can add product to the shopping cart. """ - login_page = LoginPage(page) - login_page.navigate(config.get("application.base_url")) - username = test_data.get("users.valid_user.username") - password = test_data.get("users.valid_user.password") - login_page.login(username=username, password=password) - - inventory_page = InventoryPage(page) - assert inventory_page.is_loaded() - - product_name = test_data.get("products.backpack.name") - inventory_page.add_product_to_cart(product_name) - assert inventory_page.get_cart_item_count() == "1" + + with allure.step("Navigate to SauceDemo application"): + login_page = LoginPage(page) + login_page.navigate(config.get("application.base_url")) + + with allure.step("Retrieve valid user credentials"): + username = test_data.get("users.valid_user.username") + password = test_data.get("users.valid_user.password") + + with allure.step("Login with valid credentials"): + login_page.login(username=username, password=password) + + with allure.step("Verify inventory page is loaded"): + inventory_page = InventoryPage(page) + assert inventory_page.is_loaded() + + with allure.step("Retrieve product name"): + product_name = test_data.get("products.backpack.name") + + with allure.step(f"Add {product_name} to cart"): + inventory_page.add_product_to_cart(product_name) + + with allure.step("Verify product was added to cart"): + assert inventory_page.get_cart_item_count() == "1" diff --git a/tests/e2e/test_login.py b/tests/e2e/test_login.py index ec89004..eca9d98 100644 --- a/tests/e2e/test_login.py +++ b/tests/e2e/test_login.py @@ -1,17 +1,32 @@ from pages.login_page import LoginPage import pytest +import allure +@allure.epic("SauceDemo Application") +@allure.feature("Authentication") +@allure.story("Valid User Login") +@allure.title("Verify valid user can login successfully") +@allure.description("Verify that a valid user can successfully log into the SauceDemo application.") +@allure.severity(allure.severity_level.CRITICAL) @pytest.mark.smoke @pytest.mark.e2e def test_valid_login(page, config, test_data): """ Verify that a valid user can log in successfully. """ - login_page = LoginPage(page) - login_page.navigate(config.get("application.base_url")) - username = test_data.get("users.valid_user.username") - password = test_data.get("users.valid_user.password") - login_page.login(username=username, password=password,) - assert page.url.endswith("/inventory.html") + + with allure.step("Navigate to SauceDemo application"): + login_page = LoginPage(page) + login_page.navigate(config.get("application.base_url")) + + with allure.step("Retrieve valid user credentials"): + username = test_data.get("users.valid_user.username") + password = test_data.get("users.valid_user.password") + + with allure.step("Login with valid credentials"): + login_page.login(username=username, password=password,) + + with allure.step("Verify user is successfully logged in"): + assert page.url.endswith("/inventory.html") From e06b1c2363e8cae53c6b86170d764f4f2eb6fc22 Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Sat, 25 Jul 2026 16:08:20 +0530 Subject: [PATCH 09/15] deleted extra conftest file --- fixtures/conftest.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 fixtures/conftest.py diff --git a/fixtures/conftest.py b/fixtures/conftest.py deleted file mode 100644 index e69de29..0000000 From 959df5fd8c1c778daaf568016a1630f52590325f Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Sat, 25 Jul 2026 16:35:38 +0530 Subject: [PATCH 10/15] Add Github Actions CI pipeline --- .DS_Store | Bin 8196 -> 10244 bytes .github/workflows/tests.yml | 117 +++++++++++++++++++++++++++++++ config/config.py | 30 ++++++-- fixtures/.DS_Store | Bin 0 -> 6148 bytes tests/conftest.py | 32 ++++++--- tests/e2e/test_browser_launch.py | 1 + 6 files changed, 166 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/tests.yml create mode 100644 fixtures/.DS_Store diff --git a/.DS_Store b/.DS_Store index b15b6459c9b5839f256e4d15a0e2d6a212dffed6..3db83f831c2f8108b25bb84f7c210deda846602d 100644 GIT binary patch delta 387 zcmZp1XbF&DU|?W$DortDU{C-uIe-{M3-C-V6q~50C@K!*Far4u3`Gp747y;lcw^x- z_K6L=o7p*7IBY>G_!trya)7WDSrw3%!%)Id?3t6FoRpKF1Tq$gHvzHUe=uNRn9L)f zzd2g4m6f#wXngVHYeJ{lS%I2B>@~uHJkjYznJK{qiOHFH>66(+&WJ{2CgpfS5D6x`Sb{Q@Zp7Npcg*OIi+im_>46G~Tg(VeRhaOF>w ze272bf4J?P*lk{TlQ+!0GlyCAS2qp-)k#NJfIJOe`CDcd+gbbk#Fjd9;1w_3FdF({ zg37{EW z`ZT<a?)Zm7paIOFqUWT$z@Q1+Ya} z86-{StZNQ)2~&;R+u~Lz=-u0{LHc|DXx-w|ig$}2=RzITDB*EThCA8vI{vHWhs{TW TJC@xef7<^p&W?W-4NbKHJuy_P diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..7335321 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,117 @@ +name: Playwright Automation Tests + +on: + push: + branches: + - main + - develop + + pull_request: + branches: + - main + - develop + + workflow_dispatch: + inputs: + environment: + description: "Environment to run tests against" + required: true + default: "qa" + type: choice + options: + - qa + +jobs: + test: + name: Run Playwright Tests + runs-on: ubuntu-latest + + steps: + + # -------------------------------- + # 1. Checkout Repository + # -------------------------------- + - name: Checkout repository + uses: actions/checkout@v4 + + # -------------------------------- + # 2. Setup Python + # -------------------------------- + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.13" + + # -------------------------------- + # 3. Install Dependencies + # -------------------------------- + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + # -------------------------------- + # 4. Install Playwright Browsers + # -------------------------------- + - name: Install Playwright browsers + run: | + playwright install --with-deps chromium + + # -------------------------------- + # 5. Run Tests + # -------------------------------- + - name: Run Playwright tests + run: | + pytest --env=${{ github.event.inputs.environment || 'qa' }} -n 2 -v \ + --alluredir=reports/allure-results + + # -------------------------------- + # 6. Upload Allure Results + # -------------------------------- + - name: Upload Allure results + if: always() + uses: actions/upload-artifact@v4 + with: + name: allure-results + path: reports/allure-results + + # -------------------------------- + # 7. Upload HTML Report + # -------------------------------- + - name: Upload HTML report + if: always() + uses: actions/upload-artifact@v4 + with: + name: html-report + path: reports/html + + # -------------------------------- + # 8. Upload Logs + # -------------------------------- + - name: Upload automation logs + if: always() + uses: actions/upload-artifact@v4 + with: + name: automation-logs + path: reports/logs + + # -------------------------------- + # 9. Upload Screenshots + # -------------------------------- + - name: Upload failure screenshots + if: always() + uses: actions/upload-artifact@v4 + with: + name: failure-screenshots + path: reports/screenshots + + # -------------------------------- + # 10. Upload Playwright Traces + # -------------------------------- + - name: Upload Playwright traces + if: always() + uses: actions/upload-artifact@v4 + with: + name: playwright-traces + path: reports/traces + diff --git a/config/config.py b/config/config.py index b0e1880..0011be0 100644 --- a/config/config.py +++ b/config/config.py @@ -14,24 +14,37 @@ class ConfigManager: Responsible for loading and providing framework configuration. """ - def __init__(self): + def __init__(self, environment=None): self._environment = None self._config = {} # self initialization configuration manager - self.load_environment() + self.load_environment(environment) self.load_configuration() self.validate() - def load_environment(self) -> None: + def load_environment(self, environment=None) -> None: """ - Load the active environment from the .env file. + Load the active environment. + + Priority: + 1. Explicit environment passed as an argument. + 2. ENVIRONMENT value from .env file. """ + # Load variables from .env load_dotenv() - self._environment = os.getenv("ENVIRONMENT") + + # Use explicitly provided environment first + if environment: + self._environment = environment + else: + # Otherwise use environment variable from .env + self._environment = os.getenv("ENVIRONMENT") if not self._environment: raise ValueError("ENVIRONMENT variable not set in .env file.") + print(f"Active environment: {self._environment}") + def set_environment(self, environment: str) -> None: """ @@ -42,6 +55,13 @@ def set_environment(self, environment: str) -> None: self._environment = environment + def get_environment(self) -> str: + """ + Return the currently active environment. + """ + return self._environment + + def load_configuration(self) -> None: """ Load configuration from the active environment JSON file. diff --git a/fixtures/.DS_Store b/fixtures/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 Date: Sat, 25 Jul 2026 16:45:45 +0530 Subject: [PATCH 11/15] removed tests.yml file --- .github/workflows/tests.yml | 117 ------------------------------------ 1 file changed, 117 deletions(-) delete mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml deleted file mode 100644 index 7335321..0000000 --- a/.github/workflows/tests.yml +++ /dev/null @@ -1,117 +0,0 @@ -name: Playwright Automation Tests - -on: - push: - branches: - - main - - develop - - pull_request: - branches: - - main - - develop - - workflow_dispatch: - inputs: - environment: - description: "Environment to run tests against" - required: true - default: "qa" - type: choice - options: - - qa - -jobs: - test: - name: Run Playwright Tests - runs-on: ubuntu-latest - - steps: - - # -------------------------------- - # 1. Checkout Repository - # -------------------------------- - - name: Checkout repository - uses: actions/checkout@v4 - - # -------------------------------- - # 2. Setup Python - # -------------------------------- - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: "3.13" - - # -------------------------------- - # 3. Install Dependencies - # -------------------------------- - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - - # -------------------------------- - # 4. Install Playwright Browsers - # -------------------------------- - - name: Install Playwright browsers - run: | - playwright install --with-deps chromium - - # -------------------------------- - # 5. Run Tests - # -------------------------------- - - name: Run Playwright tests - run: | - pytest --env=${{ github.event.inputs.environment || 'qa' }} -n 2 -v \ - --alluredir=reports/allure-results - - # -------------------------------- - # 6. Upload Allure Results - # -------------------------------- - - name: Upload Allure results - if: always() - uses: actions/upload-artifact@v4 - with: - name: allure-results - path: reports/allure-results - - # -------------------------------- - # 7. Upload HTML Report - # -------------------------------- - - name: Upload HTML report - if: always() - uses: actions/upload-artifact@v4 - with: - name: html-report - path: reports/html - - # -------------------------------- - # 8. Upload Logs - # -------------------------------- - - name: Upload automation logs - if: always() - uses: actions/upload-artifact@v4 - with: - name: automation-logs - path: reports/logs - - # -------------------------------- - # 9. Upload Screenshots - # -------------------------------- - - name: Upload failure screenshots - if: always() - uses: actions/upload-artifact@v4 - with: - name: failure-screenshots - path: reports/screenshots - - # -------------------------------- - # 10. Upload Playwright Traces - # -------------------------------- - - name: Upload Playwright traces - if: always() - uses: actions/upload-artifact@v4 - with: - name: playwright-traces - path: reports/traces - From 18b438290608993ff99e5a73ff7f0f4f37c3d71a Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Sat, 25 Jul 2026 16:53:43 +0530 Subject: [PATCH 12/15] Fix CI headless browser execution --- .github/workflows/playwright-tests.yml | 2 +- config/environments/qa.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/playwright-tests.yml b/.github/workflows/playwright-tests.yml index d40d716..c734d55 100644 --- a/.github/workflows/playwright-tests.yml +++ b/.github/workflows/playwright-tests.yml @@ -42,7 +42,7 @@ jobs: # 5. Run tests - name: Run Playwright tests run: | - pytest -n -2 -v --env=qa --alluredir=allure-results --html=reports/html/report.html --self-contained-html + pytest -n 2 -v --env=qa --alluredir=allure-results --html=reports/html/report.html --self-contained-html # 6. Upload Allure results - name: Upload Allure Results diff --git a/config/environments/qa.json b/config/environments/qa.json index e43bb64..0e70816 100644 --- a/config/environments/qa.json +++ b/config/environments/qa.json @@ -4,7 +4,7 @@ }, "browser": { "name": "chromium", - "headless": false, + "headless": true, "slow_mo": 700 }, "timeouts": { From 3493dd1e34a7e226436a18a1a54ce9d85f635c98 Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Sat, 25 Jul 2026 16:59:09 +0530 Subject: [PATCH 13/15] "Fix environment configuration for CI execution --- .github/workflows/playwright-tests.yml | 2 +- config/environments/ci.json | 19 +++++++++++++++++++ config/environments/qa.json | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 config/environments/ci.json diff --git a/.github/workflows/playwright-tests.yml b/.github/workflows/playwright-tests.yml index c734d55..bef304a 100644 --- a/.github/workflows/playwright-tests.yml +++ b/.github/workflows/playwright-tests.yml @@ -42,7 +42,7 @@ jobs: # 5. Run tests - name: Run Playwright tests run: | - pytest -n 2 -v --env=qa --alluredir=allure-results --html=reports/html/report.html --self-contained-html + pytest -n 2 -v --env=ci --alluredir=allure-results --html=reports/html/report.html --self-contained-html # 6. Upload Allure results - name: Upload Allure Results diff --git a/config/environments/ci.json b/config/environments/ci.json new file mode 100644 index 0000000..0e70816 --- /dev/null +++ b/config/environments/ci.json @@ -0,0 +1,19 @@ +{ + "application": { + "base_url": "https://www.saucedemo.com/" + }, + "browser": { + "name": "chromium", + "headless": true, + "slow_mo": 700 + }, + "timeouts": { + "default": 30000, + "navigation": 60000 + }, + "reports": { + "take_screenshot_on_failure": true, + "record_video": false, + "trace": true + } +} diff --git a/config/environments/qa.json b/config/environments/qa.json index 0e70816..e43bb64 100644 --- a/config/environments/qa.json +++ b/config/environments/qa.json @@ -4,7 +4,7 @@ }, "browser": { "name": "chromium", - "headless": true, + "headless": false, "slow_mo": 700 }, "timeouts": { From 38ee963876704f6e11f17b482b91ebcbffc405bf Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Sat, 25 Jul 2026 17:04:06 +0530 Subject: [PATCH 14/15] Fix browser configuration test for CI environment --- tests/unit/test_config_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/test_config_manager.py b/tests/unit/test_config_manager.py index f65ffed..3f416e1 100644 --- a/tests/unit/test_config_manager.py +++ b/tests/unit/test_config_manager.py @@ -9,7 +9,7 @@ def test_configuration_loads_successfully(config): @pytest.mark.unit def test_browser_configuration(config): assert config.get("browser.name") == "chromium" - assert config.get("browser.headless") is False + assert isinstance(config.get("browser.headless"), bool) assert config.get("browser.slow_mo") == 700 From 910d2903140adfac9303592c1ca919e1265d5448 Mon Sep 17 00:00:00 2001 From: Prateek Dharwal Date: Sun, 26 Jul 2026 11:48:39 +0530 Subject: [PATCH 15/15] Add data-driven testing for login inventory and checkout --- .DS_Store | Bin 10244 -> 8196 bytes ...9ca4-4eed-a509-6fe5d79887ac-attachment.txt | 5 + ...573c-4cb1-b478-a308690c903a-attachment.txt | 5 + ...dd43-4f31-8af1-8d4954b0d333-container.json | 1 + ...c5da-4504-9cd5-5d02f76281b4-container.json | 1 + ...fe-da83-420a-9026-52db32ef67e7-result.json | 1 + ...e957-4199-9bb5-2508a41fdba3-container.json | 1 + ...6f-54b1-4b31-84b8-2a2f4c5f6f12-result.json | 1 + ...74c4-4432-9cee-ceebd26a1669-container.json | 1 + ...34ce-4b65-95cd-319deb671553-container.json | 1 + ...30b1-4f5f-8911-b3c2360c0f1c-attachment.txt | 5 + ...c0c6-444d-8087-88ad3208102e-container.json | 1 + ...fc-df3c-42a4-bb50-5ca89f1f77f7-result.json | 1 + ...0a-59fb-48a5-a004-ed69970f22fb-result.json | 1 + ...8963-46c1-b902-9658fbe7f8cd-attachment.txt | 2 + ...c914-4459-8dbc-8ca5d8f38097-container.json | 1 + ...f2dd-48c4-9198-9c0b509a0650-attachment.txt | 1 + ...b227-43f3-9af9-2c404def89ec-container.json | 1 + ...2e6e-4441-a87c-678400ce3e98-container.json | 1 + ...a799-47d6-aefc-6172759010d1-container.json | 1 + ...9ad4-4e2e-94c4-cb8ebbb8a000-container.json | 1 + ...2f26-4169-b307-07ab0b181c44-container.json | 1 + ...7c5a-4014-b5dc-0b54b3fe5c17-container.json | 1 + ...1ada-49f4-8833-1c7e2d1d9249-container.json | 1 + ...bb4b-447f-9a56-c5fcbe00c8b0-container.json | 1 + ...e6ca-4d1d-b75b-e2a07e2a9b2b-attachment.txt | 2 + ...ae0f-412e-ba8a-cca531658c01-container.json | 1 + ...e1-11ad-4dc1-bc82-9b13a7b1019d-result.json | 1 + ...ddcf-4b05-882b-694de105f7ba-container.json | 1 + ...3dde-4fc1-88ac-21809108ccfd-attachment.txt | 5 + ...c385-4cc1-a992-586ca98b85f3-attachment.txt | 5 + ...ee50-4198-acf1-76090ceb9f63-container.json | 1 + ...7864-4ebf-a854-0f3595a7af28-container.json | 1 + ...f905-4fd1-9306-eddc0b22be5e-attachment.txt | 5 + ...8b02-4373-b6a1-20d600f337b9-attachment.txt | 2 + ...c4-222a-471a-9a38-a73f2a72bc7a-result.json | 1 + ...bd-ade8-4f39-b150-4610279f77cb-result.json | 1 + ...6a70-4f4b-becd-e3295e8a8477-container.json | 1 + ...56f0-4a51-b6a0-c2965c63889d-container.json | 1 + ...f9ab-4b9c-ac0f-8c1dd730dcec-container.json | 1 + ...ccad-49ea-aa3a-9ce9eac89395-container.json | 1 + ...cbd2-4500-a266-f4aa80289ea2-container.json | 1 + ...08bd-418f-8807-d5c2460a51da-container.json | 1 + ...5e10-4448-b615-9d25fb8312df-container.json | 1 + ...9f80-4dd1-9d96-1834938105fc-container.json | 1 + ...1863-4fea-bde1-c68812310772-container.json | 1 + ...9d-e445-4983-8e8d-920a38b3367b-result.json | 1 + ...6427-4fc8-ad06-b940def4bf5c-container.json | 1 + ...3fe1-4e33-a27a-dba1eac8cbb4-container.json | 1 + ...dd4e-4b46-9075-8972a43a4660-attachment.txt | 5 + ...0d70-4403-bb3c-39b4f4df518d-container.json | 1 + ...b6ed-43e5-a869-428fb8cea370-container.json | 1 + ...65de-4154-9796-394a75fecd5e-attachment.txt | 2 + ...cf1c-47f3-ab66-a69db9bf749c-attachment.txt | 5 + ...eb75-4221-9dd4-882157d82603-container.json | 1 + ...3cf6-4cdf-8d0c-3dbabf9f8c24-container.json | 1 + ...8390-48de-a568-08f05f5c5ecd-attachment.txt | 2 + ...aa69-44e5-ad33-7088c610324b-container.json | 1 + ...75-5164-4c44-a418-f8cfb1846c1a-result.json | 1 + ...98-d1a2-4d0a-be8f-7a5d7cfed1a7-result.json | 1 + ...5851-44b1-a715-e7be1a7dea5c-container.json | 1 + ...6431-49f1-abff-44456f4a4c66-container.json | 1 + ...1909-4e60-bd53-3743a541fe53-attachment.txt | 5 + ...3b89-4d92-a553-31ddbe9dc3f0-attachment.txt | 2 + ...e913-4aae-ac4b-0a1ef099ce1e-container.json | 1 + ...b29f-426d-a4b6-0a590575dab5-container.json | 1 + ...d3a8-4dd6-a292-7dee3c106d2d-container.json | 1 + ...0121-4884-819d-8c05a0ca6cf7-container.json | 1 + ...fc01-4423-8613-62b5ae82bf7c-attachment.txt | 5 + ...d811-4818-90d5-8fb1e6a35f28-container.json | 1 + ...9773-47a8-a770-99927037b89b-container.json | 1 + ...dd-7aea-4906-89ef-2a6290fb81e8-result.json | 1 + ...ca82-4bc0-89ed-3f41a499a81d-container.json | 1 + ...c2ed-445c-833c-1b8307ad1386-container.json | 1 + ...ff15-4414-be7b-10fafe321c15-container.json | 1 + ...e3-60c4-4488-802d-e7eab8ae0f58-result.json | 1 + ...8b-59cb-420a-b7db-31684585abf1-result.json | 1 + ...8f4c-4bfd-9056-692936026a4a-container.json | 1 + ...73-9e6b-48ca-ac52-32e4ae6a3b48-result.json | 1 + ...0817-47ab-9ee2-7a464612a45f-container.json | 1 + ...40e3-4cc2-9ef7-17b69b162e41-attachment.txt | 5 + ...1d-eb1f-480f-b8e3-b42d9f1a8c39-result.json | 1 + ...22c1-465c-beee-b87cdcf88196-container.json | 1 + ...ac98-4549-bbbc-f026b07432fd-container.json | 1 + ...a1de-4478-8c55-a62fdd334b7f-container.json | 1 + ...92b9-4a6e-8a66-449d90f38ba6-container.json | 1 + ...7c13-47e1-91b4-fbf7d3f775f1-container.json | 1 + ...3410-4a16-9e15-f07a234d079f-attachment.txt | 5 + ...ba93-4928-b414-ae9d35d58896-attachment.txt | 2 + ...3e-3981-4749-a99d-f29f842d2807-result.json | 1 + ...8577-4853-8a83-51a558b180e2-container.json | 1 + ...6d-0787-4862-980c-3906bd04b28d-result.json | 1 + ...0dd6-4f9e-87c2-9d02e86dfa9d-container.json | 1 + ...509e-44a2-a206-559fbba56817-container.json | 1 + ...1fbf-4953-a8a1-d3a6bdaf90bb-container.json | 1 + ...c6bd-4767-9ede-efd8816c0495-container.json | 1 + ...a099-4419-9bce-1eb58dea935c-attachment.txt | 5 + ...2109-49c4-8f6c-38533fe83b00-container.json | 1 + ...4e2b-407b-bc99-c0849a205de0-container.json | 1 + ...2d9a-4755-a6eb-c780dc7ed115-container.json | 1 + ...9dee-4d7b-ae21-0800d6e266dd-container.json | 1 + ...a5d7-4fea-a71b-be0d9e05c09a-attachment.txt | 5 + ...ab07-497f-b87d-77b214955ed4-container.json | 1 + ...56-2378-4e26-9460-08c3ceb6168e-result.json | 1 + ...845e-449f-bff8-f4d22ca1686b-container.json | 1 + ...75f4-4a5d-98a1-98380fe3b643-container.json | 1 + ...d990-4fa6-95cf-d60bc74d9e24-attachment.txt | 2 + ...136d-4531-b589-c04adfb5aef8-container.json | 1 + ...0ba5-4abc-9bd4-5c7667ef5ec2-container.json | 1 + ...b9-292d-4190-8024-fb95f072d51e-result.json | 1 + ...d1fa-4707-9a10-0a6f0fbbfeae-container.json | 1 + ...f5-2c96-4574-8486-ef0aa3e10d80-result.json | 1 + ...7f25-4424-85e3-260da2fd7526-container.json | 1 + ...8409-415f-a8af-1fe311d5331e-attachment.txt | 5 + ...0f3d-4da3-9c99-c8827bc85847-container.json | 1 + ...35-99f7-4403-9178-8489670723f9-result.json | 1 + ...84c9-48c8-8fed-cc7fc69ec9cf-attachment.txt | 5 + ...6707-4360-90fb-a36e4cf4cdc5-attachment.txt | 5 + ...d6-deab-401d-b627-cb018ee35235-result.json | 1 + ...61-03cf-4e49-b0a0-0ee2e517c2a3-result.json | 1 + ...530c-4643-ae0e-42c392dc0f1e-container.json | 1 + ...3e82-4365-bee2-a931092b3145-container.json | 1 + ...9e02-473d-8aef-d85d8a7bd605-container.json | 1 + ...cf45-4ab1-9f63-3e59755e9f20-container.json | 1 + ...b3bf-4907-8621-4674786f5f54-container.json | 1 + ...896d-4d36-937b-232fb535f40c-attachment.txt | 2 + ...74ce-4bfc-9db9-7e829e816758-container.json | 1 + ...1135-4878-a632-1559597ee371-container.json | 1 + ...00d2-4c57-813d-de2194ae0373-container.json | 1 + ...891d-44fb-b061-c4eaadfe0975-container.json | 1 + ...06c2-470a-a5a7-6e6559b861ce-container.json | 1 + ...b190-4892-9fae-2a4de71bbfcc-attachment.txt | 5 + ...83d6-47c6-9e40-265be9f6ec98-container.json | 1 + ...8ffa-4445-a12c-914ae578785f-container.json | 1 + ...fb2c-45f7-ab5a-45acaeb16711-attachment.txt | 5 + ...05-70ea-4f9a-8e8e-8209b09ddc16-result.json | 1 + ...837f-4ade-8188-6a2600d83df5-attachment.txt | 5 + ...f73d-44f2-8e30-407294352aa7-container.json | 1 + ...b983-4bb8-bdb7-c96f7fd23c60-container.json | 1 + ...c5b4-4f37-9214-b3259866cd0d-attachment.txt | 1 + ...23b3-41c4-89a0-b22208130be2-container.json | 1 + ...d19b-4b51-b189-a1976d05bd50-container.json | 1 + ...4911-49aa-87d9-a28c88bc9c84-container.json | 1 + ...8809-4d18-afc1-7cf78a235010-container.json | 1 + ...3401-4247-8293-b8412b5e7e79-container.json | 1 + ...2d0c-4498-9a23-2b486dee7e62-container.json | 1 + ...bf93-480c-9557-ed6f08d74df0-container.json | 1 + ...e4a3-4369-9f9f-dbeb8fb18983-container.json | 1 + ...c76f-4855-883a-0c29dde8d644-attachment.txt | 5 + ...722e-4ce9-9eb2-fba650a0929e-container.json | 1 + ...9531-4539-b62f-5823fec50201-container.json | 1 + ...e9df-4b40-b184-82840bfb499c-container.json | 1 + ...6a8d-40ba-b5ef-0c3b030164d9-container.json | 1 + ...f515-40d4-a5a5-d2e567182b79-container.json | 1 + ...86-9389-4b40-a980-9be0e235b3e4-result.json | 1 + ...7f54-407b-98df-18eb62b2c443-attachment.txt | 5 + ...5eba-4fd0-8cd0-bc7fe60514f1-attachment.txt | 2 + ...6e81-4643-a324-8fc936508ed3-container.json | 1 + ...488b-4086-a49b-db92bf12b700-container.json | 1 + ...b73f-48d1-9194-c1dde35b43d7-container.json | 1 + ...687b-4552-84c5-3c76b2ef872e-attachment.txt | 2 + ...06a3-4b8e-b9f3-9e079a0f97d5-container.json | 1 + ...2252-4521-ab22-3d8a21fd9e91-attachment.txt | 5 + ...53ad-46ac-a7a6-22b843299e94-container.json | 1 + ...47f7-465f-9791-a6a9b7e6e41b-attachment.txt | 5 + ...c245-48f3-b73e-a935172dc462-container.json | 1 + ...28e2-45c8-9d6e-75223fe30665-attachment.txt | 5 + ...7672-4d29-b9c7-a534fc84f414-container.json | 1 + ...504a-42f9-9f9e-a1c6fb09da66-attachment.txt | 5 + ...5084-405a-b09c-e7619c9991f0-container.json | 1 + ...3acd-4658-8e05-9b333085960d-container.json | 1 + ...fe36-4f61-a34e-28c5b415d355-container.json | 1 + ...e0e5-44bb-a4d7-40ed1a9437c1-container.json | 1 + ...3f67-41a3-8d81-e1fe79651ddb-container.json | 1 + ...bf4b-4b9b-aafe-65a889d0ed14-container.json | 1 + ...018a-482b-a4a3-d307afe1910f-container.json | 1 + ...cb6c-4bc8-a8cb-599c0fbbe218-container.json | 1 + ...eb9d-4082-aa94-2b52a55846ff-container.json | 1 + ...47e4-473c-a07a-387ea8a2df7d-attachment.txt | 2 + ...fa79-467f-9ee9-137c56348e6c-container.json | 1 + ...2bb6-41d5-bfe8-7e9cc4f9dd78-container.json | 1 + ...3076-4d48-a5db-56df21e18705-container.json | 1 + ...4b7f-4e38-ba88-0ecc9146fe2e-container.json | 1 + ...c690-4b0d-82dc-2168900551f2-attachment.txt | 5 + ...407a-4f89-b0bf-bfb5274eac56-attachment.txt | 5 + ...54-916d-4dab-bc16-07e0c4783a0b-result.json | 1 + ...bad3-4cc4-9a61-f0e8819995f0-attachment.txt | 5 + ...d6ff-483c-99be-57fbc6606a26-container.json | 1 + ...6e7a-45e7-85f1-e56b8e28bec0-container.json | 1 + ...5d-b0a5-438c-8889-1497af0e553c-result.json | 1 + ...782c-4a1f-bf7e-41b1a9efdb26-container.json | 1 + ...6684-4807-b7b0-4041eae9f9db-container.json | 1 + ...166b-4ff2-a085-c67e0b22f2eb-container.json | 1 + ...3ddc-4eb8-ad47-9183ad25f794-container.json | 1 + ...9cb0-43a8-b4a1-da51529d7a04-container.json | 1 + ...81-aa56-423d-8911-ec845146c6f1-result.json | 1 + ...2010-464c-bb2e-fbe0e9ff9634-container.json | 1 + ...bd17-4fcb-a3f0-7133a006c708-container.json | 1 + ...e798-4318-9c83-e0b25e9cec2c-container.json | 1 + ...a9-2903-4016-a95a-559d04073d9a-result.json | 1 + ...c19f-46c6-8114-7745325f03e3-container.json | 1 + ...4902-4b99-9071-014c5f694600-container.json | 1 + ...dbde-42e1-b483-b57212cd6a7d-container.json | 1 + ...70f7-4164-9595-700217032300-container.json | 1 + ...90c4-4835-89c4-768dbf026ed4-attachment.txt | 5 + ...46-efd3-4d93-8694-01af91141225-result.json | 1 + ...e21a-4f54-b3af-c568baf573b0-container.json | 1 + ...2aac-4f95-b06a-0b90e1991769-container.json | 1 + ...a089-477c-a65a-ed695ce6d632-container.json | 1 + ...d1e2-4d53-b6b0-adc1a629bc17-attachment.txt | 5 + ...9425-4eb1-b7cf-7876592de690-attachment.txt | 5 + ...dd-24da-45ee-9f69-8b5f19b07f53-result.json | 1 + ...188c-476c-8730-d1dfbcd5c03c-container.json | 1 + ...235e-4e88-82d0-a5d57726e0c8-container.json | 1 + ...bef1-4dd1-821f-719a73a59ce5-attachment.txt | 5 + ...09df-43cb-bb9d-0a40a3ed834a-attachment.txt | 5 + ...a9fb-4f52-89df-14ea85cac2e0-container.json | 1 + ...eae0-4881-96d3-b4c15209bbf1-container.json | 1 + ...5419-4d1f-a6f4-e4effd6fd2b5-container.json | 1 + ...6867-4e54-9981-3570fc121b96-attachment.txt | 5 + ...509d-41f9-918f-b5a1539e794c-container.json | 1 + ...f7-0b72-48d2-9031-ef832146ab8a-result.json | 1 + ...cee3-4f29-b6dd-4de6a2541627-container.json | 1 + ...ac8e-4238-8551-7bb6883fa114-container.json | 1 + ...67-9ba5-4f31-a0d9-910b3cf1b10e-result.json | 1 + ...867a-43cc-acdf-d1638a2d0270-container.json | 1 + ...0201-4e55-8a54-f5d3e68684ab-container.json | 1 + ...0afb-4e6f-b2b4-ed7e5a72d5d3-container.json | 1 + ...959c-449f-bbd3-78948f47a3d2-attachment.txt | 2 + ...6d83-4be1-9880-c142e1d12655-container.json | 1 + ...a314-4da1-be38-cb0671216e94-attachment.txt | 5 + ...ec9a-4c9b-bffc-d1848f3eb823-attachment.txt | 2 + ...f51f-4d6e-b79c-0e705739353c-container.json | 1 + ...1919-49be-b634-dde9857f7d8d-container.json | 1 + ...d1-fa9d-4dc9-ae84-c82f32f47c46-result.json | 1 + ...aef5-4987-8a5b-c386437fa9de-container.json | 1 + ...dad2-4852-910f-b71d323ac6e1-container.json | 1 + ...d5c4-40ce-8b71-16d1a60fbe99-container.json | 1 + ...ed6b-4c24-af62-1070a15e2f71-container.json | 1 + ...2c9e-4b7f-a41b-b2e2e665c6b4-container.json | 1 + ...cfac-4967-986a-907481e2d8e8-container.json | 1 + ...854a-4469-b0dd-be998fbca306-container.json | 1 + ...ba36-4bc2-84be-503b476a18c1-container.json | 1 + ...1014-49d0-b499-7e1f8b54039d-container.json | 1 + ...a981-45d4-af8c-098cbc55e65e-container.json | 1 + ...9c1e-479c-90b1-d588fb272ad5-container.json | 1 + ...390d-4929-86e5-e5156561253b-container.json | 1 + ...0fc8-48ad-ab40-8e1cd7e1e782-container.json | 1 + ...5458-4976-9b6c-087f8baeaceb-container.json | 1 + ...3bfd-4a07-80c4-bb3b3eb438bf-container.json | 1 + ...f7e6-4a50-b830-c173607aa421-container.json | 1 + ...f471-4092-a5ee-5aea1488f5b7-container.json | 1 + ...a92c-488a-a507-d455e026eb12-container.json | 1 + ...32c5-4fb1-a910-b6d33da6675f-container.json | 1 + ...8e90-44e2-8d3c-e41d1cd423d4-attachment.txt | 5 + ...45-eabd-48fe-8854-38db3729c405-result.json | 1 + ...05db-45cf-96b8-a32b27a27719-container.json | 1 + ...b50b-4b64-9fae-7f20ab4163eb-container.json | 1 + ...98dd-470d-96cb-03d80d38926c-container.json | 1 + ...abaf-4f0d-b75e-bbef065ce849-container.json | 1 + ...dc-04ac-40a3-81d8-10795d6633ec-result.json | 1 + ...b91c-4a20-9f9d-f287a1a0534d-container.json | 1 + ...1676-448f-8be3-8539980368fb-container.json | 1 + ...ba57-4e46-8b6c-67b77125b5fd-container.json | 1 + ...70e3-485d-90c6-d4ecac7e406a-attachment.txt | 5 + ...54-0054-44f9-9082-ceef2b3904fb-result.json | 1 + ...eafc-453a-8488-90fc1f565f6c-attachment.txt | 5 + ...0b-3b7c-435c-a344-60679c79ef17-result.json | 1 + ...f7ac-46b9-9381-3b4ff9e91520-container.json | 1 + ...123c-4b97-aa28-a933f9b08a68-container.json | 1 + ...d320-4caa-a222-b074168e4267-container.json | 1 + ...05a8-456a-9e15-3173d951e8e0-container.json | 1 + ...0e0c-4992-baef-56ff03bb17d7-container.json | 1 + ...3da6-439a-9e84-6c13d527dfcd-container.json | 1 + ...bb37-40bf-b1c4-f39add9aceea-container.json | 1 + ...cdcf-44a7-b74f-a21ddef01e78-container.json | 1 + ...b5b7-4f54-819c-eebc2d541d9e-container.json | 1 + ...da28-4bf4-993c-1010fb4ddd8e-container.json | 1 + ...22f6-4b52-9d73-1f87577746b9-container.json | 1 + ...49ea-4fc1-aff3-50f4f69debd6-container.json | 1 + ...f485-4eb3-b841-3a0a9ba9316d-attachment.txt | 2 + ...93ea-44dc-875e-57f159f287c0-attachment.txt | 2 + ...b2b4-4bb8-85da-d7295efef122-container.json | 1 + ...b015-48ba-ae40-c389dc86df03-container.json | 1 + ...5c7b-42ce-9c2d-d85a3ef57423-attachment.txt | 5 + ...73ed-4860-90ec-4eb296ab3103-container.json | 1 + ...fc28-4f12-8cd5-73cb896b1979-container.json | 1 + ...06b6-4795-9540-830c96f7b0aa-container.json | 1 + ...9b69-4505-a80e-0a96a06573c9-attachment.txt | 5 + ...b587-4812-bd77-76b32c615231-container.json | 1 + ...921a-4345-a157-cddf9bbccab7-container.json | 1 + ...1dcc-406d-bf55-ee9d6a4fe5c9-container.json | 1 + ...17a4-4f62-9384-f6c8e09b1e70-container.json | 1 + ...9ce6-46e5-9634-28bff10f0c9e-container.json | 1 + ...3a15-427f-a71d-ad3899bfc20c-attachment.txt | 5 + ...7900-4465-9119-e4de72da658d-container.json | 1 + ...b959-4699-8c33-077a65cbb7e2-container.json | 1 + ...360b-4fff-9ef2-9801b5a40f43-container.json | 1 + ...58cf-4607-a027-fa82d4fa3740-container.json | 1 + ...babf-4cee-b4b2-2f1344864eed-container.json | 1 + ...f42e-4ea3-95c0-6da53462bde8-container.json | 1 + ...c231-47cc-9ced-56b773db978c-container.json | 1 + ...b67c-4c92-bfae-bf29e746b9af-container.json | 1 + ...cca7-4827-85fe-129226387523-attachment.txt | 2 + ...3d01-47c4-ad7a-0f591e4aadaf-container.json | 1 + ...c127-4483-8ea0-c4931a80816e-attachment.txt | 5 + ...37-1cb2-4903-a05e-11caaab43de2-result.json | 1 + ...b941-45b9-b6f5-9b9007f229f9-container.json | 1 + ...ce00-48d6-a927-069a05fa42c1-container.json | 1 + ...94-8bf8-4e70-a4c2-020b0c0d3e3a-result.json | 1 + ...5c03-4fb9-a424-d02c7841530c-container.json | 1 + ...3c7e-4151-90aa-5e2b64d9c5f0-container.json | 1 + ...8589-43b5-bff8-02cdbcb2f449-container.json | 1 + ...e4d7-4fda-8234-f00dcd72e08c-attachment.txt | 5 + ...e87c-4013-b05a-db11b9ff865c-attachment.txt | 2 + ...2d22-4c1a-9918-948760c83671-container.json | 1 + ...89-eaa4-447e-945b-38af21afd77b-result.json | 1 + ...d1a0-441f-8345-679527e56c2f-container.json | 1 + ...cb-2613-4c95-94eb-55ce20fa474e-result.json | 1 + ...b426-495c-b5ad-a031d32e6796-container.json | 1 + ...2d4f-46ad-beae-bb47b62955a2-attachment.txt | 2 + ...220f-4915-87b2-0c0f753476f5-attachment.txt | 2 + ...545d-4541-b2de-b65f58d8ceb0-container.json | 1 + ...9056-4f0a-a30d-7e6c6aa4592b-container.json | 1 + ...7f98-4793-8a37-aaa2bce234c7-attachment.txt | 5 + ...fe37-4849-9638-6c87c125bddb-container.json | 1 + ...2060-4687-83d3-888bfaaf480d-container.json | 1 + ...78-9650-446f-b2e3-2e2a670ae799-result.json | 1 + ...4b3a-4c10-b6ae-141f312f8d00-container.json | 1 + ...c173-40f4-9dd1-f1abe62e065f-container.json | 1 + ...c38d-4008-af44-3cd124d590d0-attachment.txt | 2 + ...f04b-4291-a4e9-e9d54542ce14-attachment.txt | 5 + ...2d3c-412e-bbeb-0661fd1c19c2-container.json | 1 + ...5d-b163-40ef-b90c-9c3bd394645d-result.json | 1 + ...27d8-4f61-88ae-45906964d117-attachment.txt | 5 + ...ba0a-4c30-b75f-f4b8611ad36d-container.json | 1 + ...83e0-45d9-bf4e-de82743576dd-container.json | 1 + ...d6d0-4982-b846-b7ef99ef8d49-container.json | 1 + ...1b-bd59-4496-9e3a-f7afe2cfa9a3-result.json | 1 + ...3789-4f3e-9fbd-9a0cbc5b4a83-attachment.txt | 2 + ...1b-2bd6-4104-9b82-a1540e5c4c83-result.json | 1 + ...9b55-4112-add7-07f4d542a260-container.json | 1 + ...37-76f7-4883-b5be-2ce1ae8e36a8-result.json | 1 + ...81a6-4394-9ae9-e9a20feef998-container.json | 1 + ...4a-c0ab-4d01-8381-908e02787431-result.json | 1 + ...dd1f-4446-9418-dce48e718fdc-attachment.txt | 5 + ...c844-43f2-8f11-c4e41f32f435-container.json | 1 + core/test_data_manager.py | 10 ++ test_data/checkout.json | 17 +++ test_data/users.json | 46 ++++-- tests/e2e/test_cart.py | 40 +++-- tests/e2e/test_checkout.py | 142 +++++++++++------- tests/e2e/test_inventory.py | 35 +++-- tests/e2e/test_login.py | 66 +++++++- 354 files changed, 827 insertions(+), 89 deletions(-) create mode 100644 allure-results/00106808-9ca4-4eed-a509-6fe5d79887ac-attachment.txt create mode 100644 allure-results/00b3d655-573c-4cb1-b478-a308690c903a-attachment.txt create mode 100644 allure-results/017234eb-dd43-4f31-8af1-8d4954b0d333-container.json create mode 100644 allure-results/02b9a3ec-c5da-4504-9cd5-5d02f76281b4-container.json create mode 100644 allure-results/0306b7fe-da83-420a-9026-52db32ef67e7-result.json create mode 100644 allure-results/042739ed-e957-4199-9bb5-2508a41fdba3-container.json create mode 100644 allure-results/04cdb46f-54b1-4b31-84b8-2a2f4c5f6f12-result.json create mode 100644 allure-results/0658dec7-74c4-4432-9cee-ceebd26a1669-container.json create mode 100644 allure-results/067c8f9c-34ce-4b65-95cd-319deb671553-container.json create mode 100644 allure-results/068c30d1-30b1-4f5f-8911-b3c2360c0f1c-attachment.txt create mode 100644 allure-results/07a96b55-c0c6-444d-8087-88ad3208102e-container.json create mode 100644 allure-results/08d613fc-df3c-42a4-bb50-5ca89f1f77f7-result.json create mode 100644 allure-results/090d450a-59fb-48a5-a004-ed69970f22fb-result.json create mode 100644 allure-results/09181170-8963-46c1-b902-9658fbe7f8cd-attachment.txt create mode 100644 allure-results/0a996218-c914-4459-8dbc-8ca5d8f38097-container.json create mode 100644 allure-results/0af2f73c-f2dd-48c4-9198-9c0b509a0650-attachment.txt create mode 100644 allure-results/0b2181e8-b227-43f3-9af9-2c404def89ec-container.json create mode 100644 allure-results/0b2f982f-2e6e-4441-a87c-678400ce3e98-container.json create mode 100644 allure-results/0bef4b26-a799-47d6-aefc-6172759010d1-container.json create mode 100644 allure-results/0c43d1fc-9ad4-4e2e-94c4-cb8ebbb8a000-container.json create mode 100644 allure-results/0d97f435-2f26-4169-b307-07ab0b181c44-container.json create mode 100644 allure-results/0daaec94-7c5a-4014-b5dc-0b54b3fe5c17-container.json create mode 100644 allure-results/0e1f35c6-1ada-49f4-8833-1c7e2d1d9249-container.json create mode 100644 allure-results/0ecc5552-bb4b-447f-9a56-c5fcbe00c8b0-container.json create mode 100644 allure-results/109e7421-e6ca-4d1d-b75b-e2a07e2a9b2b-attachment.txt create mode 100644 allure-results/10ceaeae-ae0f-412e-ba8a-cca531658c01-container.json create mode 100644 allure-results/111947e1-11ad-4dc1-bc82-9b13a7b1019d-result.json create mode 100644 allure-results/11f355e5-ddcf-4b05-882b-694de105f7ba-container.json create mode 100644 allure-results/13326e04-3dde-4fc1-88ac-21809108ccfd-attachment.txt create mode 100644 allure-results/14f3a05b-c385-4cc1-a992-586ca98b85f3-attachment.txt create mode 100644 allure-results/16287d5d-ee50-4198-acf1-76090ceb9f63-container.json create mode 100644 allure-results/16e7f762-7864-4ebf-a854-0f3595a7af28-container.json create mode 100644 allure-results/1819e239-f905-4fd1-9306-eddc0b22be5e-attachment.txt create mode 100644 allure-results/195d92b3-8b02-4373-b6a1-20d600f337b9-attachment.txt create mode 100644 allure-results/1c0253c4-222a-471a-9a38-a73f2a72bc7a-result.json create mode 100644 allure-results/1c32acbd-ade8-4f39-b150-4610279f77cb-result.json create mode 100644 allure-results/1ddd099b-6a70-4f4b-becd-e3295e8a8477-container.json create mode 100644 allure-results/1f08c533-56f0-4a51-b6a0-c2965c63889d-container.json create mode 100644 allure-results/1f2b74c5-f9ab-4b9c-ac0f-8c1dd730dcec-container.json create mode 100644 allure-results/1f77ce6b-ccad-49ea-aa3a-9ce9eac89395-container.json create mode 100644 allure-results/201fd34d-cbd2-4500-a266-f4aa80289ea2-container.json create mode 100644 allure-results/20bdb1e4-08bd-418f-8807-d5c2460a51da-container.json create mode 100644 allure-results/21bee951-5e10-4448-b615-9d25fb8312df-container.json create mode 100644 allure-results/22f70b01-9f80-4dd1-9d96-1834938105fc-container.json create mode 100644 allure-results/2354868e-1863-4fea-bde1-c68812310772-container.json create mode 100644 allure-results/23e8b39d-e445-4983-8e8d-920a38b3367b-result.json create mode 100644 allure-results/2669acaa-6427-4fc8-ad06-b940def4bf5c-container.json create mode 100644 allure-results/27590a67-3fe1-4e33-a27a-dba1eac8cbb4-container.json create mode 100644 allure-results/2798201e-dd4e-4b46-9075-8972a43a4660-attachment.txt create mode 100644 allure-results/285107be-0d70-4403-bb3c-39b4f4df518d-container.json create mode 100644 allure-results/28c325a0-b6ed-43e5-a869-428fb8cea370-container.json create mode 100644 allure-results/2966539b-65de-4154-9796-394a75fecd5e-attachment.txt create mode 100644 allure-results/2a613758-cf1c-47f3-ab66-a69db9bf749c-attachment.txt create mode 100644 allure-results/2c5a6095-eb75-4221-9dd4-882157d82603-container.json create mode 100644 allure-results/2ca6bde2-3cf6-4cdf-8d0c-3dbabf9f8c24-container.json create mode 100644 allure-results/2cacc41a-8390-48de-a568-08f05f5c5ecd-attachment.txt create mode 100644 allure-results/2d5a1713-aa69-44e5-ad33-7088c610324b-container.json create mode 100644 allure-results/2df8a575-5164-4c44-a418-f8cfb1846c1a-result.json create mode 100644 allure-results/2e3f5d98-d1a2-4d0a-be8f-7a5d7cfed1a7-result.json create mode 100644 allure-results/30c89990-5851-44b1-a715-e7be1a7dea5c-container.json create mode 100644 allure-results/31ff34ad-6431-49f1-abff-44456f4a4c66-container.json create mode 100644 allure-results/32645c5e-1909-4e60-bd53-3743a541fe53-attachment.txt create mode 100644 allure-results/33386259-3b89-4d92-a553-31ddbe9dc3f0-attachment.txt create mode 100644 allure-results/336443f1-e913-4aae-ac4b-0a1ef099ce1e-container.json create mode 100644 allure-results/34736a98-b29f-426d-a4b6-0a590575dab5-container.json create mode 100644 allure-results/349670f4-d3a8-4dd6-a292-7dee3c106d2d-container.json create mode 100644 allure-results/34d2ed9b-0121-4884-819d-8c05a0ca6cf7-container.json create mode 100644 allure-results/35976cac-fc01-4423-8613-62b5ae82bf7c-attachment.txt create mode 100644 allure-results/369e6421-d811-4818-90d5-8fb1e6a35f28-container.json create mode 100644 allure-results/373138de-9773-47a8-a770-99927037b89b-container.json create mode 100644 allure-results/3798c7dd-7aea-4906-89ef-2a6290fb81e8-result.json create mode 100644 allure-results/37ac28e8-ca82-4bc0-89ed-3f41a499a81d-container.json create mode 100644 allure-results/3887b998-c2ed-445c-833c-1b8307ad1386-container.json create mode 100644 allure-results/3acaf8da-ff15-4414-be7b-10fafe321c15-container.json create mode 100644 allure-results/3c5177e3-60c4-4488-802d-e7eab8ae0f58-result.json create mode 100644 allure-results/3c576b8b-59cb-420a-b7db-31684585abf1-result.json create mode 100644 allure-results/3c6dbecc-8f4c-4bfd-9056-692936026a4a-container.json create mode 100644 allure-results/3cb06573-9e6b-48ca-ac52-32e4ae6a3b48-result.json create mode 100644 allure-results/3ea1165c-0817-47ab-9ee2-7a464612a45f-container.json create mode 100644 allure-results/42685400-40e3-4cc2-9ef7-17b69b162e41-attachment.txt create mode 100644 allure-results/428fb91d-eb1f-480f-b8e3-b42d9f1a8c39-result.json create mode 100644 allure-results/43070133-22c1-465c-beee-b87cdcf88196-container.json create mode 100644 allure-results/44d55dbb-ac98-4549-bbbc-f026b07432fd-container.json create mode 100644 allure-results/4526ecd0-a1de-4478-8c55-a62fdd334b7f-container.json create mode 100644 allure-results/464820bd-92b9-4a6e-8a66-449d90f38ba6-container.json create mode 100644 allure-results/476957f5-7c13-47e1-91b4-fbf7d3f775f1-container.json create mode 100644 allure-results/480b9a95-3410-4a16-9e15-f07a234d079f-attachment.txt create mode 100644 allure-results/4a2c9d5a-ba93-4928-b414-ae9d35d58896-attachment.txt create mode 100644 allure-results/4a6f513e-3981-4749-a99d-f29f842d2807-result.json create mode 100644 allure-results/4a90585c-8577-4853-8a83-51a558b180e2-container.json create mode 100644 allure-results/4c4e796d-0787-4862-980c-3906bd04b28d-result.json create mode 100644 allure-results/4c9a5067-0dd6-4f9e-87c2-9d02e86dfa9d-container.json create mode 100644 allure-results/4ce577ec-509e-44a2-a206-559fbba56817-container.json create mode 100644 allure-results/4d714ee7-1fbf-4953-a8a1-d3a6bdaf90bb-container.json create mode 100644 allure-results/4d8517ea-c6bd-4767-9ede-efd8816c0495-container.json create mode 100644 allure-results/4ee2ccee-a099-4419-9bce-1eb58dea935c-attachment.txt create mode 100644 allure-results/4f7c4034-2109-49c4-8f6c-38533fe83b00-container.json create mode 100644 allure-results/4ff8fa85-4e2b-407b-bc99-c0849a205de0-container.json create mode 100644 allure-results/5003c3ef-2d9a-4755-a6eb-c780dc7ed115-container.json create mode 100644 allure-results/501ea5e8-9dee-4d7b-ae21-0800d6e266dd-container.json create mode 100644 allure-results/50e57ff3-a5d7-4fea-a71b-be0d9e05c09a-attachment.txt create mode 100644 allure-results/5135b522-ab07-497f-b87d-77b214955ed4-container.json create mode 100644 allure-results/5231f656-2378-4e26-9460-08c3ceb6168e-result.json create mode 100644 allure-results/53fba904-845e-449f-bff8-f4d22ca1686b-container.json create mode 100644 allure-results/55cba60b-75f4-4a5d-98a1-98380fe3b643-container.json create mode 100644 allure-results/565a27bb-d990-4fa6-95cf-d60bc74d9e24-attachment.txt create mode 100644 allure-results/5722c09d-136d-4531-b589-c04adfb5aef8-container.json create mode 100644 allure-results/57acbcd9-0ba5-4abc-9bd4-5c7667ef5ec2-container.json create mode 100644 allure-results/57b969b9-292d-4190-8024-fb95f072d51e-result.json create mode 100644 allure-results/58286d4e-d1fa-4707-9a10-0a6f0fbbfeae-container.json create mode 100644 allure-results/59ff99f5-2c96-4574-8486-ef0aa3e10d80-result.json create mode 100644 allure-results/5a4f4e60-7f25-4424-85e3-260da2fd7526-container.json create mode 100644 allure-results/5a94ddfb-8409-415f-a8af-1fe311d5331e-attachment.txt create mode 100644 allure-results/5b9c08de-0f3d-4da3-9c99-c8827bc85847-container.json create mode 100644 allure-results/5c844e35-99f7-4403-9178-8489670723f9-result.json create mode 100644 allure-results/5d2baa53-84c9-48c8-8fed-cc7fc69ec9cf-attachment.txt create mode 100644 allure-results/5d9d684b-6707-4360-90fb-a36e4cf4cdc5-attachment.txt create mode 100644 allure-results/5e5858d6-deab-401d-b627-cb018ee35235-result.json create mode 100644 allure-results/5e796b61-03cf-4e49-b0a0-0ee2e517c2a3-result.json create mode 100644 allure-results/5e8590bd-530c-4643-ae0e-42c392dc0f1e-container.json create mode 100644 allure-results/5ec9724b-3e82-4365-bee2-a931092b3145-container.json create mode 100644 allure-results/5f1519f1-9e02-473d-8aef-d85d8a7bd605-container.json create mode 100644 allure-results/5f3d58b1-cf45-4ab1-9f63-3e59755e9f20-container.json create mode 100644 allure-results/60800ac8-b3bf-4907-8621-4674786f5f54-container.json create mode 100644 allure-results/60df417e-896d-4d36-937b-232fb535f40c-attachment.txt create mode 100644 allure-results/61b4cd7b-74ce-4bfc-9db9-7e829e816758-container.json create mode 100644 allure-results/627a3d7b-1135-4878-a632-1559597ee371-container.json create mode 100644 allure-results/6280dc8c-00d2-4c57-813d-de2194ae0373-container.json create mode 100644 allure-results/628dcc7f-891d-44fb-b061-c4eaadfe0975-container.json create mode 100644 allure-results/63096556-06c2-470a-a5a7-6e6559b861ce-container.json create mode 100644 allure-results/65eb221a-b190-4892-9fae-2a4de71bbfcc-attachment.txt create mode 100644 allure-results/66643d59-83d6-47c6-9e40-265be9f6ec98-container.json create mode 100644 allure-results/67ea3b90-8ffa-4445-a12c-914ae578785f-container.json create mode 100644 allure-results/68322245-fb2c-45f7-ab5a-45acaeb16711-attachment.txt create mode 100644 allure-results/685ea505-70ea-4f9a-8e8e-8209b09ddc16-result.json create mode 100644 allure-results/6ac82eac-837f-4ade-8188-6a2600d83df5-attachment.txt create mode 100644 allure-results/6b9cbfb8-f73d-44f2-8e30-407294352aa7-container.json create mode 100644 allure-results/6bf8cd75-b983-4bb8-bdb7-c96f7fd23c60-container.json create mode 100644 allure-results/6c4de56c-c5b4-4f37-9214-b3259866cd0d-attachment.txt create mode 100644 allure-results/6d68bddb-23b3-41c4-89a0-b22208130be2-container.json create mode 100644 allure-results/6df12f68-d19b-4b51-b189-a1976d05bd50-container.json create mode 100644 allure-results/6e00ab39-4911-49aa-87d9-a28c88bc9c84-container.json create mode 100644 allure-results/6e56a7aa-8809-4d18-afc1-7cf78a235010-container.json create mode 100644 allure-results/6eadd376-3401-4247-8293-b8412b5e7e79-container.json create mode 100644 allure-results/6f39b8ce-2d0c-4498-9a23-2b486dee7e62-container.json create mode 100644 allure-results/7006ae66-bf93-480c-9557-ed6f08d74df0-container.json create mode 100644 allure-results/704db28f-e4a3-4369-9f9f-dbeb8fb18983-container.json create mode 100644 allure-results/711ad3ec-c76f-4855-883a-0c29dde8d644-attachment.txt create mode 100644 allure-results/73406d16-722e-4ce9-9eb2-fba650a0929e-container.json create mode 100644 allure-results/743b6986-9531-4539-b62f-5823fec50201-container.json create mode 100644 allure-results/75111882-e9df-4b40-b184-82840bfb499c-container.json create mode 100644 allure-results/76aadc57-6a8d-40ba-b5ef-0c3b030164d9-container.json create mode 100644 allure-results/770bc146-f515-40d4-a5a5-d2e567182b79-container.json create mode 100644 allure-results/786bb286-9389-4b40-a980-9be0e235b3e4-result.json create mode 100644 allure-results/790a3365-7f54-407b-98df-18eb62b2c443-attachment.txt create mode 100644 allure-results/7947040e-5eba-4fd0-8cd0-bc7fe60514f1-attachment.txt create mode 100644 allure-results/79b18519-6e81-4643-a324-8fc936508ed3-container.json create mode 100644 allure-results/7a3b9a95-488b-4086-a49b-db92bf12b700-container.json create mode 100644 allure-results/7b14c04b-b73f-48d1-9194-c1dde35b43d7-container.json create mode 100644 allure-results/7b513542-687b-4552-84c5-3c76b2ef872e-attachment.txt create mode 100644 allure-results/7b7a3529-06a3-4b8e-b9f3-9e079a0f97d5-container.json create mode 100644 allure-results/7bb2b45a-2252-4521-ab22-3d8a21fd9e91-attachment.txt create mode 100644 allure-results/7bb91763-53ad-46ac-a7a6-22b843299e94-container.json create mode 100644 allure-results/7bde4787-47f7-465f-9791-a6a9b7e6e41b-attachment.txt create mode 100644 allure-results/7c28cb7e-c245-48f3-b73e-a935172dc462-container.json create mode 100644 allure-results/7c81610e-28e2-45c8-9d6e-75223fe30665-attachment.txt create mode 100644 allure-results/7d02060f-7672-4d29-b9c7-a534fc84f414-container.json create mode 100644 allure-results/7fdd634b-504a-42f9-9f9e-a1c6fb09da66-attachment.txt create mode 100644 allure-results/807b4a69-5084-405a-b09c-e7619c9991f0-container.json create mode 100644 allure-results/80c966d2-3acd-4658-8e05-9b333085960d-container.json create mode 100644 allure-results/80fa1373-fe36-4f61-a34e-28c5b415d355-container.json create mode 100644 allure-results/81a8dd16-e0e5-44bb-a4d7-40ed1a9437c1-container.json create mode 100644 allure-results/81ae3d27-3f67-41a3-8d81-e1fe79651ddb-container.json create mode 100644 allure-results/834ba1a4-bf4b-4b9b-aafe-65a889d0ed14-container.json create mode 100644 allure-results/841328bc-018a-482b-a4a3-d307afe1910f-container.json create mode 100644 allure-results/85182436-cb6c-4bc8-a8cb-599c0fbbe218-container.json create mode 100644 allure-results/851d4e22-eb9d-4082-aa94-2b52a55846ff-container.json create mode 100644 allure-results/867f03f8-47e4-473c-a07a-387ea8a2df7d-attachment.txt create mode 100644 allure-results/86cd76d2-fa79-467f-9ee9-137c56348e6c-container.json create mode 100644 allure-results/86d85b6c-2bb6-41d5-bfe8-7e9cc4f9dd78-container.json create mode 100644 allure-results/87db1baf-3076-4d48-a5db-56df21e18705-container.json create mode 100644 allure-results/87e41ef1-4b7f-4e38-ba88-0ecc9146fe2e-container.json create mode 100644 allure-results/88a8bea7-c690-4b0d-82dc-2168900551f2-attachment.txt create mode 100644 allure-results/88d1dd1d-407a-4f89-b0bf-bfb5274eac56-attachment.txt create mode 100644 allure-results/8b0f3354-916d-4dab-bc16-07e0c4783a0b-result.json create mode 100644 allure-results/8b1bef8d-bad3-4cc4-9a61-f0e8819995f0-attachment.txt create mode 100644 allure-results/8b93ef3f-d6ff-483c-99be-57fbc6606a26-container.json create mode 100644 allure-results/8bf468fd-6e7a-45e7-85f1-e56b8e28bec0-container.json create mode 100644 allure-results/8c380c5d-b0a5-438c-8889-1497af0e553c-result.json create mode 100644 allure-results/8d0052ae-782c-4a1f-bf7e-41b1a9efdb26-container.json create mode 100644 allure-results/8e094ecb-6684-4807-b7b0-4041eae9f9db-container.json create mode 100644 allure-results/8f08f5e2-166b-4ff2-a085-c67e0b22f2eb-container.json create mode 100644 allure-results/8f83b5d2-3ddc-4eb8-ad47-9183ad25f794-container.json create mode 100644 allure-results/8f9865dc-9cb0-43a8-b4a1-da51529d7a04-container.json create mode 100644 allure-results/8ff4fe81-aa56-423d-8911-ec845146c6f1-result.json create mode 100644 allure-results/905a0c2b-2010-464c-bb2e-fbe0e9ff9634-container.json create mode 100644 allure-results/9208ff38-bd17-4fcb-a3f0-7133a006c708-container.json create mode 100644 allure-results/9389c3be-e798-4318-9c83-e0b25e9cec2c-container.json create mode 100644 allure-results/95066ea9-2903-4016-a95a-559d04073d9a-result.json create mode 100644 allure-results/9563ad09-c19f-46c6-8114-7745325f03e3-container.json create mode 100644 allure-results/9590f30c-4902-4b99-9071-014c5f694600-container.json create mode 100644 allure-results/95a5b8d5-dbde-42e1-b483-b57212cd6a7d-container.json create mode 100644 allure-results/965276ab-70f7-4164-9595-700217032300-container.json create mode 100644 allure-results/9678cde5-90c4-4835-89c4-768dbf026ed4-attachment.txt create mode 100644 allure-results/9703d146-efd3-4d93-8694-01af91141225-result.json create mode 100644 allure-results/980bee34-e21a-4f54-b3af-c568baf573b0-container.json create mode 100644 allure-results/981242a7-2aac-4f95-b06a-0b90e1991769-container.json create mode 100644 allure-results/9913dd03-a089-477c-a65a-ed695ce6d632-container.json create mode 100644 allure-results/9a42970c-d1e2-4d53-b6b0-adc1a629bc17-attachment.txt create mode 100644 allure-results/9a66c7ee-9425-4eb1-b7cf-7876592de690-attachment.txt create mode 100644 allure-results/9b495edd-24da-45ee-9f69-8b5f19b07f53-result.json create mode 100644 allure-results/9cffd1b3-188c-476c-8730-d1dfbcd5c03c-container.json create mode 100644 allure-results/9fa2d053-235e-4e88-82d0-a5d57726e0c8-container.json create mode 100644 allure-results/a0e9ac26-bef1-4dd1-821f-719a73a59ce5-attachment.txt create mode 100644 allure-results/a22a3864-09df-43cb-bb9d-0a40a3ed834a-attachment.txt create mode 100644 allure-results/a2462581-a9fb-4f52-89df-14ea85cac2e0-container.json create mode 100644 allure-results/a2c78f6d-eae0-4881-96d3-b4c15209bbf1-container.json create mode 100644 allure-results/a38563ab-5419-4d1f-a6f4-e4effd6fd2b5-container.json create mode 100644 allure-results/a4d3fc48-6867-4e54-9981-3570fc121b96-attachment.txt create mode 100644 allure-results/a681c84d-509d-41f9-918f-b5a1539e794c-container.json create mode 100644 allure-results/a704dbf7-0b72-48d2-9031-ef832146ab8a-result.json create mode 100644 allure-results/a887f6ec-cee3-4f29-b6dd-4de6a2541627-container.json create mode 100644 allure-results/a93aa469-ac8e-4238-8551-7bb6883fa114-container.json create mode 100644 allure-results/a96c2467-9ba5-4f31-a0d9-910b3cf1b10e-result.json create mode 100644 allure-results/a9d745da-867a-43cc-acdf-d1638a2d0270-container.json create mode 100644 allure-results/aa41ef09-0201-4e55-8a54-f5d3e68684ab-container.json create mode 100644 allure-results/aa7cc8dc-0afb-4e6f-b2b4-ed7e5a72d5d3-container.json create mode 100644 allure-results/ab604762-959c-449f-bbd3-78948f47a3d2-attachment.txt create mode 100644 allure-results/acb29e14-6d83-4be1-9880-c142e1d12655-container.json create mode 100644 allure-results/ad5a30c3-a314-4da1-be38-cb0671216e94-attachment.txt create mode 100644 allure-results/aed288a7-ec9a-4c9b-bffc-d1848f3eb823-attachment.txt create mode 100644 allure-results/aeecdd85-f51f-4d6e-b79c-0e705739353c-container.json create mode 100644 allure-results/af19325e-1919-49be-b634-dde9857f7d8d-container.json create mode 100644 allure-results/af58d0d1-fa9d-4dc9-ae84-c82f32f47c46-result.json create mode 100644 allure-results/afd06bfd-aef5-4987-8a5b-c386437fa9de-container.json create mode 100644 allure-results/b0a96baa-dad2-4852-910f-b71d323ac6e1-container.json create mode 100644 allure-results/b0cd26a4-d5c4-40ce-8b71-16d1a60fbe99-container.json create mode 100644 allure-results/b273d538-ed6b-4c24-af62-1070a15e2f71-container.json create mode 100644 allure-results/b366ed81-2c9e-4b7f-a41b-b2e2e665c6b4-container.json create mode 100644 allure-results/b37f56da-cfac-4967-986a-907481e2d8e8-container.json create mode 100644 allure-results/b385d002-854a-4469-b0dd-be998fbca306-container.json create mode 100644 allure-results/b4867927-ba36-4bc2-84be-503b476a18c1-container.json create mode 100644 allure-results/b49bc1c4-1014-49d0-b499-7e1f8b54039d-container.json create mode 100644 allure-results/b4bd80ca-a981-45d4-af8c-098cbc55e65e-container.json create mode 100644 allure-results/b5c0e39e-9c1e-479c-90b1-d588fb272ad5-container.json create mode 100644 allure-results/b63e3268-390d-4929-86e5-e5156561253b-container.json create mode 100644 allure-results/b6536439-0fc8-48ad-ab40-8e1cd7e1e782-container.json create mode 100644 allure-results/b7686fd7-5458-4976-9b6c-087f8baeaceb-container.json create mode 100644 allure-results/b8319054-3bfd-4a07-80c4-bb3b3eb438bf-container.json create mode 100644 allure-results/b9e0a176-f7e6-4a50-b830-c173607aa421-container.json create mode 100644 allure-results/bc6024bc-f471-4092-a5ee-5aea1488f5b7-container.json create mode 100644 allure-results/bea48022-a92c-488a-a507-d455e026eb12-container.json create mode 100644 allure-results/beffd0ab-32c5-4fb1-a910-b6d33da6675f-container.json create mode 100644 allure-results/bf6ee23d-8e90-44e2-8d3c-e41d1cd423d4-attachment.txt create mode 100644 allure-results/bf92dd45-eabd-48fe-8854-38db3729c405-result.json create mode 100644 allure-results/bfc6090a-05db-45cf-96b8-a32b27a27719-container.json create mode 100644 allure-results/c09f8f5c-b50b-4b64-9fae-7f20ab4163eb-container.json create mode 100644 allure-results/c1481226-98dd-470d-96cb-03d80d38926c-container.json create mode 100644 allure-results/c14b4b05-abaf-4f0d-b75e-bbef065ce849-container.json create mode 100644 allure-results/c1704adc-04ac-40a3-81d8-10795d6633ec-result.json create mode 100644 allure-results/c2444c76-b91c-4a20-9f9d-f287a1a0534d-container.json create mode 100644 allure-results/c286532c-1676-448f-8be3-8539980368fb-container.json create mode 100644 allure-results/c291c128-ba57-4e46-8b6c-67b77125b5fd-container.json create mode 100644 allure-results/c33f1d74-70e3-485d-90c6-d4ecac7e406a-attachment.txt create mode 100644 allure-results/c3e02154-0054-44f9-9082-ceef2b3904fb-result.json create mode 100644 allure-results/c481882c-eafc-453a-8488-90fc1f565f6c-attachment.txt create mode 100644 allure-results/c4a8f70b-3b7c-435c-a344-60679c79ef17-result.json create mode 100644 allure-results/c7321442-f7ac-46b9-9381-3b4ff9e91520-container.json create mode 100644 allure-results/c93921a4-123c-4b97-aa28-a933f9b08a68-container.json create mode 100644 allure-results/c9af6df0-d320-4caa-a222-b074168e4267-container.json create mode 100644 allure-results/ca24b80c-05a8-456a-9e15-3173d951e8e0-container.json create mode 100644 allure-results/ca71aea3-0e0c-4992-baef-56ff03bb17d7-container.json create mode 100644 allure-results/cb397152-3da6-439a-9e84-6c13d527dfcd-container.json create mode 100644 allure-results/cba19dd6-bb37-40bf-b1c4-f39add9aceea-container.json create mode 100644 allure-results/cc7552aa-cdcf-44a7-b74f-a21ddef01e78-container.json create mode 100644 allure-results/cdeacea8-b5b7-4f54-819c-eebc2d541d9e-container.json create mode 100644 allure-results/ce1aabed-da28-4bf4-993c-1010fb4ddd8e-container.json create mode 100644 allure-results/ce67c867-22f6-4b52-9d73-1f87577746b9-container.json create mode 100644 allure-results/cfe59006-49ea-4fc1-aff3-50f4f69debd6-container.json create mode 100644 allure-results/d15a310b-f485-4eb3-b841-3a0a9ba9316d-attachment.txt create mode 100644 allure-results/d3c0ffd4-93ea-44dc-875e-57f159f287c0-attachment.txt create mode 100644 allure-results/d3d169a1-b2b4-4bb8-85da-d7295efef122-container.json create mode 100644 allure-results/d41d30f7-b015-48ba-ae40-c389dc86df03-container.json create mode 100644 allure-results/d46528cf-5c7b-42ce-9c2d-d85a3ef57423-attachment.txt create mode 100644 allure-results/d495daff-73ed-4860-90ec-4eb296ab3103-container.json create mode 100644 allure-results/d634040a-fc28-4f12-8cd5-73cb896b1979-container.json create mode 100644 allure-results/d7e0f70a-06b6-4795-9540-830c96f7b0aa-container.json create mode 100644 allure-results/d862edeb-9b69-4505-a80e-0a96a06573c9-attachment.txt create mode 100644 allure-results/d8b74c5a-b587-4812-bd77-76b32c615231-container.json create mode 100644 allure-results/d91afd60-921a-4345-a157-cddf9bbccab7-container.json create mode 100644 allure-results/dbf133b4-1dcc-406d-bf55-ee9d6a4fe5c9-container.json create mode 100644 allure-results/ddc13fb8-17a4-4f62-9384-f6c8e09b1e70-container.json create mode 100644 allure-results/ddd8dbf9-9ce6-46e5-9634-28bff10f0c9e-container.json create mode 100644 allure-results/dec8f965-3a15-427f-a71d-ad3899bfc20c-attachment.txt create mode 100644 allure-results/ded30c2b-7900-4465-9119-e4de72da658d-container.json create mode 100644 allure-results/df2d679c-b959-4699-8c33-077a65cbb7e2-container.json create mode 100644 allure-results/dfde17ef-360b-4fff-9ef2-9801b5a40f43-container.json create mode 100644 allure-results/e0a1bac2-58cf-4607-a027-fa82d4fa3740-container.json create mode 100644 allure-results/e0b50f25-babf-4cee-b4b2-2f1344864eed-container.json create mode 100644 allure-results/e0ec72a6-f42e-4ea3-95c0-6da53462bde8-container.json create mode 100644 allure-results/e2ba143d-c231-47cc-9ced-56b773db978c-container.json create mode 100644 allure-results/e2e0fc36-b67c-4c92-bfae-bf29e746b9af-container.json create mode 100644 allure-results/e30442ea-cca7-4827-85fe-129226387523-attachment.txt create mode 100644 allure-results/e380268c-3d01-47c4-ad7a-0f591e4aadaf-container.json create mode 100644 allure-results/e39a7b96-c127-4483-8ea0-c4931a80816e-attachment.txt create mode 100644 allure-results/e6329237-1cb2-4903-a05e-11caaab43de2-result.json create mode 100644 allure-results/e662b01f-b941-45b9-b6f5-9b9007f229f9-container.json create mode 100644 allure-results/e6dc4cc3-ce00-48d6-a927-069a05fa42c1-container.json create mode 100644 allure-results/e899b094-8bf8-4e70-a4c2-020b0c0d3e3a-result.json create mode 100644 allure-results/e8a0c441-5c03-4fb9-a424-d02c7841530c-container.json create mode 100644 allure-results/ea6e831c-3c7e-4151-90aa-5e2b64d9c5f0-container.json create mode 100644 allure-results/eb1af7a9-8589-43b5-bff8-02cdbcb2f449-container.json create mode 100644 allure-results/eb626c5f-e4d7-4fda-8234-f00dcd72e08c-attachment.txt create mode 100644 allure-results/ebb3397a-e87c-4013-b05a-db11b9ff865c-attachment.txt create mode 100644 allure-results/ec47491e-2d22-4c1a-9918-948760c83671-container.json create mode 100644 allure-results/ecfc3a89-eaa4-447e-945b-38af21afd77b-result.json create mode 100644 allure-results/ed3b8540-d1a0-441f-8345-679527e56c2f-container.json create mode 100644 allure-results/eda90dcb-2613-4c95-94eb-55ce20fa474e-result.json create mode 100644 allure-results/ee648160-b426-495c-b5ad-a031d32e6796-container.json create mode 100644 allure-results/ee9cf1f3-2d4f-46ad-beae-bb47b62955a2-attachment.txt create mode 100644 allure-results/ef7a4298-220f-4915-87b2-0c0f753476f5-attachment.txt create mode 100644 allure-results/efdf5c45-545d-4541-b2de-b65f58d8ceb0-container.json create mode 100644 allure-results/f09f3e1a-9056-4f0a-a30d-7e6c6aa4592b-container.json create mode 100644 allure-results/f131fa65-7f98-4793-8a37-aaa2bce234c7-attachment.txt create mode 100644 allure-results/f1e4b638-fe37-4849-9638-6c87c125bddb-container.json create mode 100644 allure-results/f22be6f1-2060-4687-83d3-888bfaaf480d-container.json create mode 100644 allure-results/f5022c78-9650-446f-b2e3-2e2a670ae799-result.json create mode 100644 allure-results/f541cfff-4b3a-4c10-b6ae-141f312f8d00-container.json create mode 100644 allure-results/f5ef5e67-c173-40f4-9dd1-f1abe62e065f-container.json create mode 100644 allure-results/f71d53e8-c38d-4008-af44-3cd124d590d0-attachment.txt create mode 100644 allure-results/f78af204-f04b-4291-a4e9-e9d54542ce14-attachment.txt create mode 100644 allure-results/f8247f52-2d3c-412e-bbeb-0661fd1c19c2-container.json create mode 100644 allure-results/f84be35d-b163-40ef-b90c-9c3bd394645d-result.json create mode 100644 allure-results/f84cbee9-27d8-4f61-88ae-45906964d117-attachment.txt create mode 100644 allure-results/f880a0d9-ba0a-4c30-b75f-f4b8611ad36d-container.json create mode 100644 allure-results/f88303f3-83e0-45d9-bf4e-de82743576dd-container.json create mode 100644 allure-results/f958d41c-d6d0-4982-b846-b7ef99ef8d49-container.json create mode 100644 allure-results/f97daf1b-bd59-4496-9e3a-f7afe2cfa9a3-result.json create mode 100644 allure-results/f98394db-3789-4f3e-9fbd-9a0cbc5b4a83-attachment.txt create mode 100644 allure-results/fa0f251b-2bd6-4104-9b82-a1540e5c4c83-result.json create mode 100644 allure-results/fb076ea7-9b55-4112-add7-07f4d542a260-container.json create mode 100644 allure-results/fb5d1e37-76f7-4883-b5be-2ce1ae8e36a8-result.json create mode 100644 allure-results/fbad63aa-81a6-4394-9ae9-e9a20feef998-container.json create mode 100644 allure-results/fc08984a-c0ab-4d01-8381-908e02787431-result.json create mode 100644 allure-results/fd0e0ee9-dd1f-4446-9418-dce48e718fdc-attachment.txt create mode 100644 allure-results/fe94daf6-c844-43f2-8f11-c4e41f32f435-container.json create mode 100644 test_data/checkout.json diff --git a/.DS_Store b/.DS_Store index 3db83f831c2f8108b25bb84f7c210deda846602d..2f7a2d3de00c5a781cc2b91ab01da11c96652cdf 100644 GIT binary patch delta 129 zcmZn(XmOBWU|?W$DortDU;r^WfEYvza8E20o2aKKDh!eb@);O18PYv-@{^Nt@{=|e zPGg_gz`L29gN1`pc(aGV7S_$@CES?=nSrW-K!O`cxPnaCSoocJGQUb72ha?V*$k88 Pd8SRa5G_!trya)7WDSrw3%!%)Id?3t6FoRpKF1Tq$gHvzHUe=uNR*vuoa zg_X4gXms)9ZGxxSS%Dfr>>i;&p6K+V%#`4Q#N^Dp^vTbJ&WJ{2CgHrh%`V7 YfWcw_q9+%~^i4h{@{34saKO9)01ES7od5s; diff --git a/allure-results/00106808-9ca4-4eed-a509-6fe5d79887ac-attachment.txt b/allure-results/00106808-9ca4-4eed-a509-6fe5d79887ac-attachment.txt new file mode 100644 index 0000000..df35693 --- /dev/null +++ b/allure-results/00106808-9ca4-4eed-a509-6fe5d79887ac-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Backpack +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Backpack \ No newline at end of file diff --git a/allure-results/00b3d655-573c-4cb1-b478-a308690c903a-attachment.txt b/allure-results/00b3d655-573c-4cb1-b478-a308690c903a-attachment.txt new file mode 100644 index 0000000..f2cc20f --- /dev/null +++ b/allure-results/00b3d655-573c-4cb1-b478-a308690c903a-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:45:09,642 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:45:11,869 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:45:11,881 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:45:11,881 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Backpack +2026-07-26 11:45:12,612 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Backpack diff --git a/allure-results/017234eb-dd43-4f31-8af1-8d4954b0d333-container.json b/allure-results/017234eb-dd43-4f31-8af1-8d4954b0d333-container.json new file mode 100644 index 0000000..0bf4715 --- /dev/null +++ b/allure-results/017234eb-dd43-4f31-8af1-8d4954b0d333-container.json @@ -0,0 +1 @@ +{"uuid": "5fba6048-890d-4ad8-a060-83e5eb0106f6", "befores": [{"name": "customer_data", "status": "passed", "start": 1785046535974, "stop": 1785046535974}], "afters": [{"name": "customer_data::", "start": 1785046545561}], "start": 1785046535974, "stop": 1785046545561} \ No newline at end of file diff --git a/allure-results/02b9a3ec-c5da-4504-9cd5-5d02f76281b4-container.json b/allure-results/02b9a3ec-c5da-4504-9cd5-5d02f76281b4-container.json new file mode 100644 index 0000000..186af92 --- /dev/null +++ b/allure-results/02b9a3ec-c5da-4504-9cd5-5d02f76281b4-container.json @@ -0,0 +1 @@ +{"uuid": "a0323270-1bd9-4ea0-9871-cd09dc61ed37", "children": ["55b69fcb-b0dd-4d1c-90cc-617c12dfd925"], "befores": [{"name": "page", "status": "passed", "start": 1785046550881, "stop": 1785046550957}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046556044, "stop": 1785046556047}, {"name": "page::", "start": 1785046556048}], "start": 1785046550881, "stop": 1785046556048} \ No newline at end of file diff --git a/allure-results/0306b7fe-da83-420a-9026-52db32ef67e7-result.json b/allure-results/0306b7fe-da83-420a-9026-52db32ef67e7-result.json new file mode 100644 index 0000000..4c0ecf0 --- /dev/null +++ b/allure-results/0306b7fe-da83-420a-9026-52db32ef67e7-result.json @@ -0,0 +1 @@ +{"name": "test_invalid_configuration_key_raises_error", "status": "passed", "start": 1785046571383, "stop": 1785046571383, "uuid": "01701ce7-fb05-4767-992e-9246c52fd29d", "historyId": "ffab144bb11fc6dcdb64f5461f7a40a4", "testCaseId": "ffab144bb11fc6dcdb64f5461f7a40a4", "fullName": "tests.unit.test_config_manager#test_invalid_configuration_key_raises_error", "labels": [{"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/042739ed-e957-4199-9bb5-2508a41fdba3-container.json b/allure-results/042739ed-e957-4199-9bb5-2508a41fdba3-container.json new file mode 100644 index 0000000..a382bb1 --- /dev/null +++ b/allure-results/042739ed-e957-4199-9bb5-2508a41fdba3-container.json @@ -0,0 +1 @@ +{"uuid": "bbed0093-6c7e-4a71-9b6d-ea781044fc9e", "befores": [{"name": "product_data", "status": "passed", "start": 1785046550994, "stop": 1785046550994}], "afters": [{"name": "product_data::", "start": 1785046561229}], "start": 1785046550994, "stop": 1785046561229} \ No newline at end of file diff --git a/allure-results/04cdb46f-54b1-4b31-84b8-2a2f4c5f6f12-result.json b/allure-results/04cdb46f-54b1-4b31-84b8-2a2f4c5f6f12-result.json new file mode 100644 index 0000000..98ac61c --- /dev/null +++ b/allure-results/04cdb46f-54b1-4b31-84b8-2a2f4c5f6f12-result.json @@ -0,0 +1 @@ +{"name": "Verify checkout flow - Sauce Labs Bike Light - customer_02", "status": "passed", "description": "Verify that a user can successfully complete the checkout flow using different products and customer information.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046541456, "stop": 1785046542705}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046542705, "stop": 1785046542705}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046542705, "stop": 1785046544947}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046544947, "stop": 1785046544951}, {"name": "Retrieve product name: Sauce Labs Bike Light", "status": "passed", "start": 1785046544951, "stop": 1785046544951}, {"name": "Add Sauce Labs Bike Light to cart", "status": "passed", "start": 1785046544951, "stop": 1785046545670}, {"name": "Open shopping cart", "status": "passed", "start": 1785046545670, "stop": 1785046546414}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046546414, "stop": 1785046546414}, {"name": "Verify Sauce Labs Bike Light is present in cart", "status": "passed", "start": 1785046546414, "stop": 1785046546424}, {"name": "Proceed to checkout", "status": "passed", "start": 1785046546424, "stop": 1785046547189}, {"name": "Verify checkout information page is loaded", "status": "passed", "start": 1785046547189, "stop": 1785046547189}, {"name": "Enter customer information for customer_02", "status": "passed", "start": 1785046547189, "stop": 1785046549324}, {"name": "Continue to checkout overview", "status": "passed", "start": 1785046549324, "stop": 1785046550098}, {"name": "Verify checkout overview page is loaded", "status": "passed", "start": 1785046550098, "stop": 1785046550098}, {"name": "Verify Sauce Labs Bike Light is present in order", "status": "passed", "start": 1785046550099, "stop": 1785046550120}, {"name": "Complete the order", "status": "passed", "start": 1785046550120, "stop": 1785046550881}, {"name": "Verify order confirmation message", "status": "passed", "start": 1785046550881, "stop": 1785046550884}], "attachments": [{"name": "log", "source": "f131fa65-7f98-4793-8a37-aaa2bce234c7-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "bf6ee23d-8e90-44e2-8d3c-e41d1cd423d4-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bike Light'}"}, {"name": "customer_data", "value": "{'test_id': 'customer_02', 'first_name': 'John', 'last_name': 'Doe', 'postal_code': '10001'}"}], "start": 1785046541456, "stop": 1785046550885, "uuid": "5c426436-4bd8-47eb-8bf8-41e7dce11af1", "historyId": "be2eed149bc93a3552dc8378e8c38fe5", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "epic", "value": "SauceDemo Application"}, {"name": "severity", "value": "critical"}, {"name": "story", "value": "Complete Product Checkout"}, {"name": "feature", "value": "Checkout"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/0658dec7-74c4-4432-9cee-ceebd26a1669-container.json b/allure-results/0658dec7-74c4-4432-9cee-ceebd26a1669-container.json new file mode 100644 index 0000000..89266fc --- /dev/null +++ b/allure-results/0658dec7-74c4-4432-9cee-ceebd26a1669-container.json @@ -0,0 +1 @@ +{"uuid": "861b6403-baab-45a7-a94c-bb9bfeda7e5d", "children": ["fe8a7034-c964-4f6f-bbcc-d629e9fd399b"], "befores": [{"name": "context", "status": "passed", "start": 1785046623966, "stop": 1785046623980}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046629209, "stop": 1785046629214}, {"name": "context::", "start": 1785046629214}], "start": 1785046623966, "stop": 1785046629214} \ No newline at end of file diff --git a/allure-results/067c8f9c-34ce-4b65-95cd-319deb671553-container.json b/allure-results/067c8f9c-34ce-4b65-95cd-319deb671553-container.json new file mode 100644 index 0000000..24963b2 --- /dev/null +++ b/allure-results/067c8f9c-34ce-4b65-95cd-319deb671553-container.json @@ -0,0 +1 @@ +{"uuid": "b2a7490b-87e7-44ea-8955-052791b6d726", "children": ["b4f4a2f5-bf6e-44d2-b8b0-0297c5a84f76"], "befores": [{"name": "page", "status": "passed", "start": 1785046575238, "stop": 1785046575310}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046578914, "stop": 1785046578922}, {"name": "page::", "start": 1785046578922}], "start": 1785046575238, "stop": 1785046578922} \ No newline at end of file diff --git a/allure-results/068c30d1-30b1-4f5f-8911-b3c2360c0f1c-attachment.txt b/allure-results/068c30d1-30b1-4f5f-8911-b3c2360c0f1c-attachment.txt new file mode 100644 index 0000000..2862ddd --- /dev/null +++ b/allure-results/068c30d1-30b1-4f5f-8911-b3c2360c0f1c-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:47:10,822 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:13,009 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:47:13,020 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:47:13,020 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Backpack +2026-07-26 11:47:13,744 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Backpack diff --git a/allure-results/07a96b55-c0c6-444d-8087-88ad3208102e-container.json b/allure-results/07a96b55-c0c6-444d-8087-88ad3208102e-container.json new file mode 100644 index 0000000..bf007e1 --- /dev/null +++ b/allure-results/07a96b55-c0c6-444d-8087-88ad3208102e-container.json @@ -0,0 +1 @@ +{"uuid": "fa021e00-635d-4186-8940-52a1ba150b15", "children": ["5a7d2265-bb99-408b-9ffd-9a42d5ddc311"], "befores": [{"name": "page", "status": "passed", "start": 1785046556076, "stop": 1785046556143}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046561001, "stop": 1785046561007}, {"name": "page::", "start": 1785046561007}], "start": 1785046556076, "stop": 1785046561007} \ No newline at end of file diff --git a/allure-results/08d613fc-df3c-42a4-bb50-5ca89f1f77f7-result.json b/allure-results/08d613fc-df3c-42a4-bb50-5ca89f1f77f7-result.json new file mode 100644 index 0000000..e829bb0 --- /dev/null +++ b/allure-results/08d613fc-df3c-42a4-bb50-5ca89f1f77f7-result.json @@ -0,0 +1 @@ +{"name": "test_browser_configuration", "status": "passed", "start": 1785046678254, "stop": 1785046678254, "uuid": "862d641e-2e12-4162-9022-f13ffac6e216", "historyId": "a4ac93025171fc690a5a66c1c3f513ab", "testCaseId": "a4ac93025171fc690a5a66c1c3f513ab", "fullName": "tests.unit.test_config_manager#test_browser_configuration", "labels": [{"name": "tag", "value": "unit"}, {"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/090d450a-59fb-48a5-a004-ed69970f22fb-result.json b/allure-results/090d450a-59fb-48a5-a004-ed69970f22fb-result.json new file mode 100644 index 0000000..0101201 --- /dev/null +++ b/allure-results/090d450a-59fb-48a5-a004-ed69970f22fb-result.json @@ -0,0 +1 @@ +{"name": "test_report_configuration", "status": "passed", "start": 1785046571173, "stop": 1785046571173, "uuid": "3908cf82-bf59-4a87-8bfe-25ced46d66c8", "historyId": "41e63037d2613349090a216040cde46e", "testCaseId": "41e63037d2613349090a216040cde46e", "fullName": "tests.unit.test_config_manager#test_report_configuration", "labels": [{"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/09181170-8963-46c1-b902-9658fbe7f8cd-attachment.txt b/allure-results/09181170-8963-46c1-b902-9658fbe7f8cd-attachment.txt new file mode 100644 index 0000000..dbd1683 --- /dev/null +++ b/allure-results/09181170-8963-46c1-b902-9658fbe7f8cd-attachment.txt @@ -0,0 +1,2 @@ +2026-07-26 11:46:08,575 | INFO | pages.login_page | Attempting login with username: invalid_user +2026-07-26 11:46:10,768 | INFO | pages.login_page | Login action completed for username invalid_user diff --git a/allure-results/0a996218-c914-4459-8dbc-8ca5d8f38097-container.json b/allure-results/0a996218-c914-4459-8dbc-8ca5d8f38097-container.json new file mode 100644 index 0000000..c797afa --- /dev/null +++ b/allure-results/0a996218-c914-4459-8dbc-8ca5d8f38097-container.json @@ -0,0 +1 @@ +{"uuid": "047a3b8a-8ee5-46ef-9cf6-6cf91fd30f95", "children": ["862d641e-2e12-4162-9022-f13ffac6e216"], "befores": [{"name": "context", "status": "passed", "start": 1785046678224, "stop": 1785046678228}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046678256, "stop": 1785046678258}, {"name": "context::", "start": 1785046678258}], "start": 1785046678224, "stop": 1785046678258} \ No newline at end of file diff --git a/allure-results/0af2f73c-f2dd-48c4-9198-9c0b509a0650-attachment.txt b/allure-results/0af2f73c-f2dd-48c4-9198-9c0b509a0650-attachment.txt new file mode 100644 index 0000000..bc5a33d --- /dev/null +++ b/allure-results/0af2f73c-f2dd-48c4-9198-9c0b509a0650-attachment.txt @@ -0,0 +1 @@ +Active environment: ci diff --git a/allure-results/0b2181e8-b227-43f3-9af9-2c404def89ec-container.json b/allure-results/0b2181e8-b227-43f3-9af9-2c404def89ec-container.json new file mode 100644 index 0000000..bf064a5 --- /dev/null +++ b/allure-results/0b2181e8-b227-43f3-9af9-2c404def89ec-container.json @@ -0,0 +1 @@ +{"uuid": "7920e7e5-4959-41e7-8087-52dd97b3728e", "children": ["bf9c4c05-9138-4d59-ab12-782895346ac8"], "befores": [{"name": "page", "status": "passed", "start": 1785046664027, "stop": 1785046664055}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046668695, "stop": 1785046668698}, {"name": "page::", "start": 1785046668698}], "start": 1785046664027, "stop": 1785046668698} \ No newline at end of file diff --git a/allure-results/0b2f982f-2e6e-4441-a87c-678400ce3e98-container.json b/allure-results/0b2f982f-2e6e-4441-a87c-678400ce3e98-container.json new file mode 100644 index 0000000..7e00f72 --- /dev/null +++ b/allure-results/0b2f982f-2e6e-4441-a87c-678400ce3e98-container.json @@ -0,0 +1 @@ +{"uuid": "b0174a02-93a2-4dca-a5dd-527a6cc13cd5", "children": ["3066e1cd-8d5e-4fdb-b327-8dfcd432565c"], "befores": [{"name": "page", "status": "passed", "start": 1785046570912, "stop": 1785046570979}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046570980, "stop": 1785046570984}, {"name": "page::", "start": 1785046570984}], "start": 1785046570912, "stop": 1785046570984} \ No newline at end of file diff --git a/allure-results/0bef4b26-a799-47d6-aefc-6172759010d1-container.json b/allure-results/0bef4b26-a799-47d6-aefc-6172759010d1-container.json new file mode 100644 index 0000000..be5048a --- /dev/null +++ b/allure-results/0bef4b26-a799-47d6-aefc-6172759010d1-container.json @@ -0,0 +1 @@ +{"uuid": "bbeb7935-6d9e-41bf-a77b-6f1f8696428f", "children": ["f412bdd1-455f-4d18-b998-508aa34153e2"], "befores": [{"name": "context", "status": "passed", "start": 1785046678327, "stop": 1785046678331}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046678359, "stop": 1785046678360}, {"name": "context::", "start": 1785046678360}], "start": 1785046678327, "stop": 1785046678360} \ No newline at end of file diff --git a/allure-results/0c43d1fc-9ad4-4e2e-94c4-cb8ebbb8a000-container.json b/allure-results/0c43d1fc-9ad4-4e2e-94c4-cb8ebbb8a000-container.json new file mode 100644 index 0000000..28740a9 --- /dev/null +++ b/allure-results/0c43d1fc-9ad4-4e2e-94c4-cb8ebbb8a000-container.json @@ -0,0 +1 @@ +{"uuid": "20c82e9c-6921-4122-9e9e-8b584c03b214", "children": ["fe8a7034-c964-4f6f-bbcc-d629e9fd399b"], "befores": [{"name": "page", "status": "passed", "start": 1785046623980, "stop": 1785046624022}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046629204, "stop": 1785046629208}, {"name": "page::", "start": 1785046629208}], "start": 1785046623980, "stop": 1785046629208} \ No newline at end of file diff --git a/allure-results/0d97f435-2f26-4169-b307-07ab0b181c44-container.json b/allure-results/0d97f435-2f26-4169-b307-07ab0b181c44-container.json new file mode 100644 index 0000000..0ae0e82 --- /dev/null +++ b/allure-results/0d97f435-2f26-4169-b307-07ab0b181c44-container.json @@ -0,0 +1 @@ +{"uuid": "6dd74313-4518-4fbf-8958-65a38877ec28", "children": ["1074506d-17b2-43e1-bf42-23dc3240eb14"], "befores": [{"name": "page", "status": "passed", "start": 1785046510925, "stop": 1785046510996}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046531403, "stop": 1785046531407}, {"name": "page::", "start": 1785046531407}], "start": 1785046510925, "stop": 1785046531407} \ No newline at end of file diff --git a/allure-results/0daaec94-7c5a-4014-b5dc-0b54b3fe5c17-container.json b/allure-results/0daaec94-7c5a-4014-b5dc-0b54b3fe5c17-container.json new file mode 100644 index 0000000..51fe51a --- /dev/null +++ b/allure-results/0daaec94-7c5a-4014-b5dc-0b54b3fe5c17-container.json @@ -0,0 +1 @@ +{"uuid": "1cf545e1-d5b4-4a52-bcdf-6e6c27ed28bf", "children": ["fa8ddc56-d8d7-455f-af79-65d39d887c72"], "befores": [{"name": "context", "status": "passed", "start": 1785046678293, "stop": 1785046678297}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046678324, "stop": 1785046678326}, {"name": "context::", "start": 1785046678326}], "start": 1785046678293, "stop": 1785046678326} \ No newline at end of file diff --git a/allure-results/0e1f35c6-1ada-49f4-8833-1c7e2d1d9249-container.json b/allure-results/0e1f35c6-1ada-49f4-8833-1c7e2d1d9249-container.json new file mode 100644 index 0000000..5883d4c --- /dev/null +++ b/allure-results/0e1f35c6-1ada-49f4-8833-1c7e2d1d9249-container.json @@ -0,0 +1 @@ +{"uuid": "c6a6eeba-9310-4791-b3f6-2303990ef7cf", "children": ["aa5fb6e8-5c70-4242-afd1-78de14bddaf7"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046571283, "stop": 1785046571283}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046571283, "stop": 1785046571284}, {"name": "capture_failure_artifacts::", "start": 1785046571284}], "start": 1785046571283, "stop": 1785046571284} \ No newline at end of file diff --git a/allure-results/0ecc5552-bb4b-447f-9a56-c5fcbe00c8b0-container.json b/allure-results/0ecc5552-bb4b-447f-9a56-c5fcbe00c8b0-container.json new file mode 100644 index 0000000..bce29ea --- /dev/null +++ b/allure-results/0ecc5552-bb4b-447f-9a56-c5fcbe00c8b0-container.json @@ -0,0 +1 @@ +{"uuid": "d1e3d5be-ebce-4db2-b2ef-36f1c6bb3eb9", "children": ["f6e3505e-7dd3-4cfc-8a90-14eac04d4dcf"], "befores": [{"name": "context", "status": "passed", "start": 1785046570995, "stop": 1785046571000}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046571080, "stop": 1785046571091}, {"name": "context::", "start": 1785046571091}], "start": 1785046570995, "stop": 1785046571091} \ No newline at end of file diff --git a/allure-results/109e7421-e6ca-4d1d-b75b-e2a07e2a9b2b-attachment.txt b/allure-results/109e7421-e6ca-4d1d-b75b-e2a07e2a9b2b-attachment.txt new file mode 100644 index 0000000..dff0636 --- /dev/null +++ b/allure-results/109e7421-e6ca-4d1d-b75b-e2a07e2a9b2b-attachment.txt @@ -0,0 +1,2 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: locked_out_user +INFO pages.login_page:login_page.py:67 Login action completed for username locked_out_user \ No newline at end of file diff --git a/allure-results/10ceaeae-ae0f-412e-ba8a-cca531658c01-container.json b/allure-results/10ceaeae-ae0f-412e-ba8a-cca531658c01-container.json new file mode 100644 index 0000000..f16d698 --- /dev/null +++ b/allure-results/10ceaeae-ae0f-412e-ba8a-cca531658c01-container.json @@ -0,0 +1 @@ +{"uuid": "6880f066-64b1-4677-a5a9-c394a763b727", "children": ["db8c0ef2-f2c6-495f-93ef-c86d16fcd74a"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046508411, "stop": 1785046508411}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046517891, "stop": 1785046517891}, {"name": "capture_failure_artifacts::", "start": 1785046517891}], "start": 1785046508411, "stop": 1785046517891} \ No newline at end of file diff --git a/allure-results/111947e1-11ad-4dc1-bc82-9b13a7b1019d-result.json b/allure-results/111947e1-11ad-4dc1-bc82-9b13a7b1019d-result.json new file mode 100644 index 0000000..cb7ae9f --- /dev/null +++ b/allure-results/111947e1-11ad-4dc1-bc82-9b13a7b1019d-result.json @@ -0,0 +1 @@ +{"name": "Verify checkout flow - Sauce Labs Bike Light - customer_01", "status": "passed", "description": "Verify that a user can successfully complete the checkout flow using different products and customer information.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046531518, "stop": 1785046533115}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046533115, "stop": 1785046533115}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046533115, "stop": 1785046535367}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046535367, "stop": 1785046535377}, {"name": "Retrieve product name: Sauce Labs Bike Light", "status": "passed", "start": 1785046535377, "stop": 1785046535377}, {"name": "Add Sauce Labs Bike Light to cart", "status": "passed", "start": 1785046535377, "stop": 1785046536096}, {"name": "Open shopping cart", "status": "passed", "start": 1785046536097, "stop": 1785046536853}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046536853, "stop": 1785046536853}, {"name": "Verify Sauce Labs Bike Light is present in cart", "status": "passed", "start": 1785046536853, "stop": 1785046536863}, {"name": "Proceed to checkout", "status": "passed", "start": 1785046536864, "stop": 1785046537632}, {"name": "Verify checkout information page is loaded", "status": "passed", "start": 1785046537632, "stop": 1785046537632}, {"name": "Enter customer information for customer_01", "status": "passed", "start": 1785046537632, "stop": 1785046539774}, {"name": "Continue to checkout overview", "status": "passed", "start": 1785046539775, "stop": 1785046540544}, {"name": "Verify checkout overview page is loaded", "status": "passed", "start": 1785046540544, "stop": 1785046540544}, {"name": "Verify Sauce Labs Bike Light is present in order", "status": "passed", "start": 1785046540544, "stop": 1785046540566}, {"name": "Complete the order", "status": "passed", "start": 1785046540566, "stop": 1785046541325}, {"name": "Verify order confirmation message", "status": "passed", "start": 1785046541325, "stop": 1785046541338}], "attachments": [{"name": "log", "source": "9a42970c-d1e2-4d53-b6b0-adc1a629bc17-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "14f3a05b-c385-4cc1-a992-586ca98b85f3-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bike Light'}"}, {"name": "customer_data", "value": "{'test_id': 'customer_01', 'first_name': 'Prateek', 'last_name': 'Dharwal', 'postal_code': '141001'}"}], "start": 1785046531518, "stop": 1785046541339, "uuid": "063320be-e436-4d48-a5ef-51c8bd21ff40", "historyId": "dc326888857f3fd8f69e028897cdaa07", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "epic", "value": "SauceDemo Application"}, {"name": "severity", "value": "critical"}, {"name": "story", "value": "Complete Product Checkout"}, {"name": "feature", "value": "Checkout"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/11f355e5-ddcf-4b05-882b-694de105f7ba-container.json b/allure-results/11f355e5-ddcf-4b05-882b-694de105f7ba-container.json new file mode 100644 index 0000000..5cef0f2 --- /dev/null +++ b/allure-results/11f355e5-ddcf-4b05-882b-694de105f7ba-container.json @@ -0,0 +1 @@ +{"uuid": "47ff22fa-0f52-4f9d-be4a-303f5e61889a", "children": ["5a7d2265-bb99-408b-9ffd-9a42d5ddc311"], "befores": [{"name": "context", "status": "passed", "start": 1785046556062, "stop": 1785046556076}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046561008, "stop": 1785046561031}, {"name": "context::", "start": 1785046561031}], "start": 1785046556062, "stop": 1785046561031} \ No newline at end of file diff --git a/allure-results/13326e04-3dde-4fc1-88ac-21809108ccfd-attachment.txt b/allure-results/13326e04-3dde-4fc1-88ac-21809108ccfd-attachment.txt new file mode 100644 index 0000000..f879cd4 --- /dev/null +++ b/allure-results/13326e04-3dde-4fc1-88ac-21809108ccfd-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bike Light +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bike Light \ No newline at end of file diff --git a/allure-results/14f3a05b-c385-4cc1-a992-586ca98b85f3-attachment.txt b/allure-results/14f3a05b-c385-4cc1-a992-586ca98b85f3-attachment.txt new file mode 100644 index 0000000..bc5dae1 --- /dev/null +++ b/allure-results/14f3a05b-c385-4cc1-a992-586ca98b85f3-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:45:33,115 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:45:35,366 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:45:35,376 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:45:35,377 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bike Light +2026-07-26 11:45:36,096 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bike Light diff --git a/allure-results/16287d5d-ee50-4198-acf1-76090ceb9f63-container.json b/allure-results/16287d5d-ee50-4198-acf1-76090ceb9f63-container.json new file mode 100644 index 0000000..f26ad20 --- /dev/null +++ b/allure-results/16287d5d-ee50-4198-acf1-76090ceb9f63-container.json @@ -0,0 +1 @@ +{"uuid": "ccdfeb62-dd12-458f-b0d3-05e3118a9b50", "befores": [{"name": "customer_data", "status": "passed", "start": 1785046531517, "stop": 1785046531517}], "afters": [{"name": "customer_data::", "start": 1785046541339}], "start": 1785046531517, "stop": 1785046541339} \ No newline at end of file diff --git a/allure-results/16e7f762-7864-4ebf-a854-0f3595a7af28-container.json b/allure-results/16e7f762-7864-4ebf-a854-0f3595a7af28-container.json new file mode 100644 index 0000000..6aeba05 --- /dev/null +++ b/allure-results/16e7f762-7864-4ebf-a854-0f3595a7af28-container.json @@ -0,0 +1 @@ +{"uuid": "2c907bfa-fa27-41c2-b7a2-09ffcaba01fa", "children": ["17c614d7-d40e-4551-b15f-57b2a9a06a9a"], "befores": [{"name": "page", "status": "passed", "start": 1785046655380, "stop": 1785046655409}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046664654, "stop": 1785046664658}, {"name": "page::", "start": 1785046664658}], "start": 1785046655380, "stop": 1785046664659} \ No newline at end of file diff --git a/allure-results/1819e239-f905-4fd1-9306-eddc0b22be5e-attachment.txt b/allure-results/1819e239-f905-4fd1-9306-eddc0b22be5e-attachment.txt new file mode 100644 index 0000000..df35693 --- /dev/null +++ b/allure-results/1819e239-f905-4fd1-9306-eddc0b22be5e-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Backpack +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Backpack \ No newline at end of file diff --git a/allure-results/195d92b3-8b02-4373-b6a1-20d600f337b9-attachment.txt b/allure-results/195d92b3-8b02-4373-b6a1-20d600f337b9-attachment.txt new file mode 100644 index 0000000..f7d04b3 --- /dev/null +++ b/allure-results/195d92b3-8b02-4373-b6a1-20d600f337b9-attachment.txt @@ -0,0 +1,2 @@ +2026-07-26 11:47:56,025 | INFO | pages.login_page | Attempting login with username: invalid_user +2026-07-26 11:47:58,175 | INFO | pages.login_page | Login action completed for username invalid_user diff --git a/allure-results/1c0253c4-222a-471a-9a38-a73f2a72bc7a-result.json b/allure-results/1c0253c4-222a-471a-9a38-a73f2a72bc7a-result.json new file mode 100644 index 0000000..62b05e9 --- /dev/null +++ b/allure-results/1c0253c4-222a-471a-9a38-a73f2a72bc7a-result.json @@ -0,0 +1 @@ +{"name": "Verify checkout flow - Sauce Labs Backpack - customer_02", "status": "passed", "description": "Verify that a user can successfully complete the checkout flow using different products and customer information.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046518011, "stop": 1785046527594}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046527594, "stop": 1785046527594}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046527594, "stop": 1785046529855}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046529855, "stop": 1785046529865}, {"name": "Retrieve product name: Sauce Labs Backpack", "status": "passed", "start": 1785046529865, "stop": 1785046529865}, {"name": "Add Sauce Labs Backpack to cart", "status": "passed", "start": 1785046529865, "stop": 1785046530593}, {"name": "Open shopping cart", "status": "passed", "start": 1785046530594, "stop": 1785046531367}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046531367, "stop": 1785046531367}, {"name": "Verify Sauce Labs Backpack is present in cart", "status": "passed", "start": 1785046531367, "stop": 1785046531378}, {"name": "Proceed to checkout", "status": "passed", "start": 1785046531378, "stop": 1785046532142}, {"name": "Verify checkout information page is loaded", "status": "passed", "start": 1785046532142, "stop": 1785046532142}, {"name": "Enter customer information for customer_02", "status": "passed", "start": 1785046532142, "stop": 1785046534290}, {"name": "Continue to checkout overview", "status": "passed", "start": 1785046534290, "stop": 1785046535070}, {"name": "Verify checkout overview page is loaded", "status": "passed", "start": 1785046535070, "stop": 1785046535070}, {"name": "Verify Sauce Labs Backpack is present in order", "status": "passed", "start": 1785046535070, "stop": 1785046535092}, {"name": "Complete the order", "status": "passed", "start": 1785046535092, "stop": 1785046535851}, {"name": "Verify order confirmation message", "status": "passed", "start": 1785046535851, "stop": 1785046535861}], "attachments": [{"name": "log", "source": "a0e9ac26-bef1-4dd1-821f-719a73a59ce5-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "d46528cf-5c7b-42ce-9c2d-d85a3ef57423-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Backpack'}"}, {"name": "customer_data", "value": "{'test_id': 'customer_02', 'first_name': 'John', 'last_name': 'Doe', 'postal_code': '10001'}"}], "start": 1785046518011, "stop": 1785046535861, "uuid": "ba10b5d3-8199-4902-997d-83f59149a95d", "historyId": "d2771f65d41fe100a4bf5ff3bc0d6185", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "feature", "value": "Checkout"}, {"name": "severity", "value": "critical"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "story", "value": "Complete Product Checkout"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24862-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/1c32acbd-ade8-4f39-b150-4610279f77cb-result.json b/allure-results/1c32acbd-ade8-4f39-b150-4610279f77cb-result.json new file mode 100644 index 0000000..ba6ecab --- /dev/null +++ b/allure-results/1c32acbd-ade8-4f39-b150-4610279f77cb-result.json @@ -0,0 +1 @@ +{"name": "Verify selected product is displayed in cart - Sauce Labs Bike Light", "status": "passed", "description": "Verify that each selected product appears correctly in the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046631440, "stop": 1785046633018}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046633018, "stop": 1785046633018}, {"name": "Login with valid credentials", "status": "passed", "start": 1785046633018, "stop": 1785046635217}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046635217, "stop": 1785046635226}, {"name": "Retrieve product name: Sauce Labs Bike Light", "status": "passed", "start": 1785046635226, "stop": 1785046635226}, {"name": "Add Sauce Labs Bike Light to cart", "status": "passed", "start": 1785046635226, "stop": 1785046635953}, {"name": "Open shopping cart", "status": "passed", "start": 1785046635953, "stop": 1785046636681}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046636681, "stop": 1785046636681}, {"name": "Verify 'Sauce Labs Bike Light' is present in cart", "status": "passed", "start": 1785046636681, "stop": 1785046636688}, {"name": "Verify product name is displayed in cart", "status": "passed", "start": 1785046636688, "stop": 1785046636700}], "attachments": [{"name": "log", "source": "c33f1d74-70e3-485d-90c6-d4ecac7e406a-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "e39a7b96-c127-4483-8ea0-c4931a80816e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bike Light'}"}], "start": 1785046631440, "stop": 1785046636701, "uuid": "145a497d-6f48-420a-9fd1-2f56c44bc698", "historyId": "76a9f4df6f0f5e6e027ebeedd39133fa", "testCaseId": "1023375bdd60dd57ece9a953ebf251e0", "fullName": "tests.e2e.test_cart#test_product_is_displayed_in_cart", "labels": [{"name": "severity", "value": "critical"}, {"name": "story", "value": "Verify Product in Cart"}, {"name": "feature", "value": "Shopping Cart"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_cart"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_cart"}], "titlePath": ["tests", "e2e", "test_cart.py"]} \ No newline at end of file diff --git a/allure-results/1ddd099b-6a70-4f4b-becd-e3295e8a8477-container.json b/allure-results/1ddd099b-6a70-4f4b-becd-e3295e8a8477-container.json new file mode 100644 index 0000000..6781b0b --- /dev/null +++ b/allure-results/1ddd099b-6a70-4f4b-becd-e3295e8a8477-container.json @@ -0,0 +1 @@ +{"uuid": "1f2c3e0b-db05-4d4c-9259-69b0059129a7", "children": ["3d40d7cb-6f90-48eb-8b7e-167dbd560241"], "befores": [{"name": "page", "status": "passed", "start": 1785046668714, "stop": 1785046668743}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046672234, "stop": 1785046672239}, {"name": "page::", "start": 1785046672239}], "start": 1785046668714, "stop": 1785046672239} \ No newline at end of file diff --git a/allure-results/1f08c533-56f0-4a51-b6a0-c2965c63889d-container.json b/allure-results/1f08c533-56f0-4a51-b6a0-c2965c63889d-container.json new file mode 100644 index 0000000..7e59885 --- /dev/null +++ b/allure-results/1f08c533-56f0-4a51-b6a0-c2965c63889d-container.json @@ -0,0 +1 @@ +{"uuid": "b986f106-14e3-4bfd-9530-6983c64cc97d", "children": ["492635eb-194d-4f06-90cd-ea645ee64994"], "befores": [{"name": "context", "status": "passed", "start": 1785046678187, "stop": 1785046678191}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046678221, "stop": 1785046678223}, {"name": "context::", "start": 1785046678223}], "start": 1785046678187, "stop": 1785046678223} \ No newline at end of file diff --git a/allure-results/1f2b74c5-f9ab-4b9c-ac0f-8c1dd730dcec-container.json b/allure-results/1f2b74c5-f9ab-4b9c-ac0f-8c1dd730dcec-container.json new file mode 100644 index 0000000..5f3ea9a --- /dev/null +++ b/allure-results/1f2b74c5-f9ab-4b9c-ac0f-8c1dd730dcec-container.json @@ -0,0 +1 @@ +{"uuid": "63bb2947-4993-4b22-a789-bf925dc05179", "children": ["a7dc1a23-738b-4036-8f18-0e6623efebef"], "befores": [{"name": "page", "status": "passed", "start": 1785046674320, "stop": 1785046674350}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046678181, "stop": 1785046678184}, {"name": "page::", "start": 1785046678184}], "start": 1785046674320, "stop": 1785046678184} \ No newline at end of file diff --git a/allure-results/1f77ce6b-ccad-49ea-aa3a-9ce9eac89395-container.json b/allure-results/1f77ce6b-ccad-49ea-aa3a-9ce9eac89395-container.json new file mode 100644 index 0000000..3297c26 --- /dev/null +++ b/allure-results/1f77ce6b-ccad-49ea-aa3a-9ce9eac89395-container.json @@ -0,0 +1 @@ +{"uuid": "84096828-30a9-4862-a43a-49239ccb0999", "children": ["5c426436-4bd8-47eb-8bf8-41e7dce11af1"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046541455, "stop": 1785046541455}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046550885, "stop": 1785046550885}, {"name": "capture_failure_artifacts::", "start": 1785046550885}], "start": 1785046541455, "stop": 1785046550885} \ No newline at end of file diff --git a/allure-results/201fd34d-cbd2-4500-a266-f4aa80289ea2-container.json b/allure-results/201fd34d-cbd2-4500-a266-f4aa80289ea2-container.json new file mode 100644 index 0000000..2dce52e --- /dev/null +++ b/allure-results/201fd34d-cbd2-4500-a266-f4aa80289ea2-container.json @@ -0,0 +1 @@ +{"uuid": "eff55ef0-bd09-4ebf-acad-6e1c8c8ce9a5", "befores": [{"name": "customer_data", "status": "passed", "start": 1785046550994, "stop": 1785046550994}], "afters": [{"name": "customer_data::", "start": 1785046561228}], "start": 1785046550994, "stop": 1785046561228} \ No newline at end of file diff --git a/allure-results/20bdb1e4-08bd-418f-8807-d5c2460a51da-container.json b/allure-results/20bdb1e4-08bd-418f-8807-d5c2460a51da-container.json new file mode 100644 index 0000000..afdcb8f --- /dev/null +++ b/allure-results/20bdb1e4-08bd-418f-8807-d5c2460a51da-container.json @@ -0,0 +1 @@ +{"uuid": "5df5a756-272c-48c1-a6f5-68a26bf68db0", "children": ["3908cf82-bf59-4a87-8bfe-25ced46d66c8"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046571172, "stop": 1785046571172}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046571173, "stop": 1785046571173}, {"name": "capture_failure_artifacts::", "start": 1785046571173}], "start": 1785046571172, "stop": 1785046571173} \ No newline at end of file diff --git a/allure-results/21bee951-5e10-4448-b615-9d25fb8312df-container.json b/allure-results/21bee951-5e10-4448-b615-9d25fb8312df-container.json new file mode 100644 index 0000000..4db1872 --- /dev/null +++ b/allure-results/21bee951-5e10-4448-b615-9d25fb8312df-container.json @@ -0,0 +1 @@ +{"uuid": "837a743e-8983-4e1a-a6e2-d2854fd85c0e", "children": ["ba10b5d3-8199-4902-997d-83f59149a95d"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046518010, "stop": 1785046518010}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046535863, "stop": 1785046535863}, {"name": "capture_failure_artifacts::", "start": 1785046535863}], "start": 1785046518010, "stop": 1785046535863} \ No newline at end of file diff --git a/allure-results/22f70b01-9f80-4dd1-9d96-1834938105fc-container.json b/allure-results/22f70b01-9f80-4dd1-9d96-1834938105fc-container.json new file mode 100644 index 0000000..5c2e051 --- /dev/null +++ b/allure-results/22f70b01-9f80-4dd1-9d96-1834938105fc-container.json @@ -0,0 +1 @@ +{"uuid": "c678a726-07b3-4fd9-bfaa-e20868cb2706", "children": ["a65284eb-f9e8-486d-a633-1e8421bfe966", "c9c0a217-81ab-4412-91e7-a15d43ad89da", "145a497d-6f48-420a-9fd1-2f56c44bc698", "4e88716d-52cc-4fea-9574-95e7faf1e695", "2d455068-c2f5-4129-b34e-417744b6c66c", "17c614d7-d40e-4551-b15f-57b2a9a06a9a", "4e1c0964-f4ed-4046-a82a-b347f5d364f7", "8fc94b75-b471-493d-b38c-f951a707e526", "a7dc1a23-738b-4036-8f18-0e6623efebef", "492635eb-194d-4f06-90cd-ea645ee64994", "862d641e-2e12-4162-9022-f13ffac6e216", "61f568d3-10a2-421a-bf23-0c7ee1b84fc1", "fa8ddc56-d8d7-455f-af79-65d39d887c72", "f412bdd1-455f-4d18-b998-508aa34153e2", "af4d3119-cd92-4120-8904-f6e1caa92523"], "befores": [{"name": "_verify_url", "status": "passed", "start": 1785046621136, "stop": 1785046621136}], "afters": [{"name": "_verify_url::", "start": 1785046678420}], "start": 1785046621136, "stop": 1785046678420} \ No newline at end of file diff --git a/allure-results/2354868e-1863-4fea-bde1-c68812310772-container.json b/allure-results/2354868e-1863-4fea-bde1-c68812310772-container.json new file mode 100644 index 0000000..b320f43 --- /dev/null +++ b/allure-results/2354868e-1863-4fea-bde1-c68812310772-container.json @@ -0,0 +1 @@ +{"uuid": "aa59b9b8-9a08-4d64-a7fe-181dfc8d8a2b", "befores": [{"name": "product_data", "status": "passed", "start": 1785046625564, "stop": 1785046625564}], "afters": [{"name": "product_data::", "start": 1785046631391}], "start": 1785046625564, "stop": 1785046631391} \ No newline at end of file diff --git a/allure-results/23e8b39d-e445-4983-8e8d-920a38b3367b-result.json b/allure-results/23e8b39d-e445-4983-8e8d-920a38b3367b-result.json new file mode 100644 index 0000000..68359d6 --- /dev/null +++ b/allure-results/23e8b39d-e445-4983-8e8d-920a38b3367b-result.json @@ -0,0 +1 @@ +{"name": "Verify user can add product to cart - Sauce Labs Backpack", "status": "passed", "description": "Verify that a logged-in user can add different products to the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046545669, "stop": 1785046547874}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046547874, "stop": 1785046547874}, {"name": "Login with valid credentials", "status": "passed", "start": 1785046547874, "stop": 1785046550109}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046550109, "stop": 1785046550117}, {"name": "Retrieve product name: Sauce Labs Backpack", "status": "passed", "start": 1785046550117, "stop": 1785046550117}, {"name": "Add Sauce Labs Backpack to cart", "status": "passed", "start": 1785046550117, "stop": 1785046550839}, {"name": "Verify Sauce Labs Backpack was added to cart", "status": "passed", "start": 1785046550839, "stop": 1785046550848}], "attachments": [{"name": "log", "source": "7c81610e-28e2-45c8-9d6e-75223fe30665-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "4ee2ccee-a099-4419-9bce-1eb58dea935c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Backpack'}"}], "start": 1785046545669, "stop": 1785046550848, "uuid": "119e185c-2a13-4876-b36e-f79c684e70e8", "historyId": "18c0b6e11870c1b4a215e5c03609355e", "testCaseId": "76249ae9582a105da809f2e4b4437aaf", "fullName": "tests.e2e.test_inventory#test_add_product_to_cart", "labels": [{"name": "story", "value": "Add Product to Cart"}, {"name": "severity", "value": "critical"}, {"name": "feature", "value": "Inventory Management"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_inventory"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24862-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_inventory"}], "titlePath": ["tests", "e2e", "test_inventory.py"]} \ No newline at end of file diff --git a/allure-results/2669acaa-6427-4fc8-ad06-b940def4bf5c-container.json b/allure-results/2669acaa-6427-4fc8-ad06-b940def4bf5c-container.json new file mode 100644 index 0000000..d678ca1 --- /dev/null +++ b/allure-results/2669acaa-6427-4fc8-ad06-b940def4bf5c-container.json @@ -0,0 +1 @@ +{"uuid": "fd271064-ef45-49de-8da9-ef855d3c49d7", "befores": [{"name": "product_data", "status": "passed", "start": 1785046659719, "stop": 1785046659719}], "afters": [{"name": "product_data::", "start": 1785046664011}], "start": 1785046659719, "stop": 1785046664011} \ No newline at end of file diff --git a/allure-results/27590a67-3fe1-4e33-a27a-dba1eac8cbb4-container.json b/allure-results/27590a67-3fe1-4e33-a27a-dba1eac8cbb4-container.json new file mode 100644 index 0000000..367eecc --- /dev/null +++ b/allure-results/27590a67-3fe1-4e33-a27a-dba1eac8cbb4-container.json @@ -0,0 +1 @@ +{"uuid": "2bbb595a-cbfb-4199-a9ee-e4c2af6c3200", "befores": [{"name": "product_data", "status": "passed", "start": 1785046535974, "stop": 1785046535974}], "afters": [{"name": "product_data::", "start": 1785046545562}], "start": 1785046535974, "stop": 1785046545562} \ No newline at end of file diff --git a/allure-results/2798201e-dd4e-4b46-9075-8972a43a4660-attachment.txt b/allure-results/2798201e-dd4e-4b46-9075-8972a43a4660-attachment.txt new file mode 100644 index 0000000..b9ccad0 --- /dev/null +++ b/allure-results/2798201e-dd4e-4b46-9075-8972a43a4660-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bolt T-Shirt +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bolt T-Shirt \ No newline at end of file diff --git a/allure-results/285107be-0d70-4403-bb3c-39b4f4df518d-container.json b/allure-results/285107be-0d70-4403-bb3c-39b4f4df518d-container.json new file mode 100644 index 0000000..cbcea10 --- /dev/null +++ b/allure-results/285107be-0d70-4403-bb3c-39b4f4df518d-container.json @@ -0,0 +1 @@ +{"uuid": "a2dd8f3b-b1f4-4b8f-8a01-9fa067e1d119", "children": ["bf9c4c05-9138-4d59-ab12-782895346ac8"], "befores": [{"name": "context", "status": "passed", "start": 1785046664022, "stop": 1785046664027}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046668699, "stop": 1785046668709}, {"name": "context::", "start": 1785046668709}], "start": 1785046664022, "stop": 1785046668709} \ No newline at end of file diff --git a/allure-results/28c325a0-b6ed-43e5-a869-428fb8cea370-container.json b/allure-results/28c325a0-b6ed-43e5-a869-428fb8cea370-container.json new file mode 100644 index 0000000..d21a61c --- /dev/null +++ b/allure-results/28c325a0-b6ed-43e5-a869-428fb8cea370-container.json @@ -0,0 +1 @@ +{"uuid": "1e8074e1-d55a-4ae0-9e19-17e50de365a8", "children": ["8c2f2a84-f81c-41c5-b5fc-ab5e5a2d31a0"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046561334, "stop": 1785046561335}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046566681, "stop": 1785046566681}, {"name": "capture_failure_artifacts::", "start": 1785046566681}], "start": 1785046561334, "stop": 1785046566681} \ No newline at end of file diff --git a/allure-results/2966539b-65de-4154-9796-394a75fecd5e-attachment.txt b/allure-results/2966539b-65de-4154-9796-394a75fecd5e-attachment.txt new file mode 100644 index 0000000..3ee483a --- /dev/null +++ b/allure-results/2966539b-65de-4154-9796-394a75fecd5e-attachment.txt @@ -0,0 +1,2 @@ +2026-07-26 11:46:04,060 | INFO | pages.login_page | Attempting login with username: problem_user +2026-07-26 11:46:06,307 | INFO | pages.login_page | Login action completed for username problem_user diff --git a/allure-results/2a613758-cf1c-47f3-ab66-a69db9bf749c-attachment.txt b/allure-results/2a613758-cf1c-47f3-ab66-a69db9bf749c-attachment.txt new file mode 100644 index 0000000..b9ccad0 --- /dev/null +++ b/allure-results/2a613758-cf1c-47f3-ab66-a69db9bf749c-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bolt T-Shirt +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bolt T-Shirt \ No newline at end of file diff --git a/allure-results/2c5a6095-eb75-4221-9dd4-882157d82603-container.json b/allure-results/2c5a6095-eb75-4221-9dd4-882157d82603-container.json new file mode 100644 index 0000000..28c441b --- /dev/null +++ b/allure-results/2c5a6095-eb75-4221-9dd4-882157d82603-container.json @@ -0,0 +1 @@ +{"uuid": "d972c880-27ef-4ea9-8b46-1dcce97a88eb", "befores": [{"name": "product_data", "status": "passed", "start": 1785046664701, "stop": 1785046664701}], "afters": [{"name": "product_data::", "start": 1785046669414}], "start": 1785046664701, "stop": 1785046669414} \ No newline at end of file diff --git a/allure-results/2ca6bde2-3cf6-4cdf-8d0c-3dbabf9f8c24-container.json b/allure-results/2ca6bde2-3cf6-4cdf-8d0c-3dbabf9f8c24-container.json new file mode 100644 index 0000000..8c3cd7c --- /dev/null +++ b/allure-results/2ca6bde2-3cf6-4cdf-8d0c-3dbabf9f8c24-container.json @@ -0,0 +1 @@ +{"uuid": "9d45c1a8-4530-43f7-b271-f94c40930de8", "children": ["a65284eb-f9e8-486d-a633-1e8421bfe966", "c9c0a217-81ab-4412-91e7-a15d43ad89da", "145a497d-6f48-420a-9fd1-2f56c44bc698", "4e88716d-52cc-4fea-9574-95e7faf1e695", "2d455068-c2f5-4129-b34e-417744b6c66c", "17c614d7-d40e-4551-b15f-57b2a9a06a9a", "4e1c0964-f4ed-4046-a82a-b347f5d364f7", "8fc94b75-b471-493d-b38c-f951a707e526", "a7dc1a23-738b-4036-8f18-0e6623efebef", "492635eb-194d-4f06-90cd-ea645ee64994", "862d641e-2e12-4162-9022-f13ffac6e216", "61f568d3-10a2-421a-bf23-0c7ee1b84fc1", "fa8ddc56-d8d7-455f-af79-65d39d887c72", "f412bdd1-455f-4d18-b998-508aa34153e2", "af4d3119-cd92-4120-8904-f6e1caa92523"], "befores": [{"name": "config", "status": "passed", "start": 1785046621271, "stop": 1785046621272}], "afters": [{"name": "config::", "start": 1785046678415}], "start": 1785046621271, "stop": 1785046678415} \ No newline at end of file diff --git a/allure-results/2cacc41a-8390-48de-a568-08f05f5c5ecd-attachment.txt b/allure-results/2cacc41a-8390-48de-a568-08f05f5c5ecd-attachment.txt new file mode 100644 index 0000000..41a358f --- /dev/null +++ b/allure-results/2cacc41a-8390-48de-a568-08f05f5c5ecd-attachment.txt @@ -0,0 +1,2 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: problem_user +INFO pages.login_page:login_page.py:67 Login action completed for username problem_user \ No newline at end of file diff --git a/allure-results/2d5a1713-aa69-44e5-ad33-7088c610324b-container.json b/allure-results/2d5a1713-aa69-44e5-ad33-7088c610324b-container.json new file mode 100644 index 0000000..a84196f --- /dev/null +++ b/allure-results/2d5a1713-aa69-44e5-ad33-7088c610324b-container.json @@ -0,0 +1 @@ +{"uuid": "a04cb50c-f7be-494b-98b8-0994d7992982", "children": ["4da8457f-71c2-4558-aa49-4871cb4b1663"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046681008, "stop": 1785046681008}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046684710, "stop": 1785046684710}, {"name": "capture_failure_artifacts::", "start": 1785046684710}], "start": 1785046681008, "stop": 1785046684710} \ No newline at end of file diff --git a/allure-results/2df8a575-5164-4c44-a418-f8cfb1846c1a-result.json b/allure-results/2df8a575-5164-4c44-a418-f8cfb1846c1a-result.json new file mode 100644 index 0000000..26ab929 --- /dev/null +++ b/allure-results/2df8a575-5164-4c44-a418-f8cfb1846c1a-result.json @@ -0,0 +1 @@ +{"name": "test_configuration_loads_successfully", "status": "passed", "start": 1785046570888, "stop": 1785046570888, "uuid": "6864d31d-f43b-4000-ab82-b03f6bcba619", "historyId": "460f9f36ffdc12b2d3d3f76e80167765", "testCaseId": "460f9f36ffdc12b2d3d3f76e80167765", "fullName": "tests.unit.test_config_manager#test_configuration_loads_successfully", "labels": [{"name": "tag", "value": "unit"}, {"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/2e3f5d98-d1a2-4d0a-be8f-7a5d7cfed1a7-result.json b/allure-results/2e3f5d98-d1a2-4d0a-be8f-7a5d7cfed1a7-result.json new file mode 100644 index 0000000..a9e77f9 --- /dev/null +++ b/allure-results/2e3f5d98-d1a2-4d0a-be8f-7a5d7cfed1a7-result.json @@ -0,0 +1 @@ +{"name": "Verify user can add product to cart - Sauce Labs Bolt T-Shirt", "status": "passed", "description": "Verify that a logged-in user can add different products to the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046556143, "stop": 1785046558009}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046558009, "stop": 1785046558009}, {"name": "Login with valid credentials", "status": "passed", "start": 1785046558009, "stop": 1785046560253}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046560254, "stop": 1785046560263}, {"name": "Retrieve product name: Sauce Labs Bolt T-Shirt", "status": "passed", "start": 1785046560264, "stop": 1785046560264}, {"name": "Add Sauce Labs Bolt T-Shirt to cart", "status": "passed", "start": 1785046560264, "stop": 1785046560990}, {"name": "Verify Sauce Labs Bolt T-Shirt was added to cart", "status": "passed", "start": 1785046560990, "stop": 1785046560999}], "attachments": [{"name": "log", "source": "50e57ff3-a5d7-4fea-a71b-be0d9e05c09a-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "eb626c5f-e4d7-4fda-8234-f00dcd72e08c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bolt T-Shirt'}"}], "start": 1785046556143, "stop": 1785046560999, "uuid": "5a7d2265-bb99-408b-9ffd-9a42d5ddc311", "historyId": "365cdcf2c43f8803df884c272abcbef6", "testCaseId": "76249ae9582a105da809f2e4b4437aaf", "fullName": "tests.e2e.test_inventory#test_add_product_to_cart", "labels": [{"name": "story", "value": "Add Product to Cart"}, {"name": "severity", "value": "critical"}, {"name": "feature", "value": "Inventory Management"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_inventory"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24862-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_inventory"}], "titlePath": ["tests", "e2e", "test_inventory.py"]} \ No newline at end of file diff --git a/allure-results/30c89990-5851-44b1-a715-e7be1a7dea5c-container.json b/allure-results/30c89990-5851-44b1-a715-e7be1a7dea5c-container.json new file mode 100644 index 0000000..efb88be --- /dev/null +++ b/allure-results/30c89990-5851-44b1-a715-e7be1a7dea5c-container.json @@ -0,0 +1 @@ +{"uuid": "37adcf65-a6ca-4d37-a2f3-6a36dc0a1e24", "befores": [{"name": "customer_data", "status": "passed", "start": 1785046636744, "stop": 1785046636744}], "afters": [{"name": "customer_data::", "start": 1785046646028}], "start": 1785046636744, "stop": 1785046646028} \ No newline at end of file diff --git a/allure-results/31ff34ad-6431-49f1-abff-44456f4a4c66-container.json b/allure-results/31ff34ad-6431-49f1-abff-44456f4a4c66-container.json new file mode 100644 index 0000000..fa6473e --- /dev/null +++ b/allure-results/31ff34ad-6431-49f1-abff-44456f4a4c66-container.json @@ -0,0 +1 @@ +{"uuid": "01921625-eb5f-4d32-a044-24a31eed665d", "children": ["fa8ddc56-d8d7-455f-af79-65d39d887c72"], "befores": [{"name": "page", "status": "passed", "start": 1785046678297, "stop": 1785046678321}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046678322, "stop": 1785046678324}, {"name": "page::", "start": 1785046678324}], "start": 1785046678297, "stop": 1785046678324} \ No newline at end of file diff --git a/allure-results/32645c5e-1909-4e60-bd53-3743a541fe53-attachment.txt b/allure-results/32645c5e-1909-4e60-bd53-3743a541fe53-attachment.txt new file mode 100644 index 0000000..f879cd4 --- /dev/null +++ b/allure-results/32645c5e-1909-4e60-bd53-3743a541fe53-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bike Light +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bike Light \ No newline at end of file diff --git a/allure-results/33386259-3b89-4d92-a553-31ddbe9dc3f0-attachment.txt b/allure-results/33386259-3b89-4d92-a553-31ddbe9dc3f0-attachment.txt new file mode 100644 index 0000000..5e1c69e --- /dev/null +++ b/allure-results/33386259-3b89-4d92-a553-31ddbe9dc3f0-attachment.txt @@ -0,0 +1,2 @@ +Active environment: ci +Running tests against environment: > diff --git a/allure-results/336443f1-e913-4aae-ac4b-0a1ef099ce1e-container.json b/allure-results/336443f1-e913-4aae-ac4b-0a1ef099ce1e-container.json new file mode 100644 index 0000000..2b980ba --- /dev/null +++ b/allure-results/336443f1-e913-4aae-ac4b-0a1ef099ce1e-container.json @@ -0,0 +1 @@ +{"uuid": "496a0886-983e-4fb9-a025-21006cfe361a", "children": ["1203bebf-db2b-4e50-8e72-5e11e0144027"], "befores": [{"name": "page", "status": "passed", "start": 1785046638833, "stop": 1785046638862}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046648899, "stop": 1785046648906}, {"name": "page::", "start": 1785046648906}], "start": 1785046638833, "stop": 1785046648906} \ No newline at end of file diff --git a/allure-results/34736a98-b29f-426d-a4b6-0a590575dab5-container.json b/allure-results/34736a98-b29f-426d-a4b6-0a590575dab5-container.json new file mode 100644 index 0000000..3dc4eea --- /dev/null +++ b/allure-results/34736a98-b29f-426d-a4b6-0a590575dab5-container.json @@ -0,0 +1 @@ +{"uuid": "53e6d49d-fde3-4ea3-a9a8-1aecc0a961a3", "children": ["09710e12-8b19-4e64-b3ea-2fdfc88b8550"], "befores": [{"name": "context", "status": "passed", "start": 1785046561033, "stop": 1785046561039}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046566321, "stop": 1785046566355}, {"name": "context::", "start": 1785046566355}], "start": 1785046561033, "stop": 1785046566355} \ No newline at end of file diff --git a/allure-results/349670f4-d3a8-4dd6-a292-7dee3c106d2d-container.json b/allure-results/349670f4-d3a8-4dd6-a292-7dee3c106d2d-container.json new file mode 100644 index 0000000..5b746b9 --- /dev/null +++ b/allure-results/349670f4-d3a8-4dd6-a292-7dee3c106d2d-container.json @@ -0,0 +1 @@ +{"uuid": "03464568-112e-408b-b05d-28545ae44f24", "children": ["01701ce7-fb05-4767-992e-9246c52fd29d"], "befores": [{"name": "context", "status": "passed", "start": 1785046571307, "stop": 1785046571313}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046571389, "stop": 1785046571401}, {"name": "context::", "start": 1785046571401}], "start": 1785046571307, "stop": 1785046571401} \ No newline at end of file diff --git a/allure-results/34d2ed9b-0121-4884-819d-8c05a0ca6cf7-container.json b/allure-results/34d2ed9b-0121-4884-819d-8c05a0ca6cf7-container.json new file mode 100644 index 0000000..9d48a79 --- /dev/null +++ b/allure-results/34d2ed9b-0121-4884-819d-8c05a0ca6cf7-container.json @@ -0,0 +1 @@ +{"uuid": "9e9b7469-1137-4f0c-b040-31ed9a1e150d", "children": ["119e185c-2a13-4876-b36e-f79c684e70e8"], "befores": [{"name": "context", "status": "passed", "start": 1785046545589, "stop": 1785046545594}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046550856, "stop": 1785046550873}, {"name": "context::", "start": 1785046550873}], "start": 1785046545589, "stop": 1785046550873} \ No newline at end of file diff --git a/allure-results/35976cac-fc01-4423-8613-62b5ae82bf7c-attachment.txt b/allure-results/35976cac-fc01-4423-8613-62b5ae82bf7c-attachment.txt new file mode 100644 index 0000000..d6dc561 --- /dev/null +++ b/allure-results/35976cac-fc01-4423-8613-62b5ae82bf7c-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:47:07,686 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:09,924 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:47:09,930 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:47:09,930 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Backpack +2026-07-26 11:47:10,652 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Backpack diff --git a/allure-results/369e6421-d811-4818-90d5-8fb1e6a35f28-container.json b/allure-results/369e6421-d811-4818-90d5-8fb1e6a35f28-container.json new file mode 100644 index 0000000..67f035d --- /dev/null +++ b/allure-results/369e6421-d811-4818-90d5-8fb1e6a35f28-container.json @@ -0,0 +1 @@ +{"uuid": "f600d095-6d02-40cf-9603-ba4e892dc33e", "children": ["8c2f2a84-f81c-41c5-b5fc-ab5e5a2d31a0"], "befores": [{"name": "page", "status": "passed", "start": 1785046561256, "stop": 1785046561334}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046566681, "stop": 1785046566686}, {"name": "page::", "start": 1785046566686}], "start": 1785046561256, "stop": 1785046566686} \ No newline at end of file diff --git a/allure-results/373138de-9773-47a8-a770-99927037b89b-container.json b/allure-results/373138de-9773-47a8-a770-99927037b89b-container.json new file mode 100644 index 0000000..32457a8 --- /dev/null +++ b/allure-results/373138de-9773-47a8-a770-99927037b89b-container.json @@ -0,0 +1 @@ +{"uuid": "82c1de7b-8064-4f20-be7f-dc79d23bccd5", "befores": [{"name": "customer_data", "status": "passed", "start": 1785046508411, "stop": 1785046508411}], "afters": [{"name": "customer_data::", "start": 1785046517890}], "start": 1785046508411, "stop": 1785046517890} \ No newline at end of file diff --git a/allure-results/3798c7dd-7aea-4906-89ef-2a6290fb81e8-result.json b/allure-results/3798c7dd-7aea-4906-89ef-2a6290fb81e8-result.json new file mode 100644 index 0000000..7747b59 --- /dev/null +++ b/allure-results/3798c7dd-7aea-4906-89ef-2a6290fb81e8-result.json @@ -0,0 +1 @@ +{"name": "Verify invalid user login is rejected", "status": "passed", "description": "Verify that invalid or locked-out users cannot log into the SauceDemo application.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046575311, "stop": 1785046576690}, {"name": "Login with user: locked_out_user", "status": "passed", "start": 1785046576690, "stop": 1785046578898}, {"name": "Verify login error message", "status": "passed", "start": 1785046578898, "stop": 1785046578913}], "attachments": [{"name": "log", "source": "109e7421-e6ca-4d1d-b75b-e2a07e2a9b2b-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "ef7a4298-220f-4915-87b2-0c0f753476f5-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "user_data", "value": "{'test_id': 'locked_out_user', 'username': 'locked_out_user', 'password': 'secret_sauce', 'expected_error': 'Epic sadface: Sorry, this user has been locked out.'}"}], "start": 1785046575311, "stop": 1785046578913, "uuid": "b4f4a2f5-bf6e-44d2-b8b0-0297c5a84f76", "historyId": "3fb68b0d5b93adc68beec4fe1ee04900", "testCaseId": "e8370c619ee25448f689d6057ce1e179", "fullName": "tests.e2e.test_login#test_invalid_login", "labels": [{"name": "feature", "value": "Authentication"}, {"name": "severity", "value": "critical"}, {"name": "story", "value": "Invalid User Login"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_login"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24862-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_login"}], "titlePath": ["tests", "e2e", "test_login.py"]} \ No newline at end of file diff --git a/allure-results/37ac28e8-ca82-4bc0-89ed-3f41a499a81d-container.json b/allure-results/37ac28e8-ca82-4bc0-89ed-3f41a499a81d-container.json new file mode 100644 index 0000000..9b37129 --- /dev/null +++ b/allure-results/37ac28e8-ca82-4bc0-89ed-3f41a499a81d-container.json @@ -0,0 +1 @@ +{"uuid": "2ac6e347-0fc4-4bda-904d-9026f4e4cd21", "children": ["1203bebf-db2b-4e50-8e72-5e11e0144027"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046638863, "stop": 1785046638863}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046648899, "stop": 1785046648899}, {"name": "capture_failure_artifacts::", "start": 1785046648899}], "start": 1785046638863, "stop": 1785046648899} \ No newline at end of file diff --git a/allure-results/3887b998-c2ed-445c-833c-1b8307ad1386-container.json b/allure-results/3887b998-c2ed-445c-833c-1b8307ad1386-container.json new file mode 100644 index 0000000..38f4b32 --- /dev/null +++ b/allure-results/3887b998-c2ed-445c-833c-1b8307ad1386-container.json @@ -0,0 +1 @@ +{"uuid": "99ab6df6-6f99-42f5-b501-f864edfa495f", "children": ["ad62a26a-de9f-4a17-966b-deaeae749865", "db8c0ef2-f2c6-495f-93ef-c86d16fcd74a", "ba10b5d3-8199-4902-997d-83f59149a95d", "dda59aea-654c-4c87-b58c-1aa7f06765a4", "119e185c-2a13-4876-b36e-f79c684e70e8", "55b69fcb-b0dd-4d1c-90cc-617c12dfd925", "5a7d2265-bb99-408b-9ffd-9a42d5ddc311", "09710e12-8b19-4e64-b3ea-2fdfc88b8550", "92840d7a-2565-4d1d-b5ec-9ec7ac9a9339", "b4f4a2f5-bf6e-44d2-b8b0-0297c5a84f76"], "befores": [{"name": "base_url", "status": "passed", "start": 1785046499277, "stop": 1785046499277}], "afters": [{"name": "base_url::", "start": 1785046579028}], "start": 1785046499277, "stop": 1785046579028} \ No newline at end of file diff --git a/allure-results/3acaf8da-ff15-4414-be7b-10fafe321c15-container.json b/allure-results/3acaf8da-ff15-4414-be7b-10fafe321c15-container.json new file mode 100644 index 0000000..0cb8c75 --- /dev/null +++ b/allure-results/3acaf8da-ff15-4414-be7b-10fafe321c15-container.json @@ -0,0 +1 @@ +{"uuid": "99bd9f48-be00-45cf-be0c-41fb95630ebd", "befores": [{"name": "user_data", "status": "passed", "start": 1785046561110, "stop": 1785046561110}], "afters": [{"name": "user_data::", "start": 1785046566309}], "start": 1785046561110, "stop": 1785046566309} \ No newline at end of file diff --git a/allure-results/3c5177e3-60c4-4488-802d-e7eab8ae0f58-result.json b/allure-results/3c5177e3-60c4-4488-802d-e7eab8ae0f58-result.json new file mode 100644 index 0000000..ef275c9 --- /dev/null +++ b/allure-results/3c5177e3-60c4-4488-802d-e7eab8ae0f58-result.json @@ -0,0 +1 @@ +{"name": "test_browser_configuration", "status": "passed", "start": 1785046570979, "stop": 1785046570979, "uuid": "3066e1cd-8d5e-4fdb-b327-8dfcd432565c", "historyId": "a4ac93025171fc690a5a66c1c3f513ab", "testCaseId": "a4ac93025171fc690a5a66c1c3f513ab", "fullName": "tests.unit.test_config_manager#test_browser_configuration", "labels": [{"name": "tag", "value": "unit"}, {"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/3c576b8b-59cb-420a-b7db-31684585abf1-result.json b/allure-results/3c576b8b-59cb-420a-b7db-31684585abf1-result.json new file mode 100644 index 0000000..7b2c58c --- /dev/null +++ b/allure-results/3c576b8b-59cb-420a-b7db-31684585abf1-result.json @@ -0,0 +1 @@ +{"name": "Verify checkout flow - Sauce Labs Bike Light - customer_02", "status": "passed", "description": "Verify that a user can successfully complete the checkout flow using different products and customer information.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046646073, "stop": 1785046647350}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046647351, "stop": 1785046647351}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046647351, "stop": 1785046649569}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046649569, "stop": 1785046649579}, {"name": "Retrieve product name: Sauce Labs Bike Light", "status": "passed", "start": 1785046649579, "stop": 1785046649579}, {"name": "Add Sauce Labs Bike Light to cart", "status": "passed", "start": 1785046649579, "stop": 1785046650303}, {"name": "Open shopping cart", "status": "passed", "start": 1785046650303, "stop": 1785046651022}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046651022, "stop": 1785046651022}, {"name": "Verify Sauce Labs Bike Light is present in cart", "status": "passed", "start": 1785046651022, "stop": 1785046651026}, {"name": "Proceed to checkout", "status": "passed", "start": 1785046651026, "stop": 1785046651743}, {"name": "Verify checkout information page is loaded", "status": "passed", "start": 1785046651743, "stop": 1785046651743}, {"name": "Enter customer information for customer_02", "status": "passed", "start": 1785046651744, "stop": 1785046653872}, {"name": "Continue to checkout overview", "status": "passed", "start": 1785046653873, "stop": 1785046654608}, {"name": "Verify checkout overview page is loaded", "status": "passed", "start": 1785046654608, "stop": 1785046654608}, {"name": "Verify Sauce Labs Bike Light is present in order", "status": "passed", "start": 1785046654608, "stop": 1785046654629}, {"name": "Complete the order", "status": "passed", "start": 1785046654629, "stop": 1785046655353}, {"name": "Verify order confirmation message", "status": "passed", "start": 1785046655353, "stop": 1785046655359}], "attachments": [{"name": "log", "source": "32645c5e-1909-4e60-bd53-3743a541fe53-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "c481882c-eafc-453a-8488-90fc1f565f6c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bike Light'}"}, {"name": "customer_data", "value": "{'test_id': 'customer_02', 'first_name': 'John', 'last_name': 'Doe', 'postal_code': '10001'}"}], "start": 1785046646073, "stop": 1785046655359, "uuid": "2d455068-c2f5-4129-b34e-417744b6c66c", "historyId": "be2eed149bc93a3552dc8378e8c38fe5", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "severity", "value": "critical"}, {"name": "feature", "value": "Checkout"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "story", "value": "Complete Product Checkout"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/3c6dbecc-8f4c-4bfd-9056-692936026a4a-container.json b/allure-results/3c6dbecc-8f4c-4bfd-9056-692936026a4a-container.json new file mode 100644 index 0000000..0a1f78f --- /dev/null +++ b/allure-results/3c6dbecc-8f4c-4bfd-9056-692936026a4a-container.json @@ -0,0 +1 @@ +{"uuid": "b3b3011a-c726-4c87-8a53-62473a511bff", "befores": [{"name": "customer_data", "status": "passed", "start": 1785046518011, "stop": 1785046518011}], "afters": [{"name": "customer_data::", "start": 1785046535862}], "start": 1785046518011, "stop": 1785046535862} \ No newline at end of file diff --git a/allure-results/3cb06573-9e6b-48ca-ac52-32e4ae6a3b48-result.json b/allure-results/3cb06573-9e6b-48ca-ac52-32e4ae6a3b48-result.json new file mode 100644 index 0000000..2a0b57c --- /dev/null +++ b/allure-results/3cb06573-9e6b-48ca-ac52-32e4ae6a3b48-result.json @@ -0,0 +1 @@ +{"name": "Verify valid user can login successfully", "status": "passed", "description": "Verify that a valid user can successfully log into the SauceDemo application.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046664055, "stop": 1785046666470}, {"name": "Retrieve credentials for valid_standard_user", "status": "passed", "start": 1785046666470, "stop": 1785046666470}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046666470, "stop": 1785046668694}, {"name": "Verify user is successfully logged in", "status": "passed", "start": 1785046668694, "stop": 1785046668694}], "attachments": [{"name": "log", "source": "ebb3397a-e87c-4013-b05a-db11b9ff865c-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "e30442ea-cca7-4827-85fe-129226387523-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "user_data", "value": "{'test_id': 'valid_standard_user', 'username': 'standard_user', 'password': 'secret_sauce', 'expected_url': '/inventory.html'}"}], "start": 1785046664055, "stop": 1785046668695, "uuid": "bf9c4c05-9138-4d59-ab12-782895346ac8", "historyId": "9942a8ac428564c9d75add5dd0f99963", "testCaseId": "5ac5da8f801af0b6d14e8acfcb100ad8", "fullName": "tests.e2e.test_login#test_valid_login", "labels": [{"name": "epic", "value": "SauceDemo Application"}, {"name": "feature", "value": "Authentication"}, {"name": "severity", "value": "critical"}, {"name": "story", "value": "Valid User Login"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_login"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25039-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_login"}], "titlePath": ["tests", "e2e", "test_login.py"]} \ No newline at end of file diff --git a/allure-results/3ea1165c-0817-47ab-9ee2-7a464612a45f-container.json b/allure-results/3ea1165c-0817-47ab-9ee2-7a464612a45f-container.json new file mode 100644 index 0000000..20a5751 --- /dev/null +++ b/allure-results/3ea1165c-0817-47ab-9ee2-7a464612a45f-container.json @@ -0,0 +1 @@ +{"uuid": "8bf6656f-4e24-4538-99a6-9d3073d6a50d", "children": ["304c93db-f7dd-4906-a92d-1a02bc8f2f20"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046566796, "stop": 1785046566796}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046570774, "stop": 1785046570774}, {"name": "capture_failure_artifacts::", "start": 1785046570774}], "start": 1785046566796, "stop": 1785046570774} \ No newline at end of file diff --git a/allure-results/42685400-40e3-4cc2-9ef7-17b69b162e41-attachment.txt b/allure-results/42685400-40e3-4cc2-9ef7-17b69b162e41-attachment.txt new file mode 100644 index 0000000..f879cd4 --- /dev/null +++ b/allure-results/42685400-40e3-4cc2-9ef7-17b69b162e41-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bike Light +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bike Light \ No newline at end of file diff --git a/allure-results/428fb91d-eb1f-480f-b8e3-b42d9f1a8c39-result.json b/allure-results/428fb91d-eb1f-480f-b8e3-b42d9f1a8c39-result.json new file mode 100644 index 0000000..bd9c680 --- /dev/null +++ b/allure-results/428fb91d-eb1f-480f-b8e3-b42d9f1a8c39-result.json @@ -0,0 +1 @@ +{"name": "Verify checkout flow - Sauce Labs Backpack - customer_01", "status": "passed", "description": "Verify that a user can successfully complete the checkout flow using different products and customer information.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046508411, "stop": 1785046509642}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046509642, "stop": 1785046509642}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046509643, "stop": 1785046511870}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046511870, "stop": 1785046511882}, {"name": "Retrieve product name: Sauce Labs Backpack", "status": "passed", "start": 1785046511882, "stop": 1785046511882}, {"name": "Add Sauce Labs Backpack to cart", "status": "passed", "start": 1785046511882, "stop": 1785046512613}, {"name": "Open shopping cart", "status": "passed", "start": 1785046512613, "stop": 1785046513391}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046513391, "stop": 1785046513391}, {"name": "Verify Sauce Labs Backpack is present in cart", "status": "passed", "start": 1785046513391, "stop": 1785046513401}, {"name": "Proceed to checkout", "status": "passed", "start": 1785046513401, "stop": 1785046514172}, {"name": "Verify checkout information page is loaded", "status": "passed", "start": 1785046514172, "stop": 1785046514172}, {"name": "Enter customer information for customer_01", "status": "passed", "start": 1785046514172, "stop": 1785046516332}, {"name": "Continue to checkout overview", "status": "passed", "start": 1785046516332, "stop": 1785046517108}, {"name": "Verify checkout overview page is loaded", "status": "passed", "start": 1785046517108, "stop": 1785046517108}, {"name": "Verify Sauce Labs Backpack is present in order", "status": "passed", "start": 1785046517108, "stop": 1785046517126}, {"name": "Complete the order", "status": "passed", "start": 1785046517126, "stop": 1785046517873}, {"name": "Verify order confirmation message", "status": "passed", "start": 1785046517874, "stop": 1785046517889}], "attachments": [{"name": "log", "source": "1819e239-f905-4fd1-9306-eddc0b22be5e-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "00b3d655-573c-4cb1-b478-a308690c903a-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Backpack'}"}, {"name": "customer_data", "value": "{'test_id': 'customer_01', 'first_name': 'Prateek', 'last_name': 'Dharwal', 'postal_code': '141001'}"}], "start": 1785046508411, "stop": 1785046517889, "uuid": "db8c0ef2-f2c6-495f-93ef-c86d16fcd74a", "historyId": "157c9a06370e79ff93d3823b414513bd", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "feature", "value": "Checkout"}, {"name": "severity", "value": "critical"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "story", "value": "Complete Product Checkout"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24862-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/43070133-22c1-465c-beee-b87cdcf88196-container.json b/allure-results/43070133-22c1-465c-beee-b87cdcf88196-container.json new file mode 100644 index 0000000..b4b6257 --- /dev/null +++ b/allure-results/43070133-22c1-465c-beee-b87cdcf88196-container.json @@ -0,0 +1 @@ +{"uuid": "6827c278-1f0a-423c-8ea2-dc225bc77020", "children": ["a65284eb-f9e8-486d-a633-1e8421bfe966", "c9c0a217-81ab-4412-91e7-a15d43ad89da", "145a497d-6f48-420a-9fd1-2f56c44bc698", "4e88716d-52cc-4fea-9574-95e7faf1e695", "2d455068-c2f5-4129-b34e-417744b6c66c", "17c614d7-d40e-4551-b15f-57b2a9a06a9a", "4e1c0964-f4ed-4046-a82a-b347f5d364f7", "8fc94b75-b471-493d-b38c-f951a707e526", "a7dc1a23-738b-4036-8f18-0e6623efebef", "492635eb-194d-4f06-90cd-ea645ee64994", "862d641e-2e12-4162-9022-f13ffac6e216", "61f568d3-10a2-421a-bf23-0c7ee1b84fc1", "fa8ddc56-d8d7-455f-af79-65d39d887c72", "f412bdd1-455f-4d18-b998-508aa34153e2", "af4d3119-cd92-4120-8904-f6e1caa92523"], "befores": [{"name": "base_url", "status": "passed", "start": 1785046621136, "stop": 1785046621136}], "afters": [{"name": "base_url::", "start": 1785046678420}], "start": 1785046621136, "stop": 1785046678420} \ No newline at end of file diff --git a/allure-results/44d55dbb-ac98-4549-bbbc-f026b07432fd-container.json b/allure-results/44d55dbb-ac98-4549-bbbc-f026b07432fd-container.json new file mode 100644 index 0000000..d9d7f18 --- /dev/null +++ b/allure-results/44d55dbb-ac98-4549-bbbc-f026b07432fd-container.json @@ -0,0 +1 @@ +{"uuid": "7bf9f479-ba5a-46a8-a59f-7ef52be2fe15", "befores": [{"name": "customer_data", "status": "passed", "start": 1785046648940, "stop": 1785046648940}], "afters": [{"name": "customer_data::", "start": 1785046659669}], "start": 1785046648940, "stop": 1785046659670} \ No newline at end of file diff --git a/allure-results/4526ecd0-a1de-4478-8c55-a62fdd334b7f-container.json b/allure-results/4526ecd0-a1de-4478-8c55-a62fdd334b7f-container.json new file mode 100644 index 0000000..f27f0b1 --- /dev/null +++ b/allure-results/4526ecd0-a1de-4478-8c55-a62fdd334b7f-container.json @@ -0,0 +1 @@ +{"uuid": "decb34a4-21fe-4b1f-83c3-d6e52f761995", "children": ["3066e1cd-8d5e-4fdb-b327-8dfcd432565c"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046570979, "stop": 1785046570979}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046570980, "stop": 1785046570980}, {"name": "capture_failure_artifacts::", "start": 1785046570980}], "start": 1785046570979, "stop": 1785046570980} \ No newline at end of file diff --git a/allure-results/464820bd-92b9-4a6e-8a66-449d90f38ba6-container.json b/allure-results/464820bd-92b9-4a6e-8a66-449d90f38ba6-container.json new file mode 100644 index 0000000..25d12a0 --- /dev/null +++ b/allure-results/464820bd-92b9-4a6e-8a66-449d90f38ba6-container.json @@ -0,0 +1 @@ +{"uuid": "f6c3c023-d4e8-4aad-9073-a9f3d4d9e72f", "children": ["fe8a7034-c964-4f6f-bbcc-d629e9fd399b", "c72a1e42-0398-455d-a621-ff093f5617eb", "1203bebf-db2b-4e50-8e72-5e11e0144027", "5df0b7cc-b4d7-444b-8430-12128401448a", "6f631202-9ba1-4462-a836-a396d11796ce", "bf9c4c05-9138-4d59-ab12-782895346ac8", "3d40d7cb-6f90-48eb-8b7e-167dbd560241", "ee67d554-adf0-4e0c-ad55-7a8592448e2c", "4da8457f-71c2-4558-aa49-4871cb4b1663"], "befores": [{"name": "playwright", "status": "passed", "start": 1785046621136, "stop": 1785046621271}], "afters": [{"name": "playwright::1", "status": "passed", "start": 1785046684738, "stop": 1785046684743}, {"name": "playwright::", "start": 1785046684743}], "start": 1785046621136, "stop": 1785046684743} \ No newline at end of file diff --git a/allure-results/476957f5-7c13-47e1-91b4-fbf7d3f775f1-container.json b/allure-results/476957f5-7c13-47e1-91b4-fbf7d3f775f1-container.json new file mode 100644 index 0000000..69bb126 --- /dev/null +++ b/allure-results/476957f5-7c13-47e1-91b4-fbf7d3f775f1-container.json @@ -0,0 +1 @@ +{"uuid": "88f64312-26ca-4f53-a94f-be1c50fbd8f0", "children": ["01701ce7-fb05-4767-992e-9246c52fd29d"], "befores": [{"name": "page", "status": "passed", "start": 1785046571313, "stop": 1785046571383}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046571384, "stop": 1785046571388}, {"name": "page::", "start": 1785046571388}], "start": 1785046571313, "stop": 1785046571388} \ No newline at end of file diff --git a/allure-results/480b9a95-3410-4a16-9e15-f07a234d079f-attachment.txt b/allure-results/480b9a95-3410-4a16-9e15-f07a234d079f-attachment.txt new file mode 100644 index 0000000..b9ccad0 --- /dev/null +++ b/allure-results/480b9a95-3410-4a16-9e15-f07a234d079f-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bolt T-Shirt +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bolt T-Shirt \ No newline at end of file diff --git a/allure-results/4a2c9d5a-ba93-4928-b414-ae9d35d58896-attachment.txt b/allure-results/4a2c9d5a-ba93-4928-b414-ae9d35d58896-attachment.txt new file mode 100644 index 0000000..30ee593 --- /dev/null +++ b/allure-results/4a2c9d5a-ba93-4928-b414-ae9d35d58896-attachment.txt @@ -0,0 +1,2 @@ +2026-07-26 11:46:04,438 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:46:06,679 | INFO | pages.login_page | Login action completed for username standard_user diff --git a/allure-results/4a6f513e-3981-4749-a99d-f29f842d2807-result.json b/allure-results/4a6f513e-3981-4749-a99d-f29f842d2807-result.json new file mode 100644 index 0000000..8cedf08 --- /dev/null +++ b/allure-results/4a6f513e-3981-4749-a99d-f29f842d2807-result.json @@ -0,0 +1 @@ +{"name": "Verify selected product is displayed in cart - Sauce Labs Bolt T-Shirt", "status": "passed", "description": "Verify that each selected product appears correctly in the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046624022, "stop": 1785046625520}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046625520, "stop": 1785046625520}, {"name": "Login with valid credentials", "status": "passed", "start": 1785046625520, "stop": 1785046627719}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046627719, "stop": 1785046627727}, {"name": "Retrieve product name: Sauce Labs Bolt T-Shirt", "status": "passed", "start": 1785046627727, "stop": 1785046627727}, {"name": "Add Sauce Labs Bolt T-Shirt to cart", "status": "passed", "start": 1785046627727, "stop": 1785046628444}, {"name": "Open shopping cart", "status": "passed", "start": 1785046628444, "stop": 1785046629172}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046629172, "stop": 1785046629172}, {"name": "Verify 'Sauce Labs Bolt T-Shirt' is present in cart", "status": "passed", "start": 1785046629172, "stop": 1785046629184}, {"name": "Verify product name is displayed in cart", "status": "passed", "start": 1785046629184, "stop": 1785046629201}], "attachments": [{"name": "log", "source": "65eb221a-b190-4892-9fae-2a4de71bbfcc-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "0af2f73c-f2dd-48c4-9198-9c0b509a0650-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "f84cbee9-27d8-4f61-88ae-45906964d117-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bolt T-Shirt'}"}], "start": 1785046624022, "stop": 1785046629202, "uuid": "fe8a7034-c964-4f6f-bbcc-d629e9fd399b", "historyId": "ab8e54f3c42f8a8de2cd6d0371850c1f", "testCaseId": "1023375bdd60dd57ece9a953ebf251e0", "fullName": "tests.e2e.test_cart#test_product_is_displayed_in_cart", "labels": [{"name": "feature", "value": "Shopping Cart"}, {"name": "story", "value": "Verify Product in Cart"}, {"name": "severity", "value": "critical"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_cart"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25039-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_cart"}], "titlePath": ["tests", "e2e", "test_cart.py"]} \ No newline at end of file diff --git a/allure-results/4a90585c-8577-4853-8a83-51a558b180e2-container.json b/allure-results/4a90585c-8577-4853-8a83-51a558b180e2-container.json new file mode 100644 index 0000000..8c7377c --- /dev/null +++ b/allure-results/4a90585c-8577-4853-8a83-51a558b180e2-container.json @@ -0,0 +1 @@ +{"uuid": "d5f55d12-db01-40bc-b94e-13f2e97281ce", "children": ["61f568d3-10a2-421a-bf23-0c7ee1b84fc1"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046678287, "stop": 1785046678287}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046678288, "stop": 1785046678288}, {"name": "capture_failure_artifacts::", "start": 1785046678288}], "start": 1785046678287, "stop": 1785046678288} \ No newline at end of file diff --git a/allure-results/4c4e796d-0787-4862-980c-3906bd04b28d-result.json b/allure-results/4c4e796d-0787-4862-980c-3906bd04b28d-result.json new file mode 100644 index 0000000..53c0c5b --- /dev/null +++ b/allure-results/4c4e796d-0787-4862-980c-3906bd04b28d-result.json @@ -0,0 +1 @@ +{"name": "Verify selected product is displayed in cart - Sauce Labs Backpack", "status": "passed", "description": "Verify that each selected product appears correctly in the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046625564, "stop": 1785046627687}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046627687, "stop": 1785046627687}, {"name": "Login with valid credentials", "status": "passed", "start": 1785046627687, "stop": 1785046629925}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046629925, "stop": 1785046629931}, {"name": "Retrieve product name: Sauce Labs Backpack", "status": "passed", "start": 1785046629931, "stop": 1785046629931}, {"name": "Add Sauce Labs Backpack to cart", "status": "passed", "start": 1785046629931, "stop": 1785046630653}, {"name": "Open shopping cart", "status": "passed", "start": 1785046630653, "stop": 1785046631370}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046631370, "stop": 1785046631370}, {"name": "Verify 'Sauce Labs Backpack' is present in cart", "status": "passed", "start": 1785046631370, "stop": 1785046631376}, {"name": "Verify product name is displayed in cart", "status": "passed", "start": 1785046631376, "stop": 1785046631391}], "attachments": [{"name": "log", "source": "00106808-9ca4-4eed-a509-6fe5d79887ac-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "35976cac-fc01-4423-8613-62b5ae82bf7c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Backpack'}"}], "start": 1785046625564, "stop": 1785046631391, "uuid": "c9c0a217-81ab-4412-91e7-a15d43ad89da", "historyId": "c5e1a02616e23b53072b0aeb24c54eeb", "testCaseId": "1023375bdd60dd57ece9a953ebf251e0", "fullName": "tests.e2e.test_cart#test_product_is_displayed_in_cart", "labels": [{"name": "severity", "value": "critical"}, {"name": "story", "value": "Verify Product in Cart"}, {"name": "feature", "value": "Shopping Cart"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_cart"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_cart"}], "titlePath": ["tests", "e2e", "test_cart.py"]} \ No newline at end of file diff --git a/allure-results/4c9a5067-0dd6-4f9e-87c2-9d02e86dfa9d-container.json b/allure-results/4c9a5067-0dd6-4f9e-87c2-9d02e86dfa9d-container.json new file mode 100644 index 0000000..d112519 --- /dev/null +++ b/allure-results/4c9a5067-0dd6-4f9e-87c2-9d02e86dfa9d-container.json @@ -0,0 +1 @@ +{"uuid": "0136dee6-9008-420a-a3c5-77cf65759cf6", "befores": [{"name": "user_data", "status": "passed", "start": 1785046681008, "stop": 1785046681008}], "afters": [{"name": "user_data::", "start": 1785046684710}], "start": 1785046681008, "stop": 1785046684710} \ No newline at end of file diff --git a/allure-results/4ce577ec-509e-44a2-a206-559fbba56817-container.json b/allure-results/4ce577ec-509e-44a2-a206-559fbba56817-container.json new file mode 100644 index 0000000..6278407 --- /dev/null +++ b/allure-results/4ce577ec-509e-44a2-a206-559fbba56817-container.json @@ -0,0 +1 @@ +{"uuid": "06953338-ea57-4fb8-b1e0-2bcddc4e7d97", "children": ["6f631202-9ba1-4462-a836-a396d11796ce"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046659719, "stop": 1785046659719}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046664012, "stop": 1785046664012}, {"name": "capture_failure_artifacts::", "start": 1785046664012}], "start": 1785046659719, "stop": 1785046664012} \ No newline at end of file diff --git a/allure-results/4d714ee7-1fbf-4953-a8a1-d3a6bdaf90bb-container.json b/allure-results/4d714ee7-1fbf-4953-a8a1-d3a6bdaf90bb-container.json new file mode 100644 index 0000000..b66f302 --- /dev/null +++ b/allure-results/4d714ee7-1fbf-4953-a8a1-d3a6bdaf90bb-container.json @@ -0,0 +1 @@ +{"uuid": "d5d3d67e-1058-435f-8c1f-08d65c5ab329", "befores": [{"name": "product_data", "status": "passed", "start": 1785046499880, "stop": 1785046499880}], "afters": [{"name": "product_data::", "start": 1785046508306}], "start": 1785046499880, "stop": 1785046508306} \ No newline at end of file diff --git a/allure-results/4d8517ea-c6bd-4767-9ede-efd8816c0495-container.json b/allure-results/4d8517ea-c6bd-4767-9ede-efd8816c0495-container.json new file mode 100644 index 0000000..32044a1 --- /dev/null +++ b/allure-results/4d8517ea-c6bd-4767-9ede-efd8816c0495-container.json @@ -0,0 +1 @@ +{"uuid": "0e02f48d-7f7b-4d47-b1c6-c22059b0ec5f", "children": ["fe8a7034-c964-4f6f-bbcc-d629e9fd399b", "c72a1e42-0398-455d-a621-ff093f5617eb", "1203bebf-db2b-4e50-8e72-5e11e0144027", "5df0b7cc-b4d7-444b-8430-12128401448a", "6f631202-9ba1-4462-a836-a396d11796ce", "bf9c4c05-9138-4d59-ab12-782895346ac8", "3d40d7cb-6f90-48eb-8b7e-167dbd560241", "ee67d554-adf0-4e0c-ad55-7a8592448e2c", "4da8457f-71c2-4558-aa49-4871cb4b1663"], "befores": [{"name": "browser_manager", "status": "passed", "start": 1785046621272, "stop": 1785046621272}], "afters": [{"name": "browser_manager::", "start": 1785046684738}], "start": 1785046621272, "stop": 1785046684738} \ No newline at end of file diff --git a/allure-results/4ee2ccee-a099-4419-9bce-1eb58dea935c-attachment.txt b/allure-results/4ee2ccee-a099-4419-9bce-1eb58dea935c-attachment.txt new file mode 100644 index 0000000..18da1b0 --- /dev/null +++ b/allure-results/4ee2ccee-a099-4419-9bce-1eb58dea935c-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:45:47,874 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:45:50,108 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:45:50,116 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:45:50,116 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Backpack +2026-07-26 11:45:50,838 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Backpack diff --git a/allure-results/4f7c4034-2109-49c4-8f6c-38533fe83b00-container.json b/allure-results/4f7c4034-2109-49c4-8f6c-38533fe83b00-container.json new file mode 100644 index 0000000..83ecdb7 --- /dev/null +++ b/allure-results/4f7c4034-2109-49c4-8f6c-38533fe83b00-container.json @@ -0,0 +1 @@ +{"uuid": "57023dcc-20ab-42d0-92ea-8b916b93dbb7", "children": ["fe8a7034-c964-4f6f-bbcc-d629e9fd399b"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046624022, "stop": 1785046624022}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046629203, "stop": 1785046629203}, {"name": "capture_failure_artifacts::", "start": 1785046629203}], "start": 1785046624022, "stop": 1785046629203} \ No newline at end of file diff --git a/allure-results/4ff8fa85-4e2b-407b-bc99-c0849a205de0-container.json b/allure-results/4ff8fa85-4e2b-407b-bc99-c0849a205de0-container.json new file mode 100644 index 0000000..c0a73fb --- /dev/null +++ b/allure-results/4ff8fa85-4e2b-407b-bc99-c0849a205de0-container.json @@ -0,0 +1 @@ +{"uuid": "362834a4-861b-4b31-ada8-9eb8cb2beb93", "children": ["2d455068-c2f5-4129-b34e-417744b6c66c"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046646073, "stop": 1785046646073}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046655361, "stop": 1785046655361}, {"name": "capture_failure_artifacts::", "start": 1785046655361}], "start": 1785046646073, "stop": 1785046655361} \ No newline at end of file diff --git a/allure-results/5003c3ef-2d9a-4755-a6eb-c780dc7ed115-container.json b/allure-results/5003c3ef-2d9a-4755-a6eb-c780dc7ed115-container.json new file mode 100644 index 0000000..c43bfc7 --- /dev/null +++ b/allure-results/5003c3ef-2d9a-4755-a6eb-c780dc7ed115-container.json @@ -0,0 +1 @@ +{"uuid": "aace2a0d-3dd6-47f6-8160-eb7306737906", "children": ["4da8457f-71c2-4558-aa49-4871cb4b1663"], "befores": [{"name": "context", "status": "passed", "start": 1785046680967, "stop": 1785046680976}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046684714, "stop": 1785046684717}, {"name": "context::", "start": 1785046684717}], "start": 1785046680967, "stop": 1785046684717} \ No newline at end of file diff --git a/allure-results/501ea5e8-9dee-4d7b-ae21-0800d6e266dd-container.json b/allure-results/501ea5e8-9dee-4d7b-ae21-0800d6e266dd-container.json new file mode 100644 index 0000000..dfb13cb --- /dev/null +++ b/allure-results/501ea5e8-9dee-4d7b-ae21-0800d6e266dd-container.json @@ -0,0 +1 @@ +{"uuid": "b43c397a-6898-4d4b-8400-62451acdf1e8", "children": ["063320be-e436-4d48-a5ef-51c8bd21ff40"], "befores": [{"name": "context", "status": "passed", "start": 1785046531422, "stop": 1785046531428}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046541347, "stop": 1785046541368}, {"name": "context::", "start": 1785046541368}], "start": 1785046531422, "stop": 1785046541368} \ No newline at end of file diff --git a/allure-results/50e57ff3-a5d7-4fea-a71b-be0d9e05c09a-attachment.txt b/allure-results/50e57ff3-a5d7-4fea-a71b-be0d9e05c09a-attachment.txt new file mode 100644 index 0000000..b9ccad0 --- /dev/null +++ b/allure-results/50e57ff3-a5d7-4fea-a71b-be0d9e05c09a-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bolt T-Shirt +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bolt T-Shirt \ No newline at end of file diff --git a/allure-results/5135b522-ab07-497f-b87d-77b214955ed4-container.json b/allure-results/5135b522-ab07-497f-b87d-77b214955ed4-container.json new file mode 100644 index 0000000..3acfc60 --- /dev/null +++ b/allure-results/5135b522-ab07-497f-b87d-77b214955ed4-container.json @@ -0,0 +1 @@ +{"uuid": "075e4e0f-8938-44ba-b06e-3c3952d2201e", "children": ["2ec259d1-7b8f-4a71-b2c7-6767abb2178a"], "befores": [{"name": "page", "status": "passed", "start": 1785046504597, "stop": 1785046504698}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046510880, "stop": 1785046510888}, {"name": "page::", "start": 1785046510888}], "start": 1785046504597, "stop": 1785046510888} \ No newline at end of file diff --git a/allure-results/5231f656-2378-4e26-9460-08c3ceb6168e-result.json b/allure-results/5231f656-2378-4e26-9460-08c3ceb6168e-result.json new file mode 100644 index 0000000..c80d9c7 --- /dev/null +++ b/allure-results/5231f656-2378-4e26-9460-08c3ceb6168e-result.json @@ -0,0 +1 @@ +{"name": "Verify valid user can login successfully", "status": "passed", "description": "Verify that a valid user can successfully log into the SauceDemo application.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046561335, "stop": 1785046564439}, {"name": "Retrieve credentials for valid_standard_user", "status": "passed", "start": 1785046564439, "stop": 1785046564439}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046564439, "stop": 1785046566680}, {"name": "Verify user is successfully logged in", "status": "passed", "start": 1785046566680, "stop": 1785046566680}], "attachments": [{"name": "log", "source": "d3c0ffd4-93ea-44dc-875e-57f159f287c0-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "4a2c9d5a-ba93-4928-b414-ae9d35d58896-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "user_data", "value": "{'test_id': 'valid_standard_user', 'username': 'standard_user', 'password': 'secret_sauce', 'expected_url': '/inventory.html'}"}], "start": 1785046561335, "stop": 1785046566680, "uuid": "8c2f2a84-f81c-41c5-b5fc-ab5e5a2d31a0", "historyId": "9942a8ac428564c9d75add5dd0f99963", "testCaseId": "5ac5da8f801af0b6d14e8acfcb100ad8", "fullName": "tests.e2e.test_login#test_valid_login", "labels": [{"name": "story", "value": "Valid User Login"}, {"name": "feature", "value": "Authentication"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "severity", "value": "critical"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_login"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_login"}], "titlePath": ["tests", "e2e", "test_login.py"]} \ No newline at end of file diff --git a/allure-results/53fba904-845e-449f-bff8-f4d22ca1686b-container.json b/allure-results/53fba904-845e-449f-bff8-f4d22ca1686b-container.json new file mode 100644 index 0000000..7299757 --- /dev/null +++ b/allure-results/53fba904-845e-449f-bff8-f4d22ca1686b-container.json @@ -0,0 +1 @@ +{"uuid": "a4487471-902e-4aa4-9514-58e2a6a62d2a", "children": ["6864d31d-f43b-4000-ab82-b03f6bcba619"], "befores": [{"name": "context", "status": "passed", "start": 1785046570797, "stop": 1785046570810}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046570892, "stop": 1785046570905}, {"name": "context::", "start": 1785046570905}], "start": 1785046570797, "stop": 1785046570905} \ No newline at end of file diff --git a/allure-results/55cba60b-75f4-4a5d-98a1-98380fe3b643-container.json b/allure-results/55cba60b-75f4-4a5d-98a1-98380fe3b643-container.json new file mode 100644 index 0000000..a866f9d --- /dev/null +++ b/allure-results/55cba60b-75f4-4a5d-98a1-98380fe3b643-container.json @@ -0,0 +1 @@ +{"uuid": "382b78a8-eabf-42c4-966d-80307b16b838", "befores": [{"name": "customer_data", "status": "passed", "start": 1785046541455, "stop": 1785046541455}], "afters": [{"name": "customer_data::", "start": 1785046550885}], "start": 1785046541455, "stop": 1785046550885} \ No newline at end of file diff --git a/allure-results/565a27bb-d990-4fa6-95cf-d60bc74d9e24-attachment.txt b/allure-results/565a27bb-d990-4fa6-95cf-d60bc74d9e24-attachment.txt new file mode 100644 index 0000000..37a0336 --- /dev/null +++ b/allure-results/565a27bb-d990-4fa6-95cf-d60bc74d9e24-attachment.txt @@ -0,0 +1,2 @@ +2026-07-26 11:47:53,760 | INFO | pages.login_page | Attempting login with username: performance_glitch_user +2026-07-26 11:48:00,947 | INFO | pages.login_page | Login action completed for username performance_glitch_user diff --git a/allure-results/5722c09d-136d-4531-b589-c04adfb5aef8-container.json b/allure-results/5722c09d-136d-4531-b589-c04adfb5aef8-container.json new file mode 100644 index 0000000..e9c0ee9 --- /dev/null +++ b/allure-results/5722c09d-136d-4531-b589-c04adfb5aef8-container.json @@ -0,0 +1 @@ +{"uuid": "2112513f-6c5b-48c0-9676-0556c930f719", "children": ["ee67d554-adf0-4e0c-ad55-7a8592448e2c"], "befores": [{"name": "context", "status": "passed", "start": 1785046672246, "stop": 1785046672251}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046680959, "stop": 1785046680964}, {"name": "context::", "start": 1785046680964}], "start": 1785046672246, "stop": 1785046680964} \ No newline at end of file diff --git a/allure-results/57acbcd9-0ba5-4abc-9bd4-5c7667ef5ec2-container.json b/allure-results/57acbcd9-0ba5-4abc-9bd4-5c7667ef5ec2-container.json new file mode 100644 index 0000000..15fef8c --- /dev/null +++ b/allure-results/57acbcd9-0ba5-4abc-9bd4-5c7667ef5ec2-container.json @@ -0,0 +1 @@ +{"uuid": "253184e3-685e-4f16-b24a-ee386b3fbc66", "children": ["145a497d-6f48-420a-9fd1-2f56c44bc698"], "befores": [{"name": "page", "status": "passed", "start": 1785046631409, "stop": 1785046631440}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046636701, "stop": 1785046636705}, {"name": "page::", "start": 1785046636705}], "start": 1785046631409, "stop": 1785046636705} \ No newline at end of file diff --git a/allure-results/57b969b9-292d-4190-8024-fb95f072d51e-result.json b/allure-results/57b969b9-292d-4190-8024-fb95f072d51e-result.json new file mode 100644 index 0000000..008d10b --- /dev/null +++ b/allure-results/57b969b9-292d-4190-8024-fb95f072d51e-result.json @@ -0,0 +1 @@ +{"name": "Verify invalid user login is rejected", "status": "passed", "description": "Verify that invalid or locked-out users cannot log into the SauceDemo application.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046681008, "stop": 1785046682495}, {"name": "Login with user: locked_out_user", "status": "passed", "start": 1785046682496, "stop": 1785046684701}, {"name": "Verify login error message", "status": "passed", "start": 1785046684701, "stop": 1785046684709}], "attachments": [{"name": "log", "source": "7947040e-5eba-4fd0-8cd0-bc7fe60514f1-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "d15a310b-f485-4eb3-b841-3a0a9ba9316d-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "user_data", "value": "{'test_id': 'locked_out_user', 'username': 'locked_out_user', 'password': 'secret_sauce', 'expected_error': 'Epic sadface: Sorry, this user has been locked out.'}"}], "start": 1785046681008, "stop": 1785046684709, "uuid": "4da8457f-71c2-4558-aa49-4871cb4b1663", "historyId": "3fb68b0d5b93adc68beec4fe1ee04900", "testCaseId": "e8370c619ee25448f689d6057ce1e179", "fullName": "tests.e2e.test_login#test_invalid_login", "labels": [{"name": "epic", "value": "SauceDemo Application"}, {"name": "feature", "value": "Authentication"}, {"name": "severity", "value": "critical"}, {"name": "story", "value": "Invalid User Login"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_login"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25039-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_login"}], "titlePath": ["tests", "e2e", "test_login.py"]} \ No newline at end of file diff --git a/allure-results/58286d4e-d1fa-4707-9a10-0a6f0fbbfeae-container.json b/allure-results/58286d4e-d1fa-4707-9a10-0a6f0fbbfeae-container.json new file mode 100644 index 0000000..f18c9c9 --- /dev/null +++ b/allure-results/58286d4e-d1fa-4707-9a10-0a6f0fbbfeae-container.json @@ -0,0 +1 @@ +{"uuid": "5dc2a60e-cc80-452c-94dc-fa30de5e57ea", "children": ["33d312a9-c635-4111-8c95-c10a76c098bc"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046550994, "stop": 1785046550994}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046561229, "stop": 1785046561229}, {"name": "capture_failure_artifacts::", "start": 1785046561229}], "start": 1785046550994, "stop": 1785046561229} \ No newline at end of file diff --git a/allure-results/59ff99f5-2c96-4574-8486-ef0aa3e10d80-result.json b/allure-results/59ff99f5-2c96-4574-8486-ef0aa3e10d80-result.json new file mode 100644 index 0000000..225dbd9 --- /dev/null +++ b/allure-results/59ff99f5-2c96-4574-8486-ef0aa3e10d80-result.json @@ -0,0 +1 @@ +{"name": "test_empty_configuration_key_raises_error", "status": "passed", "start": 1785046678356, "stop": 1785046678356, "uuid": "f412bdd1-455f-4d18-b998-508aa34153e2", "historyId": "efe7d96fc91d70c7d073cb3cb5c0ad99", "testCaseId": "efe7d96fc91d70c7d073cb3cb5c0ad99", "fullName": "tests.unit.test_config_manager#test_empty_configuration_key_raises_error", "labels": [{"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/5a4f4e60-7f25-4424-85e3-260da2fd7526-container.json b/allure-results/5a4f4e60-7f25-4424-85e3-260da2fd7526-container.json new file mode 100644 index 0000000..1d98607 --- /dev/null +++ b/allure-results/5a4f4e60-7f25-4424-85e3-260da2fd7526-container.json @@ -0,0 +1 @@ +{"uuid": "ab390581-6109-4cb4-8760-0546e313258f", "children": ["f412bdd1-455f-4d18-b998-508aa34153e2"], "befores": [{"name": "page", "status": "passed", "start": 1785046678331, "stop": 1785046678355}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046678356, "stop": 1785046678358}, {"name": "page::", "start": 1785046678358}], "start": 1785046678331, "stop": 1785046678358} \ No newline at end of file diff --git a/allure-results/5a94ddfb-8409-415f-a8af-1fe311d5331e-attachment.txt b/allure-results/5a94ddfb-8409-415f-a8af-1fe311d5331e-attachment.txt new file mode 100644 index 0000000..2f962d3 --- /dev/null +++ b/allure-results/5a94ddfb-8409-415f-a8af-1fe311d5331e-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:47:20,910 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:23,134 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:47:23,138 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:47:23,138 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Backpack +2026-07-26 11:47:23,859 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Backpack diff --git a/allure-results/5b9c08de-0f3d-4da3-9c99-c8827bc85847-container.json b/allure-results/5b9c08de-0f3d-4da3-9c99-c8827bc85847-container.json new file mode 100644 index 0000000..44db909 --- /dev/null +++ b/allure-results/5b9c08de-0f3d-4da3-9c99-c8827bc85847-container.json @@ -0,0 +1 @@ +{"uuid": "6bcbfc37-1d68-40af-97ac-577b2eb7ea11", "children": ["ad62a26a-de9f-4a17-966b-deaeae749865"], "befores": [{"name": "page", "status": "passed", "start": 1785046499700, "stop": 1785046499879}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046508307, "stop": 1785046508314}, {"name": "page::", "start": 1785046508314}], "start": 1785046499699, "stop": 1785046508314} \ No newline at end of file diff --git a/allure-results/5c844e35-99f7-4403-9178-8489670723f9-result.json b/allure-results/5c844e35-99f7-4403-9178-8489670723f9-result.json new file mode 100644 index 0000000..719956d --- /dev/null +++ b/allure-results/5c844e35-99f7-4403-9178-8489670723f9-result.json @@ -0,0 +1 @@ +{"name": "test_report_configuration", "status": "passed", "start": 1785046678321, "stop": 1785046678321, "uuid": "fa8ddc56-d8d7-455f-af79-65d39d887c72", "historyId": "41e63037d2613349090a216040cde46e", "testCaseId": "41e63037d2613349090a216040cde46e", "fullName": "tests.unit.test_config_manager#test_report_configuration", "labels": [{"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/5d2baa53-84c9-48c8-8fed-cc7fc69ec9cf-attachment.txt b/allure-results/5d2baa53-84c9-48c8-8fed-cc7fc69ec9cf-attachment.txt new file mode 100644 index 0000000..6665b13 --- /dev/null +++ b/allure-results/5d2baa53-84c9-48c8-8fed-cc7fc69ec9cf-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:45:53,121 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:45:55,316 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:45:55,322 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:45:55,322 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bike Light +2026-07-26 11:45:56,035 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bike Light diff --git a/allure-results/5d9d684b-6707-4360-90fb-a36e4cf4cdc5-attachment.txt b/allure-results/5d9d684b-6707-4360-90fb-a36e4cf4cdc5-attachment.txt new file mode 100644 index 0000000..da64dd3 --- /dev/null +++ b/allure-results/5d9d684b-6707-4360-90fb-a36e4cf4cdc5-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:47:31,675 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:33,881 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:47:33,889 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:47:33,889 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bolt T-Shirt +2026-07-26 11:47:34,612 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bolt T-Shirt diff --git a/allure-results/5e5858d6-deab-401d-b627-cb018ee35235-result.json b/allure-results/5e5858d6-deab-401d-b627-cb018ee35235-result.json new file mode 100644 index 0000000..2fab7ac --- /dev/null +++ b/allure-results/5e5858d6-deab-401d-b627-cb018ee35235-result.json @@ -0,0 +1 @@ +{"name": "Verify selected product is displayed in cart - Sauce Labs Backpack", "status": "passed", "description": "Verify that each selected product appears correctly in the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046504699, "stop": 1785046507107}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046507107, "stop": 1785046507107}, {"name": "Login with valid credentials", "status": "passed", "start": 1785046507107, "stop": 1785046509341}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046509341, "stop": 1785046509355}, {"name": "Retrieve product name: Sauce Labs Backpack", "status": "passed", "start": 1785046509355, "stop": 1785046509355}, {"name": "Add Sauce Labs Backpack to cart", "status": "passed", "start": 1785046509355, "stop": 1785046510077}, {"name": "Open shopping cart", "status": "passed", "start": 1785046510077, "stop": 1785046510848}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046510848, "stop": 1785046510848}, {"name": "Verify 'Sauce Labs Backpack' is present in cart", "status": "passed", "start": 1785046510848, "stop": 1785046510860}, {"name": "Verify product name is displayed in cart", "status": "passed", "start": 1785046510860, "stop": 1785046510878}], "attachments": [{"name": "log", "source": "a4d3fc48-6867-4e54-9981-3570fc121b96-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "7bb2b45a-2252-4521-ab22-3d8a21fd9e91-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Backpack'}"}], "start": 1785046504699, "stop": 1785046510878, "uuid": "2ec259d1-7b8f-4a71-b2c7-6767abb2178a", "historyId": "c5e1a02616e23b53072b0aeb24c54eeb", "testCaseId": "1023375bdd60dd57ece9a953ebf251e0", "fullName": "tests.e2e.test_cart#test_product_is_displayed_in_cart", "labels": [{"name": "feature", "value": "Shopping Cart"}, {"name": "story", "value": "Verify Product in Cart"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "severity", "value": "critical"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_cart"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_cart"}], "titlePath": ["tests", "e2e", "test_cart.py"]} \ No newline at end of file diff --git a/allure-results/5e796b61-03cf-4e49-b0a0-0ee2e517c2a3-result.json b/allure-results/5e796b61-03cf-4e49-b0a0-0ee2e517c2a3-result.json new file mode 100644 index 0000000..0176628 --- /dev/null +++ b/allure-results/5e796b61-03cf-4e49-b0a0-0ee2e517c2a3-result.json @@ -0,0 +1 @@ +{"name": "Verify selected product is displayed in cart - Sauce Labs Bolt T-Shirt", "status": "passed", "description": "Verify that each selected product appears correctly in the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046499881, "stop": 1785046504502}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046504502, "stop": 1785046504502}, {"name": "Login with valid credentials", "status": "passed", "start": 1785046504502, "stop": 1785046506751}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046506751, "stop": 1785046506766}, {"name": "Retrieve product name: Sauce Labs Bolt T-Shirt", "status": "passed", "start": 1785046506766, "stop": 1785046506766}, {"name": "Add Sauce Labs Bolt T-Shirt to cart", "status": "passed", "start": 1785046506766, "stop": 1785046507494}, {"name": "Open shopping cart", "status": "passed", "start": 1785046507494, "stop": 1785046508274}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046508274, "stop": 1785046508274}, {"name": "Verify 'Sauce Labs Bolt T-Shirt' is present in cart", "status": "passed", "start": 1785046508274, "stop": 1785046508287}, {"name": "Verify product name is displayed in cart", "status": "passed", "start": 1785046508287, "stop": 1785046508305}], "attachments": [{"name": "log", "source": "2a613758-cf1c-47f3-ab66-a69db9bf749c-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "6c4de56c-c5b4-4f37-9214-b3259866cd0d-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "88a8bea7-c690-4b0d-82dc-2168900551f2-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bolt T-Shirt'}"}], "start": 1785046499881, "stop": 1785046508305, "uuid": "ad62a26a-de9f-4a17-966b-deaeae749865", "historyId": "ab8e54f3c42f8a8de2cd6d0371850c1f", "testCaseId": "1023375bdd60dd57ece9a953ebf251e0", "fullName": "tests.e2e.test_cart#test_product_is_displayed_in_cart", "labels": [{"name": "story", "value": "Verify Product in Cart"}, {"name": "severity", "value": "critical"}, {"name": "feature", "value": "Shopping Cart"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_cart"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24862-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_cart"}], "titlePath": ["tests", "e2e", "test_cart.py"]} \ No newline at end of file diff --git a/allure-results/5e8590bd-530c-4643-ae0e-42c392dc0f1e-container.json b/allure-results/5e8590bd-530c-4643-ae0e-42c392dc0f1e-container.json new file mode 100644 index 0000000..120d805 --- /dev/null +++ b/allure-results/5e8590bd-530c-4643-ae0e-42c392dc0f1e-container.json @@ -0,0 +1 @@ +{"uuid": "8a847e4f-6efb-45f7-8cd6-629c91bb16a7", "children": ["ad62a26a-de9f-4a17-966b-deaeae749865", "db8c0ef2-f2c6-495f-93ef-c86d16fcd74a", "ba10b5d3-8199-4902-997d-83f59149a95d", "dda59aea-654c-4c87-b58c-1aa7f06765a4", "119e185c-2a13-4876-b36e-f79c684e70e8", "55b69fcb-b0dd-4d1c-90cc-617c12dfd925", "5a7d2265-bb99-408b-9ffd-9a42d5ddc311", "09710e12-8b19-4e64-b3ea-2fdfc88b8550", "92840d7a-2565-4d1d-b5ec-9ec7ac9a9339", "b4f4a2f5-bf6e-44d2-b8b0-0297c5a84f76"], "befores": [{"name": "browser_manager", "status": "passed", "start": 1785046499399, "stop": 1785046499399}], "afters": [{"name": "browser_manager::", "start": 1785046579021}], "start": 1785046499399, "stop": 1785046579021} \ No newline at end of file diff --git a/allure-results/5ec9724b-3e82-4365-bee2-a931092b3145-container.json b/allure-results/5ec9724b-3e82-4365-bee2-a931092b3145-container.json new file mode 100644 index 0000000..ce11adc --- /dev/null +++ b/allure-results/5ec9724b-3e82-4365-bee2-a931092b3145-container.json @@ -0,0 +1 @@ +{"uuid": "48e67858-5179-4fc4-827a-3f8470f16e4a", "befores": [{"name": "product_data", "status": "passed", "start": 1785046655409, "stop": 1785046655409}], "afters": [{"name": "product_data::", "start": 1785046664654}], "start": 1785046655409, "stop": 1785046664654} \ No newline at end of file diff --git a/allure-results/5f1519f1-9e02-473d-8aef-d85d8a7bd605-container.json b/allure-results/5f1519f1-9e02-473d-8aef-d85d8a7bd605-container.json new file mode 100644 index 0000000..84434c4 --- /dev/null +++ b/allure-results/5f1519f1-9e02-473d-8aef-d85d8a7bd605-container.json @@ -0,0 +1 @@ +{"uuid": "4c1659d5-f2ce-4819-b8a0-30739f2ff258", "children": ["beb43a4b-8fbb-47c9-9bc3-71bbd039b1e5"], "befores": [{"name": "context", "status": "passed", "start": 1785046499682, "stop": 1785046499699}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046504561, "stop": 1785046504590}, {"name": "context::", "start": 1785046504590}], "start": 1785046499682, "stop": 1785046504590} \ No newline at end of file diff --git a/allure-results/5f3d58b1-cf45-4ab1-9f63-3e59755e9f20-container.json b/allure-results/5f3d58b1-cf45-4ab1-9f63-3e59755e9f20-container.json new file mode 100644 index 0000000..377badf --- /dev/null +++ b/allure-results/5f3d58b1-cf45-4ab1-9f63-3e59755e9f20-container.json @@ -0,0 +1 @@ +{"uuid": "d3181f96-7155-4d0a-b52b-d6c1fd34f291", "children": ["fe8a7034-c964-4f6f-bbcc-d629e9fd399b", "c72a1e42-0398-455d-a621-ff093f5617eb", "1203bebf-db2b-4e50-8e72-5e11e0144027", "5df0b7cc-b4d7-444b-8430-12128401448a", "6f631202-9ba1-4462-a836-a396d11796ce", "bf9c4c05-9138-4d59-ab12-782895346ac8", "3d40d7cb-6f90-48eb-8b7e-167dbd560241", "ee67d554-adf0-4e0c-ad55-7a8592448e2c", "4da8457f-71c2-4558-aa49-4871cb4b1663"], "befores": [{"name": "browser", "status": "passed", "start": 1785046621272, "stop": 1785046623965}], "afters": [{"name": "browser::1", "status": "passed", "start": 1785046684718, "stop": 1785046684738}, {"name": "browser::", "start": 1785046684738}], "start": 1785046621272, "stop": 1785046684738} \ No newline at end of file diff --git a/allure-results/60800ac8-b3bf-4907-8621-4674786f5f54-container.json b/allure-results/60800ac8-b3bf-4907-8621-4674786f5f54-container.json new file mode 100644 index 0000000..d624c4f --- /dev/null +++ b/allure-results/60800ac8-b3bf-4907-8621-4674786f5f54-container.json @@ -0,0 +1 @@ +{"uuid": "8db13d21-3a38-482f-91b4-86a5eb70d83f", "children": ["1074506d-17b2-43e1-bf42-23dc3240eb14"], "befores": [{"name": "context", "status": "passed", "start": 1785046510918, "stop": 1785046510925}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046531408, "stop": 1785046531421}, {"name": "context::", "start": 1785046531421}], "start": 1785046510918, "stop": 1785046531421} \ No newline at end of file diff --git a/allure-results/60df417e-896d-4d36-937b-232fb535f40c-attachment.txt b/allure-results/60df417e-896d-4d36-937b-232fb535f40c-attachment.txt new file mode 100644 index 0000000..41a358f --- /dev/null +++ b/allure-results/60df417e-896d-4d36-937b-232fb535f40c-attachment.txt @@ -0,0 +1,2 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: problem_user +INFO pages.login_page:login_page.py:67 Login action completed for username problem_user \ No newline at end of file diff --git a/allure-results/61b4cd7b-74ce-4bfc-9db9-7e829e816758-container.json b/allure-results/61b4cd7b-74ce-4bfc-9db9-7e829e816758-container.json new file mode 100644 index 0000000..153943f --- /dev/null +++ b/allure-results/61b4cd7b-74ce-4bfc-9db9-7e829e816758-container.json @@ -0,0 +1 @@ +{"uuid": "472404d6-f070-4eb4-b2de-676157d730d5", "befores": [{"name": "user_data", "status": "passed", "start": 1785046668743, "stop": 1785046668743}], "afters": [{"name": "user_data::", "start": 1785046672233}], "start": 1785046668743, "stop": 1785046672233} \ No newline at end of file diff --git a/allure-results/627a3d7b-1135-4878-a632-1559597ee371-container.json b/allure-results/627a3d7b-1135-4878-a632-1559597ee371-container.json new file mode 100644 index 0000000..9e87fb4 --- /dev/null +++ b/allure-results/627a3d7b-1135-4878-a632-1559597ee371-container.json @@ -0,0 +1 @@ +{"uuid": "ac8cf26e-e241-468d-a930-0e02473f6ccb", "children": ["c72a1e42-0398-455d-a621-ff093f5617eb"], "befores": [{"name": "context", "status": "passed", "start": 1785046629216, "stop": 1785046629223}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046638821, "stop": 1785046638825}, {"name": "context::", "start": 1785046638825}], "start": 1785046629216, "stop": 1785046638825} \ No newline at end of file diff --git a/allure-results/6280dc8c-00d2-4c57-813d-de2194ae0373-container.json b/allure-results/6280dc8c-00d2-4c57-813d-de2194ae0373-container.json new file mode 100644 index 0000000..13c4f07 --- /dev/null +++ b/allure-results/6280dc8c-00d2-4c57-813d-de2194ae0373-container.json @@ -0,0 +1 @@ +{"uuid": "806b3637-f4cd-4a38-9ddb-c69f637682c2", "children": ["fa8ddc56-d8d7-455f-af79-65d39d887c72"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046678321, "stop": 1785046678321}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046678321, "stop": 1785046678321}, {"name": "capture_failure_artifacts::", "start": 1785046678321}], "start": 1785046678321, "stop": 1785046678321} \ No newline at end of file diff --git a/allure-results/628dcc7f-891d-44fb-b061-c4eaadfe0975-container.json b/allure-results/628dcc7f-891d-44fb-b061-c4eaadfe0975-container.json new file mode 100644 index 0000000..945272f --- /dev/null +++ b/allure-results/628dcc7f-891d-44fb-b061-c4eaadfe0975-container.json @@ -0,0 +1 @@ +{"uuid": "50f07baa-ffe1-4b51-8435-8436eb71791c", "children": ["61f568d3-10a2-421a-bf23-0c7ee1b84fc1"], "befores": [{"name": "context", "status": "passed", "start": 1785046678259, "stop": 1785046678263}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046678291, "stop": 1785046678292}, {"name": "context::", "start": 1785046678293}], "start": 1785046678259, "stop": 1785046678293} \ No newline at end of file diff --git a/allure-results/63096556-06c2-470a-a5a7-6e6559b861ce-container.json b/allure-results/63096556-06c2-470a-a5a7-6e6559b861ce-container.json new file mode 100644 index 0000000..4e3ad0a --- /dev/null +++ b/allure-results/63096556-06c2-470a-a5a7-6e6559b861ce-container.json @@ -0,0 +1 @@ +{"uuid": "252ee7bf-55b9-449e-8f1a-3554fda9559c", "children": ["492635eb-194d-4f06-90cd-ea645ee64994"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046678216, "stop": 1785046678216}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046678217, "stop": 1785046678217}, {"name": "capture_failure_artifacts::", "start": 1785046678217}], "start": 1785046678216, "stop": 1785046678217} \ No newline at end of file diff --git a/allure-results/65eb221a-b190-4892-9fae-2a4de71bbfcc-attachment.txt b/allure-results/65eb221a-b190-4892-9fae-2a4de71bbfcc-attachment.txt new file mode 100644 index 0000000..b9ccad0 --- /dev/null +++ b/allure-results/65eb221a-b190-4892-9fae-2a4de71bbfcc-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bolt T-Shirt +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bolt T-Shirt \ No newline at end of file diff --git a/allure-results/66643d59-83d6-47c6-9e40-265be9f6ec98-container.json b/allure-results/66643d59-83d6-47c6-9e40-265be9f6ec98-container.json new file mode 100644 index 0000000..07aeed4 --- /dev/null +++ b/allure-results/66643d59-83d6-47c6-9e40-265be9f6ec98-container.json @@ -0,0 +1 @@ +{"uuid": "38d8e134-3942-4974-9cc4-3b26a0746e55", "befores": [{"name": "product_data", "status": "passed", "start": 1785046541455, "stop": 1785046541455}], "afters": [{"name": "product_data::", "start": 1785046550885}], "start": 1785046541455, "stop": 1785046550885} \ No newline at end of file diff --git a/allure-results/67ea3b90-8ffa-4445-a12c-914ae578785f-container.json b/allure-results/67ea3b90-8ffa-4445-a12c-914ae578785f-container.json new file mode 100644 index 0000000..27122d6 --- /dev/null +++ b/allure-results/67ea3b90-8ffa-4445-a12c-914ae578785f-container.json @@ -0,0 +1 @@ +{"uuid": "994968a4-6886-4d9c-a850-9b368a1383ad", "children": ["fe8a7034-c964-4f6f-bbcc-d629e9fd399b", "c72a1e42-0398-455d-a621-ff093f5617eb", "1203bebf-db2b-4e50-8e72-5e11e0144027", "5df0b7cc-b4d7-444b-8430-12128401448a", "6f631202-9ba1-4462-a836-a396d11796ce", "bf9c4c05-9138-4d59-ab12-782895346ac8", "3d40d7cb-6f90-48eb-8b7e-167dbd560241", "ee67d554-adf0-4e0c-ad55-7a8592448e2c", "4da8457f-71c2-4558-aa49-4871cb4b1663"], "befores": [{"name": "base_url", "status": "passed", "start": 1785046621136, "stop": 1785046621136}], "afters": [{"name": "base_url::", "start": 1785046684743}], "start": 1785046621136, "stop": 1785046684743} \ No newline at end of file diff --git a/allure-results/68322245-fb2c-45f7-ab5a-45acaeb16711-attachment.txt b/allure-results/68322245-fb2c-45f7-ab5a-45acaeb16711-attachment.txt new file mode 100644 index 0000000..c5bed7f --- /dev/null +++ b/allure-results/68322245-fb2c-45f7-ab5a-45acaeb16711-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:45:53,036 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:45:55,272 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:45:55,283 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:45:55,283 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bolt T-Shirt +2026-07-26 11:45:56,004 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bolt T-Shirt diff --git a/allure-results/685ea505-70ea-4f9a-8e8e-8209b09ddc16-result.json b/allure-results/685ea505-70ea-4f9a-8e8e-8209b09ddc16-result.json new file mode 100644 index 0000000..d5e503d --- /dev/null +++ b/allure-results/685ea505-70ea-4f9a-8e8e-8209b09ddc16-result.json @@ -0,0 +1 @@ +{"name": "test_browser_launch", "status": "passed", "description": "\nVerify that the configured browser can launch and navigate to the application.\n", "attachments": [{"name": "stdout", "source": "33386259-3b89-4d92-a553-31ddbe9dc3f0-attachment.txt", "type": "text/plain"}], "start": 1785046624022, "stop": 1785046625503, "uuid": "a65284eb-f9e8-486d-a633-1e8421bfe966", "historyId": "59b5d8399386c636ae239d08cbfa52ef", "testCaseId": "59b5d8399386c636ae239d08cbfa52ef", "fullName": "tests.e2e.test_browser_launch#test_browser_launch", "labels": [{"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_browser_launch"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_browser_launch"}], "titlePath": ["tests", "e2e", "test_browser_launch.py"]} \ No newline at end of file diff --git a/allure-results/6ac82eac-837f-4ade-8188-6a2600d83df5-attachment.txt b/allure-results/6ac82eac-837f-4ade-8188-6a2600d83df5-attachment.txt new file mode 100644 index 0000000..731fafb --- /dev/null +++ b/allure-results/6ac82eac-837f-4ade-8188-6a2600d83df5-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:47:36,645 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:38,845 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:47:38,855 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:47:38,855 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bolt T-Shirt +2026-07-26 11:47:39,579 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bolt T-Shirt diff --git a/allure-results/6b9cbfb8-f73d-44f2-8e30-407294352aa7-container.json b/allure-results/6b9cbfb8-f73d-44f2-8e30-407294352aa7-container.json new file mode 100644 index 0000000..d694b59 --- /dev/null +++ b/allure-results/6b9cbfb8-f73d-44f2-8e30-407294352aa7-container.json @@ -0,0 +1 @@ +{"uuid": "d13e09ca-72c7-4ddf-a4cc-de7e48e8edf4", "children": ["2d455068-c2f5-4129-b34e-417744b6c66c"], "befores": [{"name": "context", "status": "passed", "start": 1785046646039, "stop": 1785046646044}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046655367, "stop": 1785046655373}, {"name": "context::", "start": 1785046655373}], "start": 1785046646039, "stop": 1785046655373} \ No newline at end of file diff --git a/allure-results/6bf8cd75-b983-4bb8-bdb7-c96f7fd23c60-container.json b/allure-results/6bf8cd75-b983-4bb8-bdb7-c96f7fd23c60-container.json new file mode 100644 index 0000000..8a1ef2b --- /dev/null +++ b/allure-results/6bf8cd75-b983-4bb8-bdb7-c96f7fd23c60-container.json @@ -0,0 +1 @@ +{"uuid": "b98455f2-7fb5-4eb7-ac8e-60e82b067af8", "children": ["2ec259d1-7b8f-4a71-b2c7-6767abb2178a"], "befores": [{"name": "context", "status": "passed", "start": 1785046504591, "stop": 1785046504597}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046510889, "stop": 1785046510915}, {"name": "context::", "start": 1785046510916}], "start": 1785046504591, "stop": 1785046510916} \ No newline at end of file diff --git a/allure-results/6c4de56c-c5b4-4f37-9214-b3259866cd0d-attachment.txt b/allure-results/6c4de56c-c5b4-4f37-9214-b3259866cd0d-attachment.txt new file mode 100644 index 0000000..a0200b4 --- /dev/null +++ b/allure-results/6c4de56c-c5b4-4f37-9214-b3259866cd0d-attachment.txt @@ -0,0 +1 @@ +Active environment: qa diff --git a/allure-results/6d68bddb-23b3-41c4-89a0-b22208130be2-container.json b/allure-results/6d68bddb-23b3-41c4-89a0-b22208130be2-container.json new file mode 100644 index 0000000..c72f8db --- /dev/null +++ b/allure-results/6d68bddb-23b3-41c4-89a0-b22208130be2-container.json @@ -0,0 +1 @@ +{"uuid": "293def92-753e-4939-92c0-0585509675a5", "children": ["ee67d554-adf0-4e0c-ad55-7a8592448e2c"], "befores": [{"name": "page", "status": "passed", "start": 1785046672251, "stop": 1785046672283}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046680951, "stop": 1785046680958}, {"name": "page::", "start": 1785046680958}], "start": 1785046672251, "stop": 1785046680959} \ No newline at end of file diff --git a/allure-results/6df12f68-d19b-4b51-b189-a1976d05bd50-container.json b/allure-results/6df12f68-d19b-4b51-b189-a1976d05bd50-container.json new file mode 100644 index 0000000..4602211 --- /dev/null +++ b/allure-results/6df12f68-d19b-4b51-b189-a1976d05bd50-container.json @@ -0,0 +1 @@ +{"uuid": "f26db238-1a5a-4e2d-8bc6-5f761694bf82", "children": ["a65284eb-f9e8-486d-a633-1e8421bfe966", "c9c0a217-81ab-4412-91e7-a15d43ad89da", "145a497d-6f48-420a-9fd1-2f56c44bc698", "4e88716d-52cc-4fea-9574-95e7faf1e695", "2d455068-c2f5-4129-b34e-417744b6c66c", "17c614d7-d40e-4551-b15f-57b2a9a06a9a", "4e1c0964-f4ed-4046-a82a-b347f5d364f7", "8fc94b75-b471-493d-b38c-f951a707e526", "a7dc1a23-738b-4036-8f18-0e6623efebef", "492635eb-194d-4f06-90cd-ea645ee64994", "862d641e-2e12-4162-9022-f13ffac6e216", "61f568d3-10a2-421a-bf23-0c7ee1b84fc1", "fa8ddc56-d8d7-455f-af79-65d39d887c72", "f412bdd1-455f-4d18-b998-508aa34153e2", "af4d3119-cd92-4120-8904-f6e1caa92523"], "befores": [{"name": "playwright", "status": "passed", "start": 1785046621136, "stop": 1785046621271}], "afters": [{"name": "playwright::1", "status": "passed", "start": 1785046678415, "stop": 1785046678420}, {"name": "playwright::", "start": 1785046678420}], "start": 1785046621136, "stop": 1785046678420} \ No newline at end of file diff --git a/allure-results/6e00ab39-4911-49aa-87d9-a28c88bc9c84-container.json b/allure-results/6e00ab39-4911-49aa-87d9-a28c88bc9c84-container.json new file mode 100644 index 0000000..587360b --- /dev/null +++ b/allure-results/6e00ab39-4911-49aa-87d9-a28c88bc9c84-container.json @@ -0,0 +1 @@ +{"uuid": "0003719c-8baa-49ef-8e84-ce56ab998144", "befores": [{"name": "product_data", "status": "passed", "start": 1785046638863, "stop": 1785046638863}], "afters": [{"name": "product_data::", "start": 1785046648899}], "start": 1785046638863, "stop": 1785046648899} \ No newline at end of file diff --git a/allure-results/6e56a7aa-8809-4d18-afc1-7cf78a235010-container.json b/allure-results/6e56a7aa-8809-4d18-afc1-7cf78a235010-container.json new file mode 100644 index 0000000..000d76e --- /dev/null +++ b/allure-results/6e56a7aa-8809-4d18-afc1-7cf78a235010-container.json @@ -0,0 +1 @@ +{"uuid": "b3f623de-d180-48d8-aee4-9fa6f16c4499", "children": ["a65284eb-f9e8-486d-a633-1e8421bfe966"], "befores": [{"name": "context", "status": "passed", "start": 1785046623965, "stop": 1785046623980}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046625512, "stop": 1785046625520}, {"name": "context::", "start": 1785046625520}], "start": 1785046623965, "stop": 1785046625520} \ No newline at end of file diff --git a/allure-results/6eadd376-3401-4247-8293-b8412b5e7e79-container.json b/allure-results/6eadd376-3401-4247-8293-b8412b5e7e79-container.json new file mode 100644 index 0000000..2798780 --- /dev/null +++ b/allure-results/6eadd376-3401-4247-8293-b8412b5e7e79-container.json @@ -0,0 +1 @@ +{"uuid": "afd7c362-51e7-4060-ba28-ecf99198b315", "children": ["c9c0a217-81ab-4412-91e7-a15d43ad89da"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046625564, "stop": 1785046625564}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046631392, "stop": 1785046631392}, {"name": "capture_failure_artifacts::", "start": 1785046631392}], "start": 1785046625564, "stop": 1785046631392} \ No newline at end of file diff --git a/allure-results/6f39b8ce-2d0c-4498-9a23-2b486dee7e62-container.json b/allure-results/6f39b8ce-2d0c-4498-9a23-2b486dee7e62-container.json new file mode 100644 index 0000000..309b22f --- /dev/null +++ b/allure-results/6f39b8ce-2d0c-4498-9a23-2b486dee7e62-container.json @@ -0,0 +1 @@ +{"uuid": "a33cb174-9eab-4ff7-b7e7-8069b7b42784", "children": ["5df0b7cc-b4d7-444b-8430-12128401448a"], "befores": [{"name": "context", "status": "passed", "start": 1785046648911, "stop": 1785046648915}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046659675, "stop": 1785046659681}, {"name": "context::", "start": 1785046659681}], "start": 1785046648911, "stop": 1785046659681} \ No newline at end of file diff --git a/allure-results/7006ae66-bf93-480c-9557-ed6f08d74df0-container.json b/allure-results/7006ae66-bf93-480c-9557-ed6f08d74df0-container.json new file mode 100644 index 0000000..630eba9 --- /dev/null +++ b/allure-results/7006ae66-bf93-480c-9557-ed6f08d74df0-container.json @@ -0,0 +1 @@ +{"uuid": "ba6a4554-8020-456f-a6f3-00b59a9dc988", "children": ["c9c0a217-81ab-4412-91e7-a15d43ad89da"], "befores": [{"name": "page", "status": "passed", "start": 1785046625531, "stop": 1785046625564}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046631392, "stop": 1785046631395}, {"name": "page::", "start": 1785046631395}], "start": 1785046625531, "stop": 1785046631395} \ No newline at end of file diff --git a/allure-results/704db28f-e4a3-4369-9f9f-dbeb8fb18983-container.json b/allure-results/704db28f-e4a3-4369-9f9f-dbeb8fb18983-container.json new file mode 100644 index 0000000..735ce24 --- /dev/null +++ b/allure-results/704db28f-e4a3-4369-9f9f-dbeb8fb18983-container.json @@ -0,0 +1 @@ +{"uuid": "bf5858bd-00eb-4dda-9986-4713d3a97515", "children": ["1203bebf-db2b-4e50-8e72-5e11e0144027"], "befores": [{"name": "context", "status": "passed", "start": 1785046638827, "stop": 1785046638832}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046648906, "stop": 1785046648909}, {"name": "context::", "start": 1785046648909}], "start": 1785046638827, "stop": 1785046648909} \ No newline at end of file diff --git a/allure-results/711ad3ec-c76f-4855-883a-0c29dde8d644-attachment.txt b/allure-results/711ad3ec-c76f-4855-883a-0c29dde8d644-attachment.txt new file mode 100644 index 0000000..b38f619 --- /dev/null +++ b/allure-results/711ad3ec-c76f-4855-883a-0c29dde8d644-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:47:51,353 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:53,560 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:47:53,571 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:47:53,571 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bolt T-Shirt +2026-07-26 11:47:54,292 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bolt T-Shirt diff --git a/allure-results/73406d16-722e-4ce9-9eb2-fba650a0929e-container.json b/allure-results/73406d16-722e-4ce9-9eb2-fba650a0929e-container.json new file mode 100644 index 0000000..b6ed2cd --- /dev/null +++ b/allure-results/73406d16-722e-4ce9-9eb2-fba650a0929e-container.json @@ -0,0 +1 @@ +{"uuid": "9391b137-5f41-4e0f-900d-bccaf4d9e104", "children": ["ad62a26a-de9f-4a17-966b-deaeae749865", "db8c0ef2-f2c6-495f-93ef-c86d16fcd74a", "ba10b5d3-8199-4902-997d-83f59149a95d", "dda59aea-654c-4c87-b58c-1aa7f06765a4", "119e185c-2a13-4876-b36e-f79c684e70e8", "55b69fcb-b0dd-4d1c-90cc-617c12dfd925", "5a7d2265-bb99-408b-9ffd-9a42d5ddc311"], "befores": [{"name": "test_data", "status": "passed", "start": 1785046499682, "stop": 1785046499682}], "afters": [{"name": "test_data::", "start": 1785046578954}], "start": 1785046499682, "stop": 1785046578954} \ No newline at end of file diff --git a/allure-results/743b6986-9531-4539-b62f-5823fec50201-container.json b/allure-results/743b6986-9531-4539-b62f-5823fec50201-container.json new file mode 100644 index 0000000..d8ebe72 --- /dev/null +++ b/allure-results/743b6986-9531-4539-b62f-5823fec50201-container.json @@ -0,0 +1 @@ +{"uuid": "ce058dd9-1da9-49ff-bdf6-7f96d9c6cda7", "children": ["063320be-e436-4d48-a5ef-51c8bd21ff40"], "befores": [{"name": "page", "status": "passed", "start": 1785046531428, "stop": 1785046531517}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046541340, "stop": 1785046541346}, {"name": "page::", "start": 1785046541346}], "start": 1785046531428, "stop": 1785046541346} \ No newline at end of file diff --git a/allure-results/75111882-e9df-4b40-b184-82840bfb499c-container.json b/allure-results/75111882-e9df-4b40-b184-82840bfb499c-container.json new file mode 100644 index 0000000..591485f --- /dev/null +++ b/allure-results/75111882-e9df-4b40-b184-82840bfb499c-container.json @@ -0,0 +1 @@ +{"uuid": "63b7cf2b-8a9b-4484-8092-2435318c8fa3", "children": ["f6e3505e-7dd3-4cfc-8a90-14eac04d4dcf"], "befores": [{"name": "page", "status": "passed", "start": 1785046571000, "stop": 1785046571074}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046571075, "stop": 1785046571079}, {"name": "page::", "start": 1785046571079}], "start": 1785046571000, "stop": 1785046571079} \ No newline at end of file diff --git a/allure-results/76aadc57-6a8d-40ba-b5ef-0c3b030164d9-container.json b/allure-results/76aadc57-6a8d-40ba-b5ef-0c3b030164d9-container.json new file mode 100644 index 0000000..0b26539 --- /dev/null +++ b/allure-results/76aadc57-6a8d-40ba-b5ef-0c3b030164d9-container.json @@ -0,0 +1 @@ +{"uuid": "a9b5e06d-9b36-4036-a03c-84c5275cad81", "children": ["dda59aea-654c-4c87-b58c-1aa7f06765a4"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046535974, "stop": 1785046535974}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046545562, "stop": 1785046545562}, {"name": "capture_failure_artifacts::", "start": 1785046545562}], "start": 1785046535974, "stop": 1785046545562} \ No newline at end of file diff --git a/allure-results/770bc146-f515-40d4-a5a5-d2e567182b79-container.json b/allure-results/770bc146-f515-40d4-a5a5-d2e567182b79-container.json new file mode 100644 index 0000000..96f9bbf --- /dev/null +++ b/allure-results/770bc146-f515-40d4-a5a5-d2e567182b79-container.json @@ -0,0 +1 @@ +{"uuid": "e7f683cc-989e-4976-89ad-caa1a5858987", "children": ["ad62a26a-de9f-4a17-966b-deaeae749865", "db8c0ef2-f2c6-495f-93ef-c86d16fcd74a", "ba10b5d3-8199-4902-997d-83f59149a95d", "dda59aea-654c-4c87-b58c-1aa7f06765a4", "119e185c-2a13-4876-b36e-f79c684e70e8", "55b69fcb-b0dd-4d1c-90cc-617c12dfd925", "5a7d2265-bb99-408b-9ffd-9a42d5ddc311", "09710e12-8b19-4e64-b3ea-2fdfc88b8550", "92840d7a-2565-4d1d-b5ec-9ec7ac9a9339", "b4f4a2f5-bf6e-44d2-b8b0-0297c5a84f76"], "befores": [{"name": "browser", "status": "passed", "start": 1785046499399, "stop": 1785046499682}], "afters": [{"name": "browser::1", "status": "passed", "start": 1785046578955, "stop": 1785046579021}, {"name": "browser::", "start": 1785046579021}], "start": 1785046499399, "stop": 1785046579021} \ No newline at end of file diff --git a/allure-results/786bb286-9389-4b40-a980-9be0e235b3e4-result.json b/allure-results/786bb286-9389-4b40-a980-9be0e235b3e4-result.json new file mode 100644 index 0000000..131c983 --- /dev/null +++ b/allure-results/786bb286-9389-4b40-a980-9be0e235b3e4-result.json @@ -0,0 +1 @@ +{"name": "Verify checkout flow - Sauce Labs Bike Light - customer_01", "status": "passed", "description": "Verify that a user can successfully complete the checkout flow using different products and customer information.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046636745, "stop": 1785046638016}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046638016, "stop": 1785046638016}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046638016, "stop": 1785046640237}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046640237, "stop": 1785046640241}, {"name": "Retrieve product name: Sauce Labs Bike Light", "status": "passed", "start": 1785046640241, "stop": 1785046640241}, {"name": "Add Sauce Labs Bike Light to cart", "status": "passed", "start": 1785046640241, "stop": 1785046640960}, {"name": "Open shopping cart", "status": "passed", "start": 1785046640960, "stop": 1785046641680}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046641681, "stop": 1785046641681}, {"name": "Verify Sauce Labs Bike Light is present in cart", "status": "passed", "start": 1785046641681, "stop": 1785046641686}, {"name": "Proceed to checkout", "status": "passed", "start": 1785046641686, "stop": 1785046642402}, {"name": "Verify checkout information page is loaded", "status": "passed", "start": 1785046642402, "stop": 1785046642402}, {"name": "Enter customer information for customer_01", "status": "passed", "start": 1785046642402, "stop": 1785046644541}, {"name": "Continue to checkout overview", "status": "passed", "start": 1785046644541, "stop": 1785046645276}, {"name": "Verify checkout overview page is loaded", "status": "passed", "start": 1785046645277, "stop": 1785046645277}, {"name": "Verify Sauce Labs Bike Light is present in order", "status": "passed", "start": 1785046645277, "stop": 1785046645297}, {"name": "Complete the order", "status": "passed", "start": 1785046645297, "stop": 1785046646020}, {"name": "Verify order confirmation message", "status": "passed", "start": 1785046646020, "stop": 1785046646027}], "attachments": [{"name": "log", "source": "13326e04-3dde-4fc1-88ac-21809108ccfd-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "d862edeb-9b69-4505-a80e-0a96a06573c9-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bike Light'}"}, {"name": "customer_data", "value": "{'test_id': 'customer_01', 'first_name': 'Prateek', 'last_name': 'Dharwal', 'postal_code': '141001'}"}], "start": 1785046636745, "stop": 1785046646028, "uuid": "4e88716d-52cc-4fea-9574-95e7faf1e695", "historyId": "dc326888857f3fd8f69e028897cdaa07", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "severity", "value": "critical"}, {"name": "feature", "value": "Checkout"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "story", "value": "Complete Product Checkout"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/790a3365-7f54-407b-98df-18eb62b2c443-attachment.txt b/allure-results/790a3365-7f54-407b-98df-18eb62b2c443-attachment.txt new file mode 100644 index 0000000..b14fa12 --- /dev/null +++ b/allure-results/790a3365-7f54-407b-98df-18eb62b2c443-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:45:37,342 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:45:39,590 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:45:39,598 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:45:39,598 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bolt T-Shirt +2026-07-26 11:45:40,313 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bolt T-Shirt diff --git a/allure-results/7947040e-5eba-4fd0-8cd0-bc7fe60514f1-attachment.txt b/allure-results/7947040e-5eba-4fd0-8cd0-bc7fe60514f1-attachment.txt new file mode 100644 index 0000000..dff0636 --- /dev/null +++ b/allure-results/7947040e-5eba-4fd0-8cd0-bc7fe60514f1-attachment.txt @@ -0,0 +1,2 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: locked_out_user +INFO pages.login_page:login_page.py:67 Login action completed for username locked_out_user \ No newline at end of file diff --git a/allure-results/79b18519-6e81-4643-a324-8fc936508ed3-container.json b/allure-results/79b18519-6e81-4643-a324-8fc936508ed3-container.json new file mode 100644 index 0000000..9d8a068 --- /dev/null +++ b/allure-results/79b18519-6e81-4643-a324-8fc936508ed3-container.json @@ -0,0 +1 @@ +{"uuid": "b7cc8045-9f48-4f14-9aa5-3ca69d02eb6e", "befores": [{"name": "user_data", "status": "passed", "start": 1785046674350, "stop": 1785046674350}], "afters": [{"name": "user_data::", "start": 1785046678181}], "start": 1785046674350, "stop": 1785046678181} \ No newline at end of file diff --git a/allure-results/7a3b9a95-488b-4086-a49b-db92bf12b700-container.json b/allure-results/7a3b9a95-488b-4086-a49b-db92bf12b700-container.json new file mode 100644 index 0000000..e89436a --- /dev/null +++ b/allure-results/7a3b9a95-488b-4086-a49b-db92bf12b700-container.json @@ -0,0 +1 @@ +{"uuid": "5e534609-95ea-4249-a6e4-85ef092877ae", "children": ["ad62a26a-de9f-4a17-966b-deaeae749865"], "befores": [{"name": "context", "status": "passed", "start": 1785046499683, "stop": 1785046499699}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046508315, "stop": 1785046508332}, {"name": "context::", "start": 1785046508332}], "start": 1785046499683, "stop": 1785046508332} \ No newline at end of file diff --git a/allure-results/7b14c04b-b73f-48d1-9194-c1dde35b43d7-container.json b/allure-results/7b14c04b-b73f-48d1-9194-c1dde35b43d7-container.json new file mode 100644 index 0000000..9c80a22 --- /dev/null +++ b/allure-results/7b14c04b-b73f-48d1-9194-c1dde35b43d7-container.json @@ -0,0 +1 @@ +{"uuid": "61c9d01d-580a-48e4-8f09-3124054b9c79", "children": ["17c614d7-d40e-4551-b15f-57b2a9a06a9a"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046655409, "stop": 1785046655409}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046664654, "stop": 1785046664654}, {"name": "capture_failure_artifacts::", "start": 1785046664654}], "start": 1785046655409, "stop": 1785046664654} \ No newline at end of file diff --git a/allure-results/7b513542-687b-4552-84c5-3c76b2ef872e-attachment.txt b/allure-results/7b513542-687b-4552-84c5-3c76b2ef872e-attachment.txt new file mode 100644 index 0000000..5b112c9 --- /dev/null +++ b/allure-results/7b513542-687b-4552-84c5-3c76b2ef872e-attachment.txt @@ -0,0 +1,2 @@ +Active environment: qa +Running tests against environment: > diff --git a/allure-results/7b7a3529-06a3-4b8e-b9f3-9e079a0f97d5-container.json b/allure-results/7b7a3529-06a3-4b8e-b9f3-9e079a0f97d5-container.json new file mode 100644 index 0000000..6003258 --- /dev/null +++ b/allure-results/7b7a3529-06a3-4b8e-b9f3-9e079a0f97d5-container.json @@ -0,0 +1 @@ +{"uuid": "28a3255b-6161-41e9-b89e-5490be3edc9c", "befores": [{"name": "product_data", "status": "passed", "start": 1785046510996, "stop": 1785046510996}], "afters": [{"name": "product_data::", "start": 1785046531402}], "start": 1785046510996, "stop": 1785046531402} \ No newline at end of file diff --git a/allure-results/7bb2b45a-2252-4521-ab22-3d8a21fd9e91-attachment.txt b/allure-results/7bb2b45a-2252-4521-ab22-3d8a21fd9e91-attachment.txt new file mode 100644 index 0000000..7ce34fb --- /dev/null +++ b/allure-results/7bb2b45a-2252-4521-ab22-3d8a21fd9e91-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:45:07,107 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:45:09,340 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:45:09,354 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:45:09,354 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Backpack +2026-07-26 11:45:10,076 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Backpack diff --git a/allure-results/7bb91763-53ad-46ac-a7a6-22b843299e94-container.json b/allure-results/7bb91763-53ad-46ac-a7a6-22b843299e94-container.json new file mode 100644 index 0000000..5f2af8f --- /dev/null +++ b/allure-results/7bb91763-53ad-46ac-a7a6-22b843299e94-container.json @@ -0,0 +1 @@ +{"uuid": "2ad25f1f-5ef3-4fca-bddc-1a375277f259", "children": ["a65284eb-f9e8-486d-a633-1e8421bfe966", "c9c0a217-81ab-4412-91e7-a15d43ad89da", "145a497d-6f48-420a-9fd1-2f56c44bc698", "4e88716d-52cc-4fea-9574-95e7faf1e695", "2d455068-c2f5-4129-b34e-417744b6c66c", "17c614d7-d40e-4551-b15f-57b2a9a06a9a", "4e1c0964-f4ed-4046-a82a-b347f5d364f7", "8fc94b75-b471-493d-b38c-f951a707e526", "a7dc1a23-738b-4036-8f18-0e6623efebef", "492635eb-194d-4f06-90cd-ea645ee64994", "862d641e-2e12-4162-9022-f13ffac6e216", "61f568d3-10a2-421a-bf23-0c7ee1b84fc1", "fa8ddc56-d8d7-455f-af79-65d39d887c72", "f412bdd1-455f-4d18-b998-508aa34153e2", "af4d3119-cd92-4120-8904-f6e1caa92523"], "befores": [{"name": "delete_output_dir", "status": "passed", "start": 1785046621136, "stop": 1785046621136}], "afters": [{"name": "delete_output_dir::", "start": 1785046678420}], "start": 1785046621136, "stop": 1785046678420} \ No newline at end of file diff --git a/allure-results/7bde4787-47f7-465f-9791-a6a9b7e6e41b-attachment.txt b/allure-results/7bde4787-47f7-465f-9791-a6a9b7e6e41b-attachment.txt new file mode 100644 index 0000000..848c6ab --- /dev/null +++ b/allure-results/7bde4787-47f7-465f-9791-a6a9b7e6e41b-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:45:27,591 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:45:29,853 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:45:29,864 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:45:29,865 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bike Light +2026-07-26 11:45:30,592 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bike Light diff --git a/allure-results/7c28cb7e-c245-48f3-b73e-a935172dc462-container.json b/allure-results/7c28cb7e-c245-48f3-b73e-a935172dc462-container.json new file mode 100644 index 0000000..43c030e --- /dev/null +++ b/allure-results/7c28cb7e-c245-48f3-b73e-a935172dc462-container.json @@ -0,0 +1 @@ +{"uuid": "5b11a0e0-5c27-4636-bad8-e902d3c8e873", "children": ["55b69fcb-b0dd-4d1c-90cc-617c12dfd925"], "befores": [{"name": "context", "status": "passed", "start": 1785046550875, "stop": 1785046550881}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046556048, "stop": 1785046556061}, {"name": "context::", "start": 1785046556061}], "start": 1785046550875, "stop": 1785046556061} \ No newline at end of file diff --git a/allure-results/7c81610e-28e2-45c8-9d6e-75223fe30665-attachment.txt b/allure-results/7c81610e-28e2-45c8-9d6e-75223fe30665-attachment.txt new file mode 100644 index 0000000..df35693 --- /dev/null +++ b/allure-results/7c81610e-28e2-45c8-9d6e-75223fe30665-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Backpack +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Backpack \ No newline at end of file diff --git a/allure-results/7d02060f-7672-4d29-b9c7-a534fc84f414-container.json b/allure-results/7d02060f-7672-4d29-b9c7-a534fc84f414-container.json new file mode 100644 index 0000000..1756c80 --- /dev/null +++ b/allure-results/7d02060f-7672-4d29-b9c7-a534fc84f414-container.json @@ -0,0 +1 @@ +{"uuid": "6439ead9-c15f-4426-b746-cf0988747d38", "children": ["ad62a26a-de9f-4a17-966b-deaeae749865", "db8c0ef2-f2c6-495f-93ef-c86d16fcd74a", "ba10b5d3-8199-4902-997d-83f59149a95d", "dda59aea-654c-4c87-b58c-1aa7f06765a4", "119e185c-2a13-4876-b36e-f79c684e70e8", "55b69fcb-b0dd-4d1c-90cc-617c12dfd925", "5a7d2265-bb99-408b-9ffd-9a42d5ddc311", "09710e12-8b19-4e64-b3ea-2fdfc88b8550", "92840d7a-2565-4d1d-b5ec-9ec7ac9a9339", "b4f4a2f5-bf6e-44d2-b8b0-0297c5a84f76"], "befores": [{"name": "delete_output_dir", "status": "passed", "start": 1785046499277, "stop": 1785046499277}], "afters": [{"name": "delete_output_dir::", "start": 1785046579028}], "start": 1785046499277, "stop": 1785046579028} \ No newline at end of file diff --git a/allure-results/7fdd634b-504a-42f9-9f9e-a1c6fb09da66-attachment.txt b/allure-results/7fdd634b-504a-42f9-9f9e-a1c6fb09da66-attachment.txt new file mode 100644 index 0000000..df35693 --- /dev/null +++ b/allure-results/7fdd634b-504a-42f9-9f9e-a1c6fb09da66-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Backpack +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Backpack \ No newline at end of file diff --git a/allure-results/807b4a69-5084-405a-b09c-e7619c9991f0-container.json b/allure-results/807b4a69-5084-405a-b09c-e7619c9991f0-container.json new file mode 100644 index 0000000..0e3335b --- /dev/null +++ b/allure-results/807b4a69-5084-405a-b09c-e7619c9991f0-container.json @@ -0,0 +1 @@ +{"uuid": "a0b0030d-eab0-481a-b87d-c276aee888a0", "children": ["beb43a4b-8fbb-47c9-9bc3-71bbd039b1e5", "2ec259d1-7b8f-4a71-b2c7-6767abb2178a", "1074506d-17b2-43e1-bf42-23dc3240eb14", "063320be-e436-4d48-a5ef-51c8bd21ff40", "5c426436-4bd8-47eb-8bf8-41e7dce11af1", "33d312a9-c635-4111-8c95-c10a76c098bc", "8c2f2a84-f81c-41c5-b5fc-ab5e5a2d31a0", "304c93db-f7dd-4906-a92d-1a02bc8f2f20", "6864d31d-f43b-4000-ab82-b03f6bcba619", "3066e1cd-8d5e-4fdb-b327-8dfcd432565c", "f6e3505e-7dd3-4cfc-8a90-14eac04d4dcf", "3908cf82-bf59-4a87-8bfe-25ced46d66c8", "aa5fb6e8-5c70-4242-afd1-78de14bddaf7", "01701ce7-fb05-4767-992e-9246c52fd29d"], "befores": [{"name": "base_url", "status": "passed", "start": 1785046499277, "stop": 1785046499277}], "afters": [{"name": "base_url::", "start": 1785046571462}], "start": 1785046499277, "stop": 1785046571462} \ No newline at end of file diff --git a/allure-results/80c966d2-3acd-4658-8e05-9b333085960d-container.json b/allure-results/80c966d2-3acd-4658-8e05-9b333085960d-container.json new file mode 100644 index 0000000..7041977 --- /dev/null +++ b/allure-results/80c966d2-3acd-4658-8e05-9b333085960d-container.json @@ -0,0 +1 @@ +{"uuid": "305ce6d8-1a92-4f89-a359-bc25b8c102b4", "children": ["17c614d7-d40e-4551-b15f-57b2a9a06a9a"], "befores": [{"name": "context", "status": "passed", "start": 1785046655375, "stop": 1785046655380}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046664659, "stop": 1785046664663}, {"name": "context::", "start": 1785046664663}], "start": 1785046655375, "stop": 1785046664663} \ No newline at end of file diff --git a/allure-results/80fa1373-fe36-4f61-a34e-28c5b415d355-container.json b/allure-results/80fa1373-fe36-4f61-a34e-28c5b415d355-container.json new file mode 100644 index 0000000..ee4737d --- /dev/null +++ b/allure-results/80fa1373-fe36-4f61-a34e-28c5b415d355-container.json @@ -0,0 +1 @@ +{"uuid": "0fcf7e0c-eeca-4da3-8d49-3cbd0f9e2f97", "children": ["6864d31d-f43b-4000-ab82-b03f6bcba619"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046570887, "stop": 1785046570887}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046570888, "stop": 1785046570888}, {"name": "capture_failure_artifacts::", "start": 1785046570888}], "start": 1785046570887, "stop": 1785046570888} \ No newline at end of file diff --git a/allure-results/81a8dd16-e0e5-44bb-a4d7-40ed1a9437c1-container.json b/allure-results/81a8dd16-e0e5-44bb-a4d7-40ed1a9437c1-container.json new file mode 100644 index 0000000..c8c08c8 --- /dev/null +++ b/allure-results/81a8dd16-e0e5-44bb-a4d7-40ed1a9437c1-container.json @@ -0,0 +1 @@ +{"uuid": "9ac5f3c9-b763-41e8-9f27-cb9171d0661c", "befores": [{"name": "user_data", "status": "passed", "start": 1785046561335, "stop": 1785046561335}], "afters": [{"name": "user_data::", "start": 1785046566681}], "start": 1785046561335, "stop": 1785046566681} \ No newline at end of file diff --git a/allure-results/81ae3d27-3f67-41a3-8d81-e1fe79651ddb-container.json b/allure-results/81ae3d27-3f67-41a3-8d81-e1fe79651ddb-container.json new file mode 100644 index 0000000..8cf00f6 --- /dev/null +++ b/allure-results/81ae3d27-3f67-41a3-8d81-e1fe79651ddb-container.json @@ -0,0 +1 @@ +{"uuid": "b15b2814-599e-4884-88e9-ce560c6f858a", "befores": [{"name": "product_data", "status": "passed", "start": 1785046646073, "stop": 1785046646073}], "afters": [{"name": "product_data::", "start": 1785046655360}], "start": 1785046646073, "stop": 1785046655360} \ No newline at end of file diff --git a/allure-results/834ba1a4-bf4b-4b9b-aafe-65a889d0ed14-container.json b/allure-results/834ba1a4-bf4b-4b9b-aafe-65a889d0ed14-container.json new file mode 100644 index 0000000..e7c938a --- /dev/null +++ b/allure-results/834ba1a4-bf4b-4b9b-aafe-65a889d0ed14-container.json @@ -0,0 +1 @@ +{"uuid": "feb59262-b1dd-4a55-bf7e-95cfed85844b", "children": ["2ec259d1-7b8f-4a71-b2c7-6767abb2178a"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046504698, "stop": 1785046504699}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046510880, "stop": 1785046510880}, {"name": "capture_failure_artifacts::", "start": 1785046510880}], "start": 1785046504698, "stop": 1785046510880} \ No newline at end of file diff --git a/allure-results/841328bc-018a-482b-a4a3-d307afe1910f-container.json b/allure-results/841328bc-018a-482b-a4a3-d307afe1910f-container.json new file mode 100644 index 0000000..52020ad --- /dev/null +++ b/allure-results/841328bc-018a-482b-a4a3-d307afe1910f-container.json @@ -0,0 +1 @@ +{"uuid": "087c4f09-1141-4798-a78d-d94487334537", "children": ["33d312a9-c635-4111-8c95-c10a76c098bc"], "befores": [{"name": "page", "status": "passed", "start": 1785046550912, "stop": 1785046550994}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046561229, "stop": 1785046561232}, {"name": "page::", "start": 1785046561232}], "start": 1785046550912, "stop": 1785046561232} \ No newline at end of file diff --git a/allure-results/85182436-cb6c-4bc8-a8cb-599c0fbbe218-container.json b/allure-results/85182436-cb6c-4bc8-a8cb-599c0fbbe218-container.json new file mode 100644 index 0000000..338f6c4 --- /dev/null +++ b/allure-results/85182436-cb6c-4bc8-a8cb-599c0fbbe218-container.json @@ -0,0 +1 @@ +{"uuid": "c82e3266-6dc0-4514-8ca9-9d81bc6eef03", "befores": [{"name": "customer_data", "status": "passed", "start": 1785046638863, "stop": 1785046638863}], "afters": [{"name": "customer_data::", "start": 1785046648898}], "start": 1785046638863, "stop": 1785046648898} \ No newline at end of file diff --git a/allure-results/851d4e22-eb9d-4082-aa94-2b52a55846ff-container.json b/allure-results/851d4e22-eb9d-4082-aa94-2b52a55846ff-container.json new file mode 100644 index 0000000..09c9fe9 --- /dev/null +++ b/allure-results/851d4e22-eb9d-4082-aa94-2b52a55846ff-container.json @@ -0,0 +1 @@ +{"uuid": "12522e73-385d-4417-b699-aca0ca51c954", "children": ["145a497d-6f48-420a-9fd1-2f56c44bc698"], "befores": [{"name": "context", "status": "passed", "start": 1785046631403, "stop": 1785046631409}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046636706, "stop": 1785046636710}, {"name": "context::", "start": 1785046636710}], "start": 1785046631403, "stop": 1785046636710} \ No newline at end of file diff --git a/allure-results/867f03f8-47e4-473c-a07a-387ea8a2df7d-attachment.txt b/allure-results/867f03f8-47e4-473c-a07a-387ea8a2df7d-attachment.txt new file mode 100644 index 0000000..e8d815f --- /dev/null +++ b/allure-results/867f03f8-47e4-473c-a07a-387ea8a2df7d-attachment.txt @@ -0,0 +1,2 @@ +2026-07-26 11:46:07,976 | INFO | pages.login_page | Attempting login with username: performance_glitch_user +2026-07-26 11:46:15,178 | INFO | pages.login_page | Login action completed for username performance_glitch_user diff --git a/allure-results/86cd76d2-fa79-467f-9ee9-137c56348e6c-container.json b/allure-results/86cd76d2-fa79-467f-9ee9-137c56348e6c-container.json new file mode 100644 index 0000000..9ec6ca6 --- /dev/null +++ b/allure-results/86cd76d2-fa79-467f-9ee9-137c56348e6c-container.json @@ -0,0 +1 @@ +{"uuid": "c1fd285a-bc9e-4b6d-b17b-4ba841ba1480", "children": ["b4f4a2f5-bf6e-44d2-b8b0-0297c5a84f76"], "befores": [{"name": "context", "status": "passed", "start": 1785046575230, "stop": 1785046575238}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046578923, "stop": 1785046578954}, {"name": "context::", "start": 1785046578954}], "start": 1785046575230, "stop": 1785046578954} \ No newline at end of file diff --git a/allure-results/86d85b6c-2bb6-41d5-bfe8-7e9cc4f9dd78-container.json b/allure-results/86d85b6c-2bb6-41d5-bfe8-7e9cc4f9dd78-container.json new file mode 100644 index 0000000..ddca861 --- /dev/null +++ b/allure-results/86d85b6c-2bb6-41d5-bfe8-7e9cc4f9dd78-container.json @@ -0,0 +1 @@ +{"uuid": "b98ddb22-3700-4593-9ed8-65e2e16f2ae4", "children": ["db8c0ef2-f2c6-495f-93ef-c86d16fcd74a"], "befores": [{"name": "context", "status": "passed", "start": 1785046508334, "stop": 1785046508340}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046517899, "stop": 1785046517914}, {"name": "context::", "start": 1785046517914}], "start": 1785046508334, "stop": 1785046517914} \ No newline at end of file diff --git a/allure-results/87db1baf-3076-4d48-a5db-56df21e18705-container.json b/allure-results/87db1baf-3076-4d48-a5db-56df21e18705-container.json new file mode 100644 index 0000000..fa1fedf --- /dev/null +++ b/allure-results/87db1baf-3076-4d48-a5db-56df21e18705-container.json @@ -0,0 +1 @@ +{"uuid": "80bf23ae-b604-438e-861e-e04d4f90d365", "children": ["8fc94b75-b471-493d-b38c-f951a707e526"], "befores": [{"name": "context", "status": "passed", "start": 1785046669422, "stop": 1785046669426}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046674307, "stop": 1785046674312}, {"name": "context::", "start": 1785046674312}], "start": 1785046669422, "stop": 1785046674312} \ No newline at end of file diff --git a/allure-results/87e41ef1-4b7f-4e38-ba88-0ecc9146fe2e-container.json b/allure-results/87e41ef1-4b7f-4e38-ba88-0ecc9146fe2e-container.json new file mode 100644 index 0000000..d73c6f6 --- /dev/null +++ b/allure-results/87e41ef1-4b7f-4e38-ba88-0ecc9146fe2e-container.json @@ -0,0 +1 @@ +{"uuid": "83cb449c-ff33-451d-b99a-4590313888c0", "children": ["fe8a7034-c964-4f6f-bbcc-d629e9fd399b", "c72a1e42-0398-455d-a621-ff093f5617eb", "1203bebf-db2b-4e50-8e72-5e11e0144027", "5df0b7cc-b4d7-444b-8430-12128401448a", "6f631202-9ba1-4462-a836-a396d11796ce", "bf9c4c05-9138-4d59-ab12-782895346ac8", "3d40d7cb-6f90-48eb-8b7e-167dbd560241", "ee67d554-adf0-4e0c-ad55-7a8592448e2c", "4da8457f-71c2-4558-aa49-4871cb4b1663"], "befores": [{"name": "config", "status": "passed", "start": 1785046621271, "stop": 1785046621272}], "afters": [{"name": "config::", "start": 1785046684738}], "start": 1785046621271, "stop": 1785046684738} \ No newline at end of file diff --git a/allure-results/88a8bea7-c690-4b0d-82dc-2168900551f2-attachment.txt b/allure-results/88a8bea7-c690-4b0d-82dc-2168900551f2-attachment.txt new file mode 100644 index 0000000..ad78610 --- /dev/null +++ b/allure-results/88a8bea7-c690-4b0d-82dc-2168900551f2-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:45:04,502 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:45:06,750 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:45:06,765 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:45:06,765 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bolt T-Shirt +2026-07-26 11:45:07,493 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bolt T-Shirt diff --git a/allure-results/88d1dd1d-407a-4f89-b0bf-bfb5274eac56-attachment.txt b/allure-results/88d1dd1d-407a-4f89-b0bf-bfb5274eac56-attachment.txt new file mode 100644 index 0000000..b9ccad0 --- /dev/null +++ b/allure-results/88d1dd1d-407a-4f89-b0bf-bfb5274eac56-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bolt T-Shirt +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bolt T-Shirt \ No newline at end of file diff --git a/allure-results/8b0f3354-916d-4dab-bc16-07e0c4783a0b-result.json b/allure-results/8b0f3354-916d-4dab-bc16-07e0c4783a0b-result.json new file mode 100644 index 0000000..5deea42 --- /dev/null +++ b/allure-results/8b0f3354-916d-4dab-bc16-07e0c4783a0b-result.json @@ -0,0 +1 @@ +{"name": "Verify checkout flow - Sauce Labs Backpack - customer_01", "status": "passed", "description": "Verify that a user can successfully complete the checkout flow using different products and customer information.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046629251, "stop": 1785046630822}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046630822, "stop": 1785046630822}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046630822, "stop": 1785046633012}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046633012, "stop": 1785046633021}, {"name": "Retrieve product name: Sauce Labs Backpack", "status": "passed", "start": 1785046633021, "stop": 1785046633021}, {"name": "Add Sauce Labs Backpack to cart", "status": "passed", "start": 1785046633021, "stop": 1785046633745}, {"name": "Open shopping cart", "status": "passed", "start": 1785046633745, "stop": 1785046634471}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046634471, "stop": 1785046634472}, {"name": "Verify Sauce Labs Backpack is present in cart", "status": "passed", "start": 1785046634472, "stop": 1785046634481}, {"name": "Proceed to checkout", "status": "passed", "start": 1785046634481, "stop": 1785046635206}, {"name": "Verify checkout information page is loaded", "status": "passed", "start": 1785046635206, "stop": 1785046635206}, {"name": "Enter customer information for customer_01", "status": "passed", "start": 1785046635207, "stop": 1785046637356}, {"name": "Continue to checkout overview", "status": "passed", "start": 1785046637357, "stop": 1785046638077}, {"name": "Verify checkout overview page is loaded", "status": "passed", "start": 1785046638078, "stop": 1785046638078}, {"name": "Verify Sauce Labs Backpack is present in order", "status": "passed", "start": 1785046638078, "stop": 1785046638091}, {"name": "Complete the order", "status": "passed", "start": 1785046638091, "stop": 1785046638812}, {"name": "Verify order confirmation message", "status": "passed", "start": 1785046638812, "stop": 1785046638817}], "attachments": [{"name": "log", "source": "7fdd634b-504a-42f9-9f9e-a1c6fb09da66-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "068c30d1-30b1-4f5f-8911-b3c2360c0f1c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Backpack'}"}, {"name": "customer_data", "value": "{'test_id': 'customer_01', 'first_name': 'Prateek', 'last_name': 'Dharwal', 'postal_code': '141001'}"}], "start": 1785046629251, "stop": 1785046638817, "uuid": "c72a1e42-0398-455d-a621-ff093f5617eb", "historyId": "157c9a06370e79ff93d3823b414513bd", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "feature", "value": "Checkout"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "story", "value": "Complete Product Checkout"}, {"name": "severity", "value": "critical"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25039-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/8b1bef8d-bad3-4cc4-9a61-f0e8819995f0-attachment.txt b/allure-results/8b1bef8d-bad3-4cc4-9a61-f0e8819995f0-attachment.txt new file mode 100644 index 0000000..b1b8b74 --- /dev/null +++ b/allure-results/8b1bef8d-bad3-4cc4-9a61-f0e8819995f0-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:47:41,078 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:43,271 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:47:43,279 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:47:43,279 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Backpack +2026-07-26 11:47:44,003 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Backpack diff --git a/allure-results/8b93ef3f-d6ff-483c-99be-57fbc6606a26-container.json b/allure-results/8b93ef3f-d6ff-483c-99be-57fbc6606a26-container.json new file mode 100644 index 0000000..fd32521 --- /dev/null +++ b/allure-results/8b93ef3f-d6ff-483c-99be-57fbc6606a26-container.json @@ -0,0 +1 @@ +{"uuid": "e7556a14-d591-4739-af2b-178ee4369ac3", "children": ["ad62a26a-de9f-4a17-966b-deaeae749865", "db8c0ef2-f2c6-495f-93ef-c86d16fcd74a", "ba10b5d3-8199-4902-997d-83f59149a95d", "dda59aea-654c-4c87-b58c-1aa7f06765a4", "119e185c-2a13-4876-b36e-f79c684e70e8", "55b69fcb-b0dd-4d1c-90cc-617c12dfd925", "5a7d2265-bb99-408b-9ffd-9a42d5ddc311", "09710e12-8b19-4e64-b3ea-2fdfc88b8550", "92840d7a-2565-4d1d-b5ec-9ec7ac9a9339", "b4f4a2f5-bf6e-44d2-b8b0-0297c5a84f76"], "befores": [{"name": "config", "status": "passed", "start": 1785046499399, "stop": 1785046499399}], "afters": [{"name": "config::", "start": 1785046579021}], "start": 1785046499399, "stop": 1785046579021} \ No newline at end of file diff --git a/allure-results/8bf468fd-6e7a-45e7-85f1-e56b8e28bec0-container.json b/allure-results/8bf468fd-6e7a-45e7-85f1-e56b8e28bec0-container.json new file mode 100644 index 0000000..d70541b --- /dev/null +++ b/allure-results/8bf468fd-6e7a-45e7-85f1-e56b8e28bec0-container.json @@ -0,0 +1 @@ +{"uuid": "a67b492c-e557-4568-883b-b64dfcc4cc2f", "children": ["01701ce7-fb05-4767-992e-9246c52fd29d"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046571383, "stop": 1785046571383}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046571383, "stop": 1785046571383}, {"name": "capture_failure_artifacts::", "start": 1785046571383}], "start": 1785046571383, "stop": 1785046571383} \ No newline at end of file diff --git a/allure-results/8c380c5d-b0a5-438c-8889-1497af0e553c-result.json b/allure-results/8c380c5d-b0a5-438c-8889-1497af0e553c-result.json new file mode 100644 index 0000000..e946589 --- /dev/null +++ b/allure-results/8c380c5d-b0a5-438c-8889-1497af0e553c-result.json @@ -0,0 +1 @@ +{"name": "Verify invalid user login is rejected", "status": "passed", "description": "Verify that invalid or locked-out users cannot log into the SauceDemo application.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046674351, "stop": 1785046676026}, {"name": "Login with user: invalid_credentials", "status": "passed", "start": 1785046676026, "stop": 1785046678176}, {"name": "Verify login error message", "status": "passed", "start": 1785046678176, "stop": 1785046678181}], "attachments": [{"name": "log", "source": "f71d53e8-c38d-4008-af44-3cd124d590d0-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "195d92b3-8b02-4373-b6a1-20d600f337b9-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "user_data", "value": "{'test_id': 'invalid_credentials', 'username': 'invalid_user', 'password': 'invalid_password', 'expected_error': 'Epic sadface: Username and password do not match any user in this service'}"}], "start": 1785046674350, "stop": 1785046678181, "uuid": "a7dc1a23-738b-4036-8f18-0e6623efebef", "historyId": "f8ef63f11409f268ac38fa17a799904f", "testCaseId": "e8370c619ee25448f689d6057ce1e179", "fullName": "tests.e2e.test_login#test_invalid_login", "labels": [{"name": "severity", "value": "critical"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "feature", "value": "Authentication"}, {"name": "story", "value": "Invalid User Login"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_login"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_login"}], "titlePath": ["tests", "e2e", "test_login.py"]} \ No newline at end of file diff --git a/allure-results/8d0052ae-782c-4a1f-bf7e-41b1a9efdb26-container.json b/allure-results/8d0052ae-782c-4a1f-bf7e-41b1a9efdb26-container.json new file mode 100644 index 0000000..cb4b0c3 --- /dev/null +++ b/allure-results/8d0052ae-782c-4a1f-bf7e-41b1a9efdb26-container.json @@ -0,0 +1 @@ +{"uuid": "ae82583c-6d3f-4104-b620-8d633df97a98", "children": ["119e185c-2a13-4876-b36e-f79c684e70e8"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046545668, "stop": 1785046545668}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046550849, "stop": 1785046550849}, {"name": "capture_failure_artifacts::", "start": 1785046550849}], "start": 1785046545668, "stop": 1785046550849} \ No newline at end of file diff --git a/allure-results/8e094ecb-6684-4807-b7b0-4041eae9f9db-container.json b/allure-results/8e094ecb-6684-4807-b7b0-4041eae9f9db-container.json new file mode 100644 index 0000000..ee43061 --- /dev/null +++ b/allure-results/8e094ecb-6684-4807-b7b0-4041eae9f9db-container.json @@ -0,0 +1 @@ +{"uuid": "38b386d1-8fda-4004-9c80-3f7afb3cba23", "children": ["db8c0ef2-f2c6-495f-93ef-c86d16fcd74a"], "befores": [{"name": "page", "status": "passed", "start": 1785046508340, "stop": 1785046508410}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046517891, "stop": 1785046517898}, {"name": "page::", "start": 1785046517898}], "start": 1785046508340, "stop": 1785046517898} \ No newline at end of file diff --git a/allure-results/8f08f5e2-166b-4ff2-a085-c67e0b22f2eb-container.json b/allure-results/8f08f5e2-166b-4ff2-a085-c67e0b22f2eb-container.json new file mode 100644 index 0000000..4d6911e --- /dev/null +++ b/allure-results/8f08f5e2-166b-4ff2-a085-c67e0b22f2eb-container.json @@ -0,0 +1 @@ +{"uuid": "d2314bf1-398a-41c6-859c-8baebfdc49b7", "children": ["4e88716d-52cc-4fea-9574-95e7faf1e695"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046636744, "stop": 1785046636744}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046646029, "stop": 1785046646029}, {"name": "capture_failure_artifacts::", "start": 1785046646029}], "start": 1785046636744, "stop": 1785046646029} \ No newline at end of file diff --git a/allure-results/8f83b5d2-3ddc-4eb8-ad47-9183ad25f794-container.json b/allure-results/8f83b5d2-3ddc-4eb8-ad47-9183ad25f794-container.json new file mode 100644 index 0000000..c422076 --- /dev/null +++ b/allure-results/8f83b5d2-3ddc-4eb8-ad47-9183ad25f794-container.json @@ -0,0 +1 @@ +{"uuid": "e281c783-63b3-4a38-aefc-b60be2616af3", "children": ["4e1c0964-f4ed-4046-a82a-b347f5d364f7"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046664701, "stop": 1785046664701}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046669414, "stop": 1785046669414}, {"name": "capture_failure_artifacts::", "start": 1785046669414}], "start": 1785046664701, "stop": 1785046669414} \ No newline at end of file diff --git a/allure-results/8f9865dc-9cb0-43a8-b4a1-da51529d7a04-container.json b/allure-results/8f9865dc-9cb0-43a8-b4a1-da51529d7a04-container.json new file mode 100644 index 0000000..d47a2d7 --- /dev/null +++ b/allure-results/8f9865dc-9cb0-43a8-b4a1-da51529d7a04-container.json @@ -0,0 +1 @@ +{"uuid": "fcd822cf-103e-4e71-9eb2-ce0d0cddf2b2", "children": ["4e88716d-52cc-4fea-9574-95e7faf1e695"], "befores": [{"name": "page", "status": "passed", "start": 1785046636718, "stop": 1785046636744}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046646029, "stop": 1785046646033}, {"name": "page::", "start": 1785046646033}], "start": 1785046636718, "stop": 1785046646033} \ No newline at end of file diff --git a/allure-results/8ff4fe81-aa56-423d-8911-ec845146c6f1-result.json b/allure-results/8ff4fe81-aa56-423d-8911-ec845146c6f1-result.json new file mode 100644 index 0000000..e8b852f --- /dev/null +++ b/allure-results/8ff4fe81-aa56-423d-8911-ec845146c6f1-result.json @@ -0,0 +1 @@ +{"name": "Verify valid user can login successfully", "status": "passed", "description": "Verify that a valid user can successfully log into the SauceDemo application.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046672283, "stop": 1785046673760}, {"name": "Retrieve credentials for valid_performance_glitch_user", "status": "passed", "start": 1785046673760, "stop": 1785046673760}, {"name": "Login with user: valid_performance_glitch_user", "status": "passed", "start": 1785046673760, "stop": 1785046680948}, {"name": "Verify user is successfully logged in", "status": "passed", "start": 1785046680948, "stop": 1785046680948}], "attachments": [{"name": "log", "source": "ee9cf1f3-2d4f-46ad-beae-bb47b62955a2-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "565a27bb-d990-4fa6-95cf-d60bc74d9e24-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "user_data", "value": "{'test_id': 'valid_performance_glitch_user', 'username': 'performance_glitch_user', 'password': 'secret_sauce', 'expected_url': '/inventory.html'}"}], "start": 1785046672283, "stop": 1785046680949, "uuid": "ee67d554-adf0-4e0c-ad55-7a8592448e2c", "historyId": "0fd4071593e5598740f77f31750641bf", "testCaseId": "5ac5da8f801af0b6d14e8acfcb100ad8", "fullName": "tests.e2e.test_login#test_valid_login", "labels": [{"name": "epic", "value": "SauceDemo Application"}, {"name": "feature", "value": "Authentication"}, {"name": "severity", "value": "critical"}, {"name": "story", "value": "Valid User Login"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_login"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25039-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_login"}], "titlePath": ["tests", "e2e", "test_login.py"]} \ No newline at end of file diff --git a/allure-results/905a0c2b-2010-464c-bb2e-fbe0e9ff9634-container.json b/allure-results/905a0c2b-2010-464c-bb2e-fbe0e9ff9634-container.json new file mode 100644 index 0000000..a46a18d --- /dev/null +++ b/allure-results/905a0c2b-2010-464c-bb2e-fbe0e9ff9634-container.json @@ -0,0 +1 @@ +{"uuid": "d72f05f2-182e-472f-b9b9-566b59df0077", "children": ["aa5fb6e8-5c70-4242-afd1-78de14bddaf7"], "befores": [{"name": "context", "status": "passed", "start": 1785046571191, "stop": 1785046571196}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046571289, "stop": 1785046571306}, {"name": "context::", "start": 1785046571306}], "start": 1785046571191, "stop": 1785046571306} \ No newline at end of file diff --git a/allure-results/9208ff38-bd17-4fcb-a3f0-7133a006c708-container.json b/allure-results/9208ff38-bd17-4fcb-a3f0-7133a006c708-container.json new file mode 100644 index 0000000..8c5c215 --- /dev/null +++ b/allure-results/9208ff38-bd17-4fcb-a3f0-7133a006c708-container.json @@ -0,0 +1 @@ +{"uuid": "2ca3ed42-446b-427d-8b59-e0c82d8b14c3", "children": ["4e1c0964-f4ed-4046-a82a-b347f5d364f7"], "befores": [{"name": "context", "status": "passed", "start": 1785046664665, "stop": 1785046664670}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046669418, "stop": 1785046669420}, {"name": "context::", "start": 1785046669420}], "start": 1785046664665, "stop": 1785046669420} \ No newline at end of file diff --git a/allure-results/9389c3be-e798-4318-9c83-e0b25e9cec2c-container.json b/allure-results/9389c3be-e798-4318-9c83-e0b25e9cec2c-container.json new file mode 100644 index 0000000..8dbc6a0 --- /dev/null +++ b/allure-results/9389c3be-e798-4318-9c83-e0b25e9cec2c-container.json @@ -0,0 +1 @@ +{"uuid": "eb66ac30-e889-4718-901e-906a521a1897", "children": ["fe8a7034-c964-4f6f-bbcc-d629e9fd399b", "c72a1e42-0398-455d-a621-ff093f5617eb", "1203bebf-db2b-4e50-8e72-5e11e0144027", "5df0b7cc-b4d7-444b-8430-12128401448a", "6f631202-9ba1-4462-a836-a396d11796ce", "bf9c4c05-9138-4d59-ab12-782895346ac8", "3d40d7cb-6f90-48eb-8b7e-167dbd560241", "ee67d554-adf0-4e0c-ad55-7a8592448e2c", "4da8457f-71c2-4558-aa49-4871cb4b1663"], "befores": [{"name": "delete_output_dir", "status": "passed", "start": 1785046621136, "stop": 1785046621136}], "afters": [{"name": "delete_output_dir::", "start": 1785046684743}], "start": 1785046621136, "stop": 1785046684743} \ No newline at end of file diff --git a/allure-results/95066ea9-2903-4016-a95a-559d04073d9a-result.json b/allure-results/95066ea9-2903-4016-a95a-559d04073d9a-result.json new file mode 100644 index 0000000..6b8740d --- /dev/null +++ b/allure-results/95066ea9-2903-4016-a95a-559d04073d9a-result.json @@ -0,0 +1 @@ +{"name": "Verify checkout flow - Sauce Labs Bolt T-Shirt - customer_01", "status": "passed", "description": "Verify that a user can successfully complete the checkout flow using different products and customer information.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046550995, "stop": 1785046553036}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046553036, "stop": 1785046553036}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046553036, "stop": 1785046555273}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046555273, "stop": 1785046555284}, {"name": "Retrieve product name: Sauce Labs Bolt T-Shirt", "status": "passed", "start": 1785046555284, "stop": 1785046555284}, {"name": "Add Sauce Labs Bolt T-Shirt to cart", "status": "passed", "start": 1785046555284, "stop": 1785046556005}, {"name": "Open shopping cart", "status": "passed", "start": 1785046556005, "stop": 1785046556777}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046556777, "stop": 1785046556777}, {"name": "Verify Sauce Labs Bolt T-Shirt is present in cart", "status": "passed", "start": 1785046556777, "stop": 1785046556785}, {"name": "Proceed to checkout", "status": "passed", "start": 1785046556785, "stop": 1785046557544}, {"name": "Verify checkout information page is loaded", "status": "passed", "start": 1785046557545, "stop": 1785046557545}, {"name": "Enter customer information for customer_01", "status": "passed", "start": 1785046557545, "stop": 1785046559689}, {"name": "Continue to checkout overview", "status": "passed", "start": 1785046559689, "stop": 1785046560448}, {"name": "Verify checkout overview page is loaded", "status": "passed", "start": 1785046560448, "stop": 1785046560448}, {"name": "Verify Sauce Labs Bolt T-Shirt is present in order", "status": "passed", "start": 1785046560448, "stop": 1785046560468}, {"name": "Complete the order", "status": "passed", "start": 1785046560468, "stop": 1785046561224}, {"name": "Verify order confirmation message", "status": "passed", "start": 1785046561224, "stop": 1785046561228}], "attachments": [{"name": "log", "source": "fd0e0ee9-dd1f-4446-9418-dce48e718fdc-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "68322245-fb2c-45f7-ab5a-45acaeb16711-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bolt T-Shirt'}"}, {"name": "customer_data", "value": "{'test_id': 'customer_01', 'first_name': 'Prateek', 'last_name': 'Dharwal', 'postal_code': '141001'}"}], "start": 1785046550995, "stop": 1785046561228, "uuid": "33d312a9-c635-4111-8c95-c10a76c098bc", "historyId": "e791610d419bc78586376f4cc85a6d8b", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "epic", "value": "SauceDemo Application"}, {"name": "severity", "value": "critical"}, {"name": "story", "value": "Complete Product Checkout"}, {"name": "feature", "value": "Checkout"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/9563ad09-c19f-46c6-8114-7745325f03e3-container.json b/allure-results/9563ad09-c19f-46c6-8114-7745325f03e3-container.json new file mode 100644 index 0000000..a0e3ccd --- /dev/null +++ b/allure-results/9563ad09-c19f-46c6-8114-7745325f03e3-container.json @@ -0,0 +1 @@ +{"uuid": "c4d4f514-8fdd-4cba-b5bc-3852cee5eb83", "children": ["4e1c0964-f4ed-4046-a82a-b347f5d364f7"], "befores": [{"name": "page", "status": "passed", "start": 1785046664670, "stop": 1785046664701}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046669415, "stop": 1785046669417}, {"name": "page::", "start": 1785046669417}], "start": 1785046664670, "stop": 1785046669417} \ No newline at end of file diff --git a/allure-results/9590f30c-4902-4b99-9071-014c5f694600-container.json b/allure-results/9590f30c-4902-4b99-9071-014c5f694600-container.json new file mode 100644 index 0000000..e445cce --- /dev/null +++ b/allure-results/9590f30c-4902-4b99-9071-014c5f694600-container.json @@ -0,0 +1 @@ +{"uuid": "c8f85669-bac8-408c-a060-ec055c2d06af", "children": ["063320be-e436-4d48-a5ef-51c8bd21ff40"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046531517, "stop": 1785046531517}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046541340, "stop": 1785046541340}, {"name": "capture_failure_artifacts::", "start": 1785046541340}], "start": 1785046531517, "stop": 1785046541340} \ No newline at end of file diff --git a/allure-results/95a5b8d5-dbde-42e1-b483-b57212cd6a7d-container.json b/allure-results/95a5b8d5-dbde-42e1-b483-b57212cd6a7d-container.json new file mode 100644 index 0000000..3826b13 --- /dev/null +++ b/allure-results/95a5b8d5-dbde-42e1-b483-b57212cd6a7d-container.json @@ -0,0 +1 @@ +{"uuid": "7bfef076-5533-4b9b-96ff-2d675ea64d90", "children": ["2d455068-c2f5-4129-b34e-417744b6c66c"], "befores": [{"name": "page", "status": "passed", "start": 1785046646044, "stop": 1785046646073}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046655361, "stop": 1785046655366}, {"name": "page::", "start": 1785046655366}], "start": 1785046646044, "stop": 1785046655366} \ No newline at end of file diff --git a/allure-results/965276ab-70f7-4164-9595-700217032300-container.json b/allure-results/965276ab-70f7-4164-9595-700217032300-container.json new file mode 100644 index 0000000..00ebafe --- /dev/null +++ b/allure-results/965276ab-70f7-4164-9595-700217032300-container.json @@ -0,0 +1 @@ +{"uuid": "8ce1e81a-51e5-4d98-b6bb-608680fa6cf1", "children": ["b4f4a2f5-bf6e-44d2-b8b0-0297c5a84f76"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046575311, "stop": 1785046575311}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046578914, "stop": 1785046578914}, {"name": "capture_failure_artifacts::", "start": 1785046578914}], "start": 1785046575311, "stop": 1785046578914} \ No newline at end of file diff --git a/allure-results/9678cde5-90c4-4835-89c4-768dbf026ed4-attachment.txt b/allure-results/9678cde5-90c4-4835-89c4-768dbf026ed4-attachment.txt new file mode 100644 index 0000000..9ab5bd6 --- /dev/null +++ b/allure-results/9678cde5-90c4-4835-89c4-768dbf026ed4-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:47:46,465 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:48,694 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:47:48,698 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:47:48,699 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bike Light +2026-07-26 11:47:49,409 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bike Light diff --git a/allure-results/9703d146-efd3-4d93-8694-01af91141225-result.json b/allure-results/9703d146-efd3-4d93-8694-01af91141225-result.json new file mode 100644 index 0000000..fc49284 --- /dev/null +++ b/allure-results/9703d146-efd3-4d93-8694-01af91141225-result.json @@ -0,0 +1 @@ +{"name": "Verify invalid user login is rejected", "status": "passed", "description": "Verify that invalid or locked-out users cannot log into the SauceDemo application.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046566797, "stop": 1785046568575}, {"name": "Login with user: invalid_credentials", "status": "passed", "start": 1785046568576, "stop": 1785046570768}, {"name": "Verify login error message", "status": "passed", "start": 1785046570768, "stop": 1785046570774}], "attachments": [{"name": "log", "source": "f98394db-3789-4f3e-9fbd-9a0cbc5b4a83-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "09181170-8963-46c1-b902-9658fbe7f8cd-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "user_data", "value": "{'test_id': 'invalid_credentials', 'username': 'invalid_user', 'password': 'invalid_password', 'expected_error': 'Epic sadface: Username and password do not match any user in this service'}"}], "start": 1785046566797, "stop": 1785046570774, "uuid": "304c93db-f7dd-4906-a92d-1a02bc8f2f20", "historyId": "f8ef63f11409f268ac38fa17a799904f", "testCaseId": "e8370c619ee25448f689d6057ce1e179", "fullName": "tests.e2e.test_login#test_invalid_login", "labels": [{"name": "epic", "value": "SauceDemo Application"}, {"name": "feature", "value": "Authentication"}, {"name": "story", "value": "Invalid User Login"}, {"name": "severity", "value": "critical"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_login"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_login"}], "titlePath": ["tests", "e2e", "test_login.py"]} \ No newline at end of file diff --git a/allure-results/980bee34-e21a-4f54-b3af-c568baf573b0-container.json b/allure-results/980bee34-e21a-4f54-b3af-c568baf573b0-container.json new file mode 100644 index 0000000..99a415e --- /dev/null +++ b/allure-results/980bee34-e21a-4f54-b3af-c568baf573b0-container.json @@ -0,0 +1 @@ +{"uuid": "c9a7929b-8773-4600-8590-16daf7f94ffb", "befores": [{"name": "product_data", "status": "passed", "start": 1785046669452, "stop": 1785046669452}], "afters": [{"name": "product_data::", "start": 1785046674301}], "start": 1785046669452, "stop": 1785046674301} \ No newline at end of file diff --git a/allure-results/981242a7-2aac-4f95-b06a-0b90e1991769-container.json b/allure-results/981242a7-2aac-4f95-b06a-0b90e1991769-container.json new file mode 100644 index 0000000..102a1ee --- /dev/null +++ b/allure-results/981242a7-2aac-4f95-b06a-0b90e1991769-container.json @@ -0,0 +1 @@ +{"uuid": "b105ae8b-afcc-42cd-b8f5-d25aad02ce7b", "children": ["c72a1e42-0398-455d-a621-ff093f5617eb"], "befores": [{"name": "page", "status": "passed", "start": 1785046629224, "stop": 1785046629251}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046638818, "stop": 1785046638820}, {"name": "page::", "start": 1785046638820}], "start": 1785046629224, "stop": 1785046638820} \ No newline at end of file diff --git a/allure-results/9913dd03-a089-477c-a65a-ed695ce6d632-container.json b/allure-results/9913dd03-a089-477c-a65a-ed695ce6d632-container.json new file mode 100644 index 0000000..9bfd3f4 --- /dev/null +++ b/allure-results/9913dd03-a089-477c-a65a-ed695ce6d632-container.json @@ -0,0 +1 @@ +{"uuid": "abb0eda2-8b23-4f8e-bda0-bd70e837c6f4", "children": ["beb43a4b-8fbb-47c9-9bc3-71bbd039b1e5"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046499925, "stop": 1785046499925}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046504556, "stop": 1785046504556}, {"name": "capture_failure_artifacts::", "start": 1785046504556}], "start": 1785046499925, "stop": 1785046504556} \ No newline at end of file diff --git a/allure-results/9a42970c-d1e2-4d53-b6b0-adc1a629bc17-attachment.txt b/allure-results/9a42970c-d1e2-4d53-b6b0-adc1a629bc17-attachment.txt new file mode 100644 index 0000000..f879cd4 --- /dev/null +++ b/allure-results/9a42970c-d1e2-4d53-b6b0-adc1a629bc17-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bike Light +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bike Light \ No newline at end of file diff --git a/allure-results/9a66c7ee-9425-4eb1-b7cf-7876592de690-attachment.txt b/allure-results/9a66c7ee-9425-4eb1-b7cf-7876592de690-attachment.txt new file mode 100644 index 0000000..df35693 --- /dev/null +++ b/allure-results/9a66c7ee-9425-4eb1-b7cf-7876592de690-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Backpack +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Backpack \ No newline at end of file diff --git a/allure-results/9b495edd-24da-45ee-9f69-8b5f19b07f53-result.json b/allure-results/9b495edd-24da-45ee-9f69-8b5f19b07f53-result.json new file mode 100644 index 0000000..e0f82c6 --- /dev/null +++ b/allure-results/9b495edd-24da-45ee-9f69-8b5f19b07f53-result.json @@ -0,0 +1 @@ +{"name": "test_empty_configuration_key_raises_error", "status": "passed", "start": 1785046571283, "stop": 1785046571283, "uuid": "aa5fb6e8-5c70-4242-afd1-78de14bddaf7", "historyId": "efe7d96fc91d70c7d073cb3cb5c0ad99", "testCaseId": "efe7d96fc91d70c7d073cb3cb5c0ad99", "fullName": "tests.unit.test_config_manager#test_empty_configuration_key_raises_error", "labels": [{"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/9cffd1b3-188c-476c-8730-d1dfbcd5c03c-container.json b/allure-results/9cffd1b3-188c-476c-8730-d1dfbcd5c03c-container.json new file mode 100644 index 0000000..6f8ee20 --- /dev/null +++ b/allure-results/9cffd1b3-188c-476c-8730-d1dfbcd5c03c-container.json @@ -0,0 +1 @@ +{"uuid": "c8272ecd-8c51-4a5b-819c-8bf5b15839e0", "children": ["ba10b5d3-8199-4902-997d-83f59149a95d"], "befores": [{"name": "context", "status": "passed", "start": 1785046517916, "stop": 1785046517922}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046535870, "stop": 1785046535887}, {"name": "context::", "start": 1785046535887}], "start": 1785046517916, "stop": 1785046535887} \ No newline at end of file diff --git a/allure-results/9fa2d053-235e-4e88-82d0-a5d57726e0c8-container.json b/allure-results/9fa2d053-235e-4e88-82d0-a5d57726e0c8-container.json new file mode 100644 index 0000000..64ae1a7 --- /dev/null +++ b/allure-results/9fa2d053-235e-4e88-82d0-a5d57726e0c8-container.json @@ -0,0 +1 @@ +{"uuid": "6de09750-7242-4b88-a61c-0848a705a2a3", "children": ["2ec259d1-7b8f-4a71-b2c7-6767abb2178a", "1074506d-17b2-43e1-bf42-23dc3240eb14", "063320be-e436-4d48-a5ef-51c8bd21ff40", "5c426436-4bd8-47eb-8bf8-41e7dce11af1", "33d312a9-c635-4111-8c95-c10a76c098bc"], "befores": [{"name": "test_data", "status": "passed", "start": 1785046504591, "stop": 1785046504591}], "afters": [{"name": "test_data::", "start": 1785046571402}], "start": 1785046504591, "stop": 1785046571402} \ No newline at end of file diff --git a/allure-results/a0e9ac26-bef1-4dd1-821f-719a73a59ce5-attachment.txt b/allure-results/a0e9ac26-bef1-4dd1-821f-719a73a59ce5-attachment.txt new file mode 100644 index 0000000..df35693 --- /dev/null +++ b/allure-results/a0e9ac26-bef1-4dd1-821f-719a73a59ce5-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Backpack +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Backpack \ No newline at end of file diff --git a/allure-results/a22a3864-09df-43cb-bb9d-0a40a3ed834a-attachment.txt b/allure-results/a22a3864-09df-43cb-bb9d-0a40a3ed834a-attachment.txt new file mode 100644 index 0000000..f879cd4 --- /dev/null +++ b/allure-results/a22a3864-09df-43cb-bb9d-0a40a3ed834a-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bike Light +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bike Light \ No newline at end of file diff --git a/allure-results/a2462581-a9fb-4f52-89df-14ea85cac2e0-container.json b/allure-results/a2462581-a9fb-4f52-89df-14ea85cac2e0-container.json new file mode 100644 index 0000000..66975d0 --- /dev/null +++ b/allure-results/a2462581-a9fb-4f52-89df-14ea85cac2e0-container.json @@ -0,0 +1 @@ +{"uuid": "b74419d0-f5fb-4bdb-9919-e5f4d2e0d1e4", "children": ["304c93db-f7dd-4906-a92d-1a02bc8f2f20"], "befores": [{"name": "page", "status": "passed", "start": 1785046566712, "stop": 1785046566796}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046570774, "stop": 1785046570777}, {"name": "page::", "start": 1785046570777}], "start": 1785046566712, "stop": 1785046570777} \ No newline at end of file diff --git a/allure-results/a2c78f6d-eae0-4881-96d3-b4c15209bbf1-container.json b/allure-results/a2c78f6d-eae0-4881-96d3-b4c15209bbf1-container.json new file mode 100644 index 0000000..ca112e1 --- /dev/null +++ b/allure-results/a2c78f6d-eae0-4881-96d3-b4c15209bbf1-container.json @@ -0,0 +1 @@ +{"uuid": "ae14613a-11af-4f7c-af07-d5303dfdd554", "children": ["a65284eb-f9e8-486d-a633-1e8421bfe966", "c9c0a217-81ab-4412-91e7-a15d43ad89da", "145a497d-6f48-420a-9fd1-2f56c44bc698", "4e88716d-52cc-4fea-9574-95e7faf1e695", "2d455068-c2f5-4129-b34e-417744b6c66c", "17c614d7-d40e-4551-b15f-57b2a9a06a9a", "4e1c0964-f4ed-4046-a82a-b347f5d364f7", "8fc94b75-b471-493d-b38c-f951a707e526", "a7dc1a23-738b-4036-8f18-0e6623efebef", "492635eb-194d-4f06-90cd-ea645ee64994", "862d641e-2e12-4162-9022-f13ffac6e216", "61f568d3-10a2-421a-bf23-0c7ee1b84fc1", "fa8ddc56-d8d7-455f-af79-65d39d887c72", "f412bdd1-455f-4d18-b998-508aa34153e2", "af4d3119-cd92-4120-8904-f6e1caa92523"], "befores": [{"name": "browser", "status": "passed", "start": 1785046621272, "stop": 1785046623965}], "afters": [{"name": "browser::1", "status": "passed", "start": 1785046678393, "stop": 1785046678414}, {"name": "browser::", "start": 1785046678414}], "start": 1785046621272, "stop": 1785046678414} \ No newline at end of file diff --git a/allure-results/a38563ab-5419-4d1f-a6f4-e4effd6fd2b5-container.json b/allure-results/a38563ab-5419-4d1f-a6f4-e4effd6fd2b5-container.json new file mode 100644 index 0000000..f193675 --- /dev/null +++ b/allure-results/a38563ab-5419-4d1f-a6f4-e4effd6fd2b5-container.json @@ -0,0 +1 @@ +{"uuid": "c072ebc6-2d58-4709-a567-188cabbca3b4", "befores": [{"name": "product_data", "status": "passed", "start": 1785046636744, "stop": 1785046636744}], "afters": [{"name": "product_data::", "start": 1785046646029}], "start": 1785046636744, "stop": 1785046646029} \ No newline at end of file diff --git a/allure-results/a4d3fc48-6867-4e54-9981-3570fc121b96-attachment.txt b/allure-results/a4d3fc48-6867-4e54-9981-3570fc121b96-attachment.txt new file mode 100644 index 0000000..df35693 --- /dev/null +++ b/allure-results/a4d3fc48-6867-4e54-9981-3570fc121b96-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Backpack +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Backpack \ No newline at end of file diff --git a/allure-results/a681c84d-509d-41f9-918f-b5a1539e794c-container.json b/allure-results/a681c84d-509d-41f9-918f-b5a1539e794c-container.json new file mode 100644 index 0000000..0649b50 --- /dev/null +++ b/allure-results/a681c84d-509d-41f9-918f-b5a1539e794c-container.json @@ -0,0 +1 @@ +{"uuid": "5d1445f7-b6dc-4840-a294-fbc0da03dc1a", "children": ["8c2f2a84-f81c-41c5-b5fc-ab5e5a2d31a0"], "befores": [{"name": "context", "status": "passed", "start": 1785046561251, "stop": 1785046561256}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046566687, "stop": 1785046566704}, {"name": "context::", "start": 1785046566704}], "start": 1785046561251, "stop": 1785046566704} \ No newline at end of file diff --git a/allure-results/a704dbf7-0b72-48d2-9031-ef832146ab8a-result.json b/allure-results/a704dbf7-0b72-48d2-9031-ef832146ab8a-result.json new file mode 100644 index 0000000..5da3261 --- /dev/null +++ b/allure-results/a704dbf7-0b72-48d2-9031-ef832146ab8a-result.json @@ -0,0 +1 @@ +{"name": "Verify valid user can login successfully", "status": "passed", "description": "Verify that a valid user can successfully log into the SauceDemo application.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046566445, "stop": 1785046567976}, {"name": "Retrieve credentials for valid_performance_glitch_user", "status": "passed", "start": 1785046567976, "stop": 1785046567976}, {"name": "Login with user: valid_performance_glitch_user", "status": "passed", "start": 1785046567976, "stop": 1785046575179}, {"name": "Verify user is successfully logged in", "status": "passed", "start": 1785046575179, "stop": 1785046575179}], "attachments": [{"name": "log", "source": "aed288a7-ec9a-4c9b-bffc-d1848f3eb823-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "867f03f8-47e4-473c-a07a-387ea8a2df7d-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "user_data", "value": "{'test_id': 'valid_performance_glitch_user', 'username': 'performance_glitch_user', 'password': 'secret_sauce', 'expected_url': '/inventory.html'}"}], "start": 1785046566445, "stop": 1785046575180, "uuid": "92840d7a-2565-4d1d-b5ec-9ec7ac9a9339", "historyId": "0fd4071593e5598740f77f31750641bf", "testCaseId": "5ac5da8f801af0b6d14e8acfcb100ad8", "fullName": "tests.e2e.test_login#test_valid_login", "labels": [{"name": "severity", "value": "critical"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "feature", "value": "Authentication"}, {"name": "story", "value": "Valid User Login"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_login"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24862-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_login"}], "titlePath": ["tests", "e2e", "test_login.py"]} \ No newline at end of file diff --git a/allure-results/a887f6ec-cee3-4f29-b6dd-4de6a2541627-container.json b/allure-results/a887f6ec-cee3-4f29-b6dd-4de6a2541627-container.json new file mode 100644 index 0000000..b76633a --- /dev/null +++ b/allure-results/a887f6ec-cee3-4f29-b6dd-4de6a2541627-container.json @@ -0,0 +1 @@ +{"uuid": "b12b3885-4aa8-4c9e-afc9-ada5dee9448f", "befores": [{"name": "user_data", "status": "passed", "start": 1785046575311, "stop": 1785046575311}], "afters": [{"name": "user_data::", "start": 1785046578913}], "start": 1785046575311, "stop": 1785046578913} \ No newline at end of file diff --git a/allure-results/a93aa469-ac8e-4238-8551-7bb6883fa114-container.json b/allure-results/a93aa469-ac8e-4238-8551-7bb6883fa114-container.json new file mode 100644 index 0000000..8e15085 --- /dev/null +++ b/allure-results/a93aa469-ac8e-4238-8551-7bb6883fa114-container.json @@ -0,0 +1 @@ +{"uuid": "7bc6aafe-0f53-4cf1-a307-3d415a4dbe2d", "children": ["61f568d3-10a2-421a-bf23-0c7ee1b84fc1"], "befores": [{"name": "page", "status": "passed", "start": 1785046678263, "stop": 1785046678287}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046678288, "stop": 1785046678290}, {"name": "page::", "start": 1785046678290}], "start": 1785046678263, "stop": 1785046678290} \ No newline at end of file diff --git a/allure-results/a96c2467-9ba5-4f31-a0d9-910b3cf1b10e-result.json b/allure-results/a96c2467-9ba5-4f31-a0d9-910b3cf1b10e-result.json new file mode 100644 index 0000000..01ddc1d --- /dev/null +++ b/allure-results/a96c2467-9ba5-4f31-a0d9-910b3cf1b10e-result.json @@ -0,0 +1 @@ +{"name": "test_configuration_loads_successfully", "status": "passed", "start": 1785046678217, "stop": 1785046678217, "uuid": "492635eb-194d-4f06-90cd-ea645ee64994", "historyId": "460f9f36ffdc12b2d3d3f76e80167765", "testCaseId": "460f9f36ffdc12b2d3d3f76e80167765", "fullName": "tests.unit.test_config_manager#test_configuration_loads_successfully", "labels": [{"name": "tag", "value": "unit"}, {"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/a9d745da-867a-43cc-acdf-d1638a2d0270-container.json b/allure-results/a9d745da-867a-43cc-acdf-d1638a2d0270-container.json new file mode 100644 index 0000000..7d54081 --- /dev/null +++ b/allure-results/a9d745da-867a-43cc-acdf-d1638a2d0270-container.json @@ -0,0 +1 @@ +{"uuid": "79dc98fd-000f-4c5f-89ab-b5033d31b51f", "children": ["ee67d554-adf0-4e0c-ad55-7a8592448e2c"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046672283, "stop": 1785046672283}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046680950, "stop": 1785046680950}, {"name": "capture_failure_artifacts::", "start": 1785046680951}], "start": 1785046672283, "stop": 1785046680951} \ No newline at end of file diff --git a/allure-results/aa41ef09-0201-4e55-8a54-f5d3e68684ab-container.json b/allure-results/aa41ef09-0201-4e55-8a54-f5d3e68684ab-container.json new file mode 100644 index 0000000..f5f1603 --- /dev/null +++ b/allure-results/aa41ef09-0201-4e55-8a54-f5d3e68684ab-container.json @@ -0,0 +1 @@ +{"uuid": "f227a7e9-415e-4035-b182-84d4bbe26afc", "children": ["4da8457f-71c2-4558-aa49-4871cb4b1663"], "befores": [{"name": "page", "status": "passed", "start": 1785046680976, "stop": 1785046681008}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046684710, "stop": 1785046684714}, {"name": "page::", "start": 1785046684714}], "start": 1785046680976, "stop": 1785046684714} \ No newline at end of file diff --git a/allure-results/aa7cc8dc-0afb-4e6f-b2b4-ed7e5a72d5d3-container.json b/allure-results/aa7cc8dc-0afb-4e6f-b2b4-ed7e5a72d5d3-container.json new file mode 100644 index 0000000..0f64fa9 --- /dev/null +++ b/allure-results/aa7cc8dc-0afb-4e6f-b2b4-ed7e5a72d5d3-container.json @@ -0,0 +1 @@ +{"uuid": "0bdee2ab-f18a-4119-97a8-058d568c07d9", "children": ["af4d3119-cd92-4120-8904-f6e1caa92523"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046678388, "stop": 1785046678388}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046678389, "stop": 1785046678389}, {"name": "capture_failure_artifacts::", "start": 1785046678389}], "start": 1785046678388, "stop": 1785046678389} \ No newline at end of file diff --git a/allure-results/ab604762-959c-449f-bbd3-78948f47a3d2-attachment.txt b/allure-results/ab604762-959c-449f-bbd3-78948f47a3d2-attachment.txt new file mode 100644 index 0000000..3252083 --- /dev/null +++ b/allure-results/ab604762-959c-449f-bbd3-78948f47a3d2-attachment.txt @@ -0,0 +1,2 @@ +2026-07-26 11:47:50,029 | INFO | pages.login_page | Attempting login with username: problem_user +2026-07-26 11:47:52,231 | INFO | pages.login_page | Login action completed for username problem_user diff --git a/allure-results/acb29e14-6d83-4be1-9880-c142e1d12655-container.json b/allure-results/acb29e14-6d83-4be1-9880-c142e1d12655-container.json new file mode 100644 index 0000000..27a9ddd --- /dev/null +++ b/allure-results/acb29e14-6d83-4be1-9880-c142e1d12655-container.json @@ -0,0 +1 @@ +{"uuid": "2758eaf6-f3d8-4654-8edb-dd41f45276c0", "children": ["6f631202-9ba1-4462-a836-a396d11796ce"], "befores": [{"name": "page", "status": "passed", "start": 1785046659689, "stop": 1785046659719}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046664012, "stop": 1785046664016}, {"name": "page::", "start": 1785046664016}], "start": 1785046659689, "stop": 1785046664016} \ No newline at end of file diff --git a/allure-results/ad5a30c3-a314-4da1-be38-cb0671216e94-attachment.txt b/allure-results/ad5a30c3-a314-4da1-be38-cb0671216e94-attachment.txt new file mode 100644 index 0000000..df35693 --- /dev/null +++ b/allure-results/ad5a30c3-a314-4da1-be38-cb0671216e94-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Backpack +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Backpack \ No newline at end of file diff --git a/allure-results/aed288a7-ec9a-4c9b-bffc-d1848f3eb823-attachment.txt b/allure-results/aed288a7-ec9a-4c9b-bffc-d1848f3eb823-attachment.txt new file mode 100644 index 0000000..17b26de --- /dev/null +++ b/allure-results/aed288a7-ec9a-4c9b-bffc-d1848f3eb823-attachment.txt @@ -0,0 +1,2 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: performance_glitch_user +INFO pages.login_page:login_page.py:67 Login action completed for username performance_glitch_user \ No newline at end of file diff --git a/allure-results/aeecdd85-f51f-4d6e-b79c-0e705739353c-container.json b/allure-results/aeecdd85-f51f-4d6e-b79c-0e705739353c-container.json new file mode 100644 index 0000000..b4ecabc --- /dev/null +++ b/allure-results/aeecdd85-f51f-4d6e-b79c-0e705739353c-container.json @@ -0,0 +1 @@ +{"uuid": "11d8217b-6c8f-4dec-bc42-9038cc6d6fd8", "befores": [{"name": "product_data", "status": "passed", "start": 1785046550958, "stop": 1785046550958}], "afters": [{"name": "product_data::", "start": 1785046556043}], "start": 1785046550958, "stop": 1785046556043} \ No newline at end of file diff --git a/allure-results/af19325e-1919-49be-b634-dde9857f7d8d-container.json b/allure-results/af19325e-1919-49be-b634-dde9857f7d8d-container.json new file mode 100644 index 0000000..a1f9637 --- /dev/null +++ b/allure-results/af19325e-1919-49be-b634-dde9857f7d8d-container.json @@ -0,0 +1 @@ +{"uuid": "67227b8a-74ae-4b64-b6c2-bcd41b80c78f", "children": ["6f631202-9ba1-4462-a836-a396d11796ce"], "befores": [{"name": "context", "status": "passed", "start": 1785046659683, "stop": 1785046659689}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046664016, "stop": 1785046664020}, {"name": "context::", "start": 1785046664020}], "start": 1785046659683, "stop": 1785046664020} \ No newline at end of file diff --git a/allure-results/af58d0d1-fa9d-4dc9-ae84-c82f32f47c46-result.json b/allure-results/af58d0d1-fa9d-4dc9-ae84-c82f32f47c46-result.json new file mode 100644 index 0000000..6b6ad52 --- /dev/null +++ b/allure-results/af58d0d1-fa9d-4dc9-ae84-c82f32f47c46-result.json @@ -0,0 +1 @@ +{"name": "Verify valid user can login successfully", "status": "passed", "description": "Verify that a valid user can successfully log into the SauceDemo application.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046561110, "stop": 1785046564060}, {"name": "Retrieve credentials for valid_problem_user", "status": "passed", "start": 1785046564060, "stop": 1785046564060}, {"name": "Login with user: valid_problem_user", "status": "passed", "start": 1785046564060, "stop": 1785046566308}, {"name": "Verify user is successfully logged in", "status": "passed", "start": 1785046566308, "stop": 1785046566308}], "attachments": [{"name": "log", "source": "2cacc41a-8390-48de-a568-08f05f5c5ecd-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "2966539b-65de-4154-9796-394a75fecd5e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "user_data", "value": "{'test_id': 'valid_problem_user', 'username': 'problem_user', 'password': 'secret_sauce', 'expected_url': '/inventory.html'}"}], "start": 1785046561110, "stop": 1785046566308, "uuid": "09710e12-8b19-4e64-b3ea-2fdfc88b8550", "historyId": "aca841c8f7f0db40fe9fa7747c8f0e92", "testCaseId": "5ac5da8f801af0b6d14e8acfcb100ad8", "fullName": "tests.e2e.test_login#test_valid_login", "labels": [{"name": "severity", "value": "critical"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "feature", "value": "Authentication"}, {"name": "story", "value": "Valid User Login"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_login"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24862-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_login"}], "titlePath": ["tests", "e2e", "test_login.py"]} \ No newline at end of file diff --git a/allure-results/afd06bfd-aef5-4987-8a5b-c386437fa9de-container.json b/allure-results/afd06bfd-aef5-4987-8a5b-c386437fa9de-container.json new file mode 100644 index 0000000..4c954f5 --- /dev/null +++ b/allure-results/afd06bfd-aef5-4987-8a5b-c386437fa9de-container.json @@ -0,0 +1 @@ +{"uuid": "bc868eb1-d02c-4424-909e-08a424872a26", "befores": [{"name": "product_data", "status": "passed", "start": 1785046531517, "stop": 1785046531517}], "afters": [{"name": "product_data::", "start": 1785046541340}], "start": 1785046531517, "stop": 1785046541340} \ No newline at end of file diff --git a/allure-results/b0a96baa-dad2-4852-910f-b71d323ac6e1-container.json b/allure-results/b0a96baa-dad2-4852-910f-b71d323ac6e1-container.json new file mode 100644 index 0000000..0f240dc --- /dev/null +++ b/allure-results/b0a96baa-dad2-4852-910f-b71d323ac6e1-container.json @@ -0,0 +1 @@ +{"uuid": "34c20db1-3fce-48a6-bb35-92dd008f17b8", "children": ["a65284eb-f9e8-486d-a633-1e8421bfe966", "c9c0a217-81ab-4412-91e7-a15d43ad89da", "145a497d-6f48-420a-9fd1-2f56c44bc698", "4e88716d-52cc-4fea-9574-95e7faf1e695", "2d455068-c2f5-4129-b34e-417744b6c66c", "17c614d7-d40e-4551-b15f-57b2a9a06a9a", "4e1c0964-f4ed-4046-a82a-b347f5d364f7", "8fc94b75-b471-493d-b38c-f951a707e526", "a7dc1a23-738b-4036-8f18-0e6623efebef", "492635eb-194d-4f06-90cd-ea645ee64994", "862d641e-2e12-4162-9022-f13ffac6e216", "61f568d3-10a2-421a-bf23-0c7ee1b84fc1", "fa8ddc56-d8d7-455f-af79-65d39d887c72", "f412bdd1-455f-4d18-b998-508aa34153e2", "af4d3119-cd92-4120-8904-f6e1caa92523"], "befores": [{"name": "pytestconfig", "status": "passed", "start": 1785046621136, "stop": 1785046621136}], "afters": [{"name": "pytestconfig::", "start": 1785046678420}], "start": 1785046621136, "stop": 1785046678420} \ No newline at end of file diff --git a/allure-results/b0cd26a4-d5c4-40ce-8b71-16d1a60fbe99-container.json b/allure-results/b0cd26a4-d5c4-40ce-8b71-16d1a60fbe99-container.json new file mode 100644 index 0000000..512ecf5 --- /dev/null +++ b/allure-results/b0cd26a4-d5c4-40ce-8b71-16d1a60fbe99-container.json @@ -0,0 +1 @@ +{"uuid": "3c1de317-2a82-4518-84e0-cb580b50e5f7", "children": ["5a7d2265-bb99-408b-9ffd-9a42d5ddc311"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046556143, "stop": 1785046556143}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046561001, "stop": 1785046561001}, {"name": "capture_failure_artifacts::", "start": 1785046561001}], "start": 1785046556143, "stop": 1785046561001} \ No newline at end of file diff --git a/allure-results/b273d538-ed6b-4c24-af62-1070a15e2f71-container.json b/allure-results/b273d538-ed6b-4c24-af62-1070a15e2f71-container.json new file mode 100644 index 0000000..f1cba6e --- /dev/null +++ b/allure-results/b273d538-ed6b-4c24-af62-1070a15e2f71-container.json @@ -0,0 +1 @@ +{"uuid": "ac70f96b-915e-48f0-b766-d815ea90d8ac", "children": ["beb43a4b-8fbb-47c9-9bc3-71bbd039b1e5", "2ec259d1-7b8f-4a71-b2c7-6767abb2178a", "1074506d-17b2-43e1-bf42-23dc3240eb14", "063320be-e436-4d48-a5ef-51c8bd21ff40", "5c426436-4bd8-47eb-8bf8-41e7dce11af1", "33d312a9-c635-4111-8c95-c10a76c098bc", "8c2f2a84-f81c-41c5-b5fc-ab5e5a2d31a0", "304c93db-f7dd-4906-a92d-1a02bc8f2f20", "6864d31d-f43b-4000-ab82-b03f6bcba619", "3066e1cd-8d5e-4fdb-b327-8dfcd432565c", "f6e3505e-7dd3-4cfc-8a90-14eac04d4dcf", "3908cf82-bf59-4a87-8bfe-25ced46d66c8", "aa5fb6e8-5c70-4242-afd1-78de14bddaf7", "01701ce7-fb05-4767-992e-9246c52fd29d"], "befores": [{"name": "playwright", "status": "passed", "start": 1785046499277, "stop": 1785046499398}], "afters": [{"name": "playwright::1", "status": "passed", "start": 1785046571455, "stop": 1785046571461}, {"name": "playwright::", "start": 1785046571461}], "start": 1785046499277, "stop": 1785046571461} \ No newline at end of file diff --git a/allure-results/b366ed81-2c9e-4b7f-a41b-b2e2e665c6b4-container.json b/allure-results/b366ed81-2c9e-4b7f-a41b-b2e2e665c6b4-container.json new file mode 100644 index 0000000..7b67fa8 --- /dev/null +++ b/allure-results/b366ed81-2c9e-4b7f-a41b-b2e2e665c6b4-container.json @@ -0,0 +1 @@ +{"uuid": "24bd5865-0134-4a74-abde-e59e8920709b", "children": ["3d40d7cb-6f90-48eb-8b7e-167dbd560241"], "befores": [{"name": "context", "status": "passed", "start": 1785046668710, "stop": 1785046668714}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046672239, "stop": 1785046672243}, {"name": "context::", "start": 1785046672243}], "start": 1785046668710, "stop": 1785046672243} \ No newline at end of file diff --git a/allure-results/b37f56da-cfac-4967-986a-907481e2d8e8-container.json b/allure-results/b37f56da-cfac-4967-986a-907481e2d8e8-container.json new file mode 100644 index 0000000..e8200a4 --- /dev/null +++ b/allure-results/b37f56da-cfac-4967-986a-907481e2d8e8-container.json @@ -0,0 +1 @@ +{"uuid": "f000ed4b-9f41-4009-a9af-ce399f267b05", "children": ["09710e12-8b19-4e64-b3ea-2fdfc88b8550"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046561110, "stop": 1785046561110}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046566310, "stop": 1785046566310}, {"name": "capture_failure_artifacts::", "start": 1785046566310}], "start": 1785046561110, "stop": 1785046566310} \ No newline at end of file diff --git a/allure-results/b385d002-854a-4469-b0dd-be998fbca306-container.json b/allure-results/b385d002-854a-4469-b0dd-be998fbca306-container.json new file mode 100644 index 0000000..0e9ebdc --- /dev/null +++ b/allure-results/b385d002-854a-4469-b0dd-be998fbca306-container.json @@ -0,0 +1 @@ +{"uuid": "6eb98bbd-3494-40bf-a337-adbbe1d91297", "befores": [{"name": "user_data", "status": "passed", "start": 1785046664055, "stop": 1785046664055}], "afters": [{"name": "user_data::", "start": 1785046668695}], "start": 1785046664055, "stop": 1785046668695} \ No newline at end of file diff --git a/allure-results/b4867927-ba36-4bc2-84be-503b476a18c1-container.json b/allure-results/b4867927-ba36-4bc2-84be-503b476a18c1-container.json new file mode 100644 index 0000000..7aa0701 --- /dev/null +++ b/allure-results/b4867927-ba36-4bc2-84be-503b476a18c1-container.json @@ -0,0 +1 @@ +{"uuid": "634a3233-b1f1-4896-93dd-c90e2f191b17", "children": ["a65284eb-f9e8-486d-a633-1e8421bfe966"], "befores": [{"name": "page", "status": "passed", "start": 1785046623980, "stop": 1785046624022}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046625504, "stop": 1785046625512}, {"name": "page::", "start": 1785046625512}], "start": 1785046623980, "stop": 1785046625512} \ No newline at end of file diff --git a/allure-results/b49bc1c4-1014-49d0-b499-7e1f8b54039d-container.json b/allure-results/b49bc1c4-1014-49d0-b499-7e1f8b54039d-container.json new file mode 100644 index 0000000..e796db0 --- /dev/null +++ b/allure-results/b49bc1c4-1014-49d0-b499-7e1f8b54039d-container.json @@ -0,0 +1 @@ +{"uuid": "68c9e1ea-4986-4e4d-bd92-cc2bfe7a94f1", "children": ["af4d3119-cd92-4120-8904-f6e1caa92523"], "befores": [{"name": "context", "status": "passed", "start": 1785046678361, "stop": 1785046678365}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046678391, "stop": 1785046678393}, {"name": "context::", "start": 1785046678393}], "start": 1785046678361, "stop": 1785046678393} \ No newline at end of file diff --git a/allure-results/b4bd80ca-a981-45d4-af8c-098cbc55e65e-container.json b/allure-results/b4bd80ca-a981-45d4-af8c-098cbc55e65e-container.json new file mode 100644 index 0000000..34ca2a5 --- /dev/null +++ b/allure-results/b4bd80ca-a981-45d4-af8c-098cbc55e65e-container.json @@ -0,0 +1 @@ +{"uuid": "5df4c9bf-3a18-404e-9d57-9430a760d436", "children": ["09710e12-8b19-4e64-b3ea-2fdfc88b8550"], "befores": [{"name": "page", "status": "passed", "start": 1785046561039, "stop": 1785046561110}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046566311, "stop": 1785046566320}, {"name": "page::", "start": 1785046566320}], "start": 1785046561039, "stop": 1785046566320} \ No newline at end of file diff --git a/allure-results/b5c0e39e-9c1e-479c-90b1-d588fb272ad5-container.json b/allure-results/b5c0e39e-9c1e-479c-90b1-d588fb272ad5-container.json new file mode 100644 index 0000000..458aab9 --- /dev/null +++ b/allure-results/b5c0e39e-9c1e-479c-90b1-d588fb272ad5-container.json @@ -0,0 +1 @@ +{"uuid": "320a20cf-5d6e-47e5-aa05-79da91bfb7ca", "children": ["5c426436-4bd8-47eb-8bf8-41e7dce11af1"], "befores": [{"name": "context", "status": "passed", "start": 1785046541370, "stop": 1785046541376}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046550890, "stop": 1785046550900}, {"name": "context::", "start": 1785046550900}], "start": 1785046541370, "stop": 1785046550900} \ No newline at end of file diff --git a/allure-results/b63e3268-390d-4929-86e5-e5156561253b-container.json b/allure-results/b63e3268-390d-4929-86e5-e5156561253b-container.json new file mode 100644 index 0000000..219be94 --- /dev/null +++ b/allure-results/b63e3268-390d-4929-86e5-e5156561253b-container.json @@ -0,0 +1 @@ +{"uuid": "e910c986-71ec-490d-ac5d-9b8b6719a002", "children": ["af4d3119-cd92-4120-8904-f6e1caa92523"], "befores": [{"name": "page", "status": "passed", "start": 1785046678365, "stop": 1785046678388}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046678389, "stop": 1785046678391}, {"name": "page::", "start": 1785046678391}], "start": 1785046678365, "stop": 1785046678391} \ No newline at end of file diff --git a/allure-results/b6536439-0fc8-48ad-ab40-8e1cd7e1e782-container.json b/allure-results/b6536439-0fc8-48ad-ab40-8e1cd7e1e782-container.json new file mode 100644 index 0000000..590ba24 --- /dev/null +++ b/allure-results/b6536439-0fc8-48ad-ab40-8e1cd7e1e782-container.json @@ -0,0 +1 @@ +{"uuid": "5565425b-d756-4b0e-8b6b-bdc5bc3f95f8", "children": ["33d312a9-c635-4111-8c95-c10a76c098bc"], "befores": [{"name": "context", "status": "passed", "start": 1785046550903, "stop": 1785046550912}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046561233, "stop": 1785046561250}, {"name": "context::", "start": 1785046561250}], "start": 1785046550903, "stop": 1785046561250} \ No newline at end of file diff --git a/allure-results/b7686fd7-5458-4976-9b6c-087f8baeaceb-container.json b/allure-results/b7686fd7-5458-4976-9b6c-087f8baeaceb-container.json new file mode 100644 index 0000000..cb6c489 --- /dev/null +++ b/allure-results/b7686fd7-5458-4976-9b6c-087f8baeaceb-container.json @@ -0,0 +1 @@ +{"uuid": "fb130ffb-b19b-4d87-929b-7b5efe270c65", "children": ["beb43a4b-8fbb-47c9-9bc3-71bbd039b1e5"], "befores": [{"name": "page", "status": "passed", "start": 1785046499699, "stop": 1785046499925}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046504556, "stop": 1785046504561}, {"name": "page::", "start": 1785046504561}], "start": 1785046499699, "stop": 1785046504561} \ No newline at end of file diff --git a/allure-results/b8319054-3bfd-4a07-80c4-bb3b3eb438bf-container.json b/allure-results/b8319054-3bfd-4a07-80c4-bb3b3eb438bf-container.json new file mode 100644 index 0000000..868a4d6 --- /dev/null +++ b/allure-results/b8319054-3bfd-4a07-80c4-bb3b3eb438bf-container.json @@ -0,0 +1 @@ +{"uuid": "c1287225-e92c-4f61-8ea1-fb6b78867127", "children": ["ad62a26a-de9f-4a17-966b-deaeae749865"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046499880, "stop": 1785046499880}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046508306, "stop": 1785046508306}, {"name": "capture_failure_artifacts::", "start": 1785046508306}], "start": 1785046499880, "stop": 1785046508306} \ No newline at end of file diff --git a/allure-results/b9e0a176-f7e6-4a50-b830-c173607aa421-container.json b/allure-results/b9e0a176-f7e6-4a50-b830-c173607aa421-container.json new file mode 100644 index 0000000..d370090 --- /dev/null +++ b/allure-results/b9e0a176-f7e6-4a50-b830-c173607aa421-container.json @@ -0,0 +1 @@ +{"uuid": "dd85b581-0385-4777-9792-24bc3b73a635", "children": ["ad62a26a-de9f-4a17-966b-deaeae749865", "db8c0ef2-f2c6-495f-93ef-c86d16fcd74a", "ba10b5d3-8199-4902-997d-83f59149a95d", "dda59aea-654c-4c87-b58c-1aa7f06765a4", "119e185c-2a13-4876-b36e-f79c684e70e8", "55b69fcb-b0dd-4d1c-90cc-617c12dfd925", "5a7d2265-bb99-408b-9ffd-9a42d5ddc311", "09710e12-8b19-4e64-b3ea-2fdfc88b8550", "92840d7a-2565-4d1d-b5ec-9ec7ac9a9339", "b4f4a2f5-bf6e-44d2-b8b0-0297c5a84f76"], "befores": [{"name": "playwright", "status": "passed", "start": 1785046499277, "stop": 1785046499398}], "afters": [{"name": "playwright::1", "status": "passed", "start": 1785046579021, "stop": 1785046579028}, {"name": "playwright::", "start": 1785046579028}], "start": 1785046499277, "stop": 1785046579028} \ No newline at end of file diff --git a/allure-results/bc6024bc-f471-4092-a5ee-5aea1488f5b7-container.json b/allure-results/bc6024bc-f471-4092-a5ee-5aea1488f5b7-container.json new file mode 100644 index 0000000..7e1847d --- /dev/null +++ b/allure-results/bc6024bc-f471-4092-a5ee-5aea1488f5b7-container.json @@ -0,0 +1 @@ +{"uuid": "9660327c-91b9-41cd-bd4b-0d90ccf8dd99", "children": ["4e88716d-52cc-4fea-9574-95e7faf1e695"], "befores": [{"name": "context", "status": "passed", "start": 1785046636712, "stop": 1785046636718}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046646033, "stop": 1785046646036}, {"name": "context::", "start": 1785046646036}], "start": 1785046636712, "stop": 1785046646037} \ No newline at end of file diff --git a/allure-results/bea48022-a92c-488a-a507-d455e026eb12-container.json b/allure-results/bea48022-a92c-488a-a507-d455e026eb12-container.json new file mode 100644 index 0000000..e15c3ac --- /dev/null +++ b/allure-results/bea48022-a92c-488a-a507-d455e026eb12-container.json @@ -0,0 +1 @@ +{"uuid": "c1277480-ea56-47e7-98e0-a7351bdb4959", "children": ["1074506d-17b2-43e1-bf42-23dc3240eb14"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046510996, "stop": 1785046510996}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046531402, "stop": 1785046531403}, {"name": "capture_failure_artifacts::", "start": 1785046531403}], "start": 1785046510996, "stop": 1785046531403} \ No newline at end of file diff --git a/allure-results/beffd0ab-32c5-4fb1-a910-b6d33da6675f-container.json b/allure-results/beffd0ab-32c5-4fb1-a910-b6d33da6675f-container.json new file mode 100644 index 0000000..96a916b --- /dev/null +++ b/allure-results/beffd0ab-32c5-4fb1-a910-b6d33da6675f-container.json @@ -0,0 +1 @@ +{"uuid": "f2a93a5d-d084-4c56-88e9-7de7e1b4224a", "children": ["ba10b5d3-8199-4902-997d-83f59149a95d"], "befores": [{"name": "page", "status": "passed", "start": 1785046517922, "stop": 1785046518010}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046535863, "stop": 1785046535869}, {"name": "page::", "start": 1785046535869}], "start": 1785046517922, "stop": 1785046535869} \ No newline at end of file diff --git a/allure-results/bf6ee23d-8e90-44e2-8d3c-e41d1cd423d4-attachment.txt b/allure-results/bf6ee23d-8e90-44e2-8d3c-e41d1cd423d4-attachment.txt new file mode 100644 index 0000000..526f141 --- /dev/null +++ b/allure-results/bf6ee23d-8e90-44e2-8d3c-e41d1cd423d4-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:45:42,705 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:45:44,946 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:45:44,951 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:45:44,951 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bike Light +2026-07-26 11:45:45,669 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bike Light diff --git a/allure-results/bf92dd45-eabd-48fe-8854-38db3729c405-result.json b/allure-results/bf92dd45-eabd-48fe-8854-38db3729c405-result.json new file mode 100644 index 0000000..2fa77bb --- /dev/null +++ b/allure-results/bf92dd45-eabd-48fe-8854-38db3729c405-result.json @@ -0,0 +1 @@ +{"name": "Verify checkout flow - Sauce Labs Backpack - customer_02", "status": "passed", "description": "Verify that a user can successfully complete the checkout flow using different products and customer information.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046638864, "stop": 1785046640910}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046640910, "stop": 1785046640910}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046640910, "stop": 1785046643134}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046643134, "stop": 1785046643138}, {"name": "Retrieve product name: Sauce Labs Backpack", "status": "passed", "start": 1785046643138, "stop": 1785046643138}, {"name": "Add Sauce Labs Backpack to cart", "status": "passed", "start": 1785046643138, "stop": 1785046643860}, {"name": "Open shopping cart", "status": "passed", "start": 1785046643860, "stop": 1785046644580}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046644580, "stop": 1785046644580}, {"name": "Verify Sauce Labs Backpack is present in cart", "status": "passed", "start": 1785046644580, "stop": 1785046644585}, {"name": "Proceed to checkout", "status": "passed", "start": 1785046644585, "stop": 1785046645303}, {"name": "Verify checkout information page is loaded", "status": "passed", "start": 1785046645304, "stop": 1785046645304}, {"name": "Enter customer information for customer_02", "status": "passed", "start": 1785046645304, "stop": 1785046647438}, {"name": "Continue to checkout overview", "status": "passed", "start": 1785046647438, "stop": 1785046648164}, {"name": "Verify checkout overview page is loaded", "status": "passed", "start": 1785046648164, "stop": 1785046648164}, {"name": "Verify Sauce Labs Backpack is present in order", "status": "passed", "start": 1785046648164, "stop": 1785046648176}, {"name": "Complete the order", "status": "passed", "start": 1785046648176, "stop": 1785046648894}, {"name": "Verify order confirmation message", "status": "passed", "start": 1785046648894, "stop": 1785046648898}], "attachments": [{"name": "log", "source": "9a66c7ee-9425-4eb1-b7cf-7876592de690-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "5a94ddfb-8409-415f-a8af-1fe311d5331e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Backpack'}"}, {"name": "customer_data", "value": "{'test_id': 'customer_02', 'first_name': 'John', 'last_name': 'Doe', 'postal_code': '10001'}"}], "start": 1785046638864, "stop": 1785046648898, "uuid": "1203bebf-db2b-4e50-8e72-5e11e0144027", "historyId": "d2771f65d41fe100a4bf5ff3bc0d6185", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "feature", "value": "Checkout"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "story", "value": "Complete Product Checkout"}, {"name": "severity", "value": "critical"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25039-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/bfc6090a-05db-45cf-96b8-a32b27a27719-container.json b/allure-results/bfc6090a-05db-45cf-96b8-a32b27a27719-container.json new file mode 100644 index 0000000..4ecdd64 --- /dev/null +++ b/allure-results/bfc6090a-05db-45cf-96b8-a32b27a27719-container.json @@ -0,0 +1 @@ +{"uuid": "65bb71d7-e1ac-436e-bce4-de8673e33923", "children": ["dda59aea-654c-4c87-b58c-1aa7f06765a4"], "befores": [{"name": "context", "status": "passed", "start": 1785046535889, "stop": 1785046535896}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046545568, "stop": 1785046545587}, {"name": "context::", "start": 1785046545587}], "start": 1785046535889, "stop": 1785046545587} \ No newline at end of file diff --git a/allure-results/c09f8f5c-b50b-4b64-9fae-7f20ab4163eb-container.json b/allure-results/c09f8f5c-b50b-4b64-9fae-7f20ab4163eb-container.json new file mode 100644 index 0000000..fb2bfe7 --- /dev/null +++ b/allure-results/c09f8f5c-b50b-4b64-9fae-7f20ab4163eb-container.json @@ -0,0 +1 @@ +{"uuid": "0706bafc-a91e-4261-b771-b64132368b54", "children": ["c9c0a217-81ab-4412-91e7-a15d43ad89da"], "befores": [{"name": "context", "status": "passed", "start": 1785046625523, "stop": 1785046625531}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046631396, "stop": 1785046631401}, {"name": "context::", "start": 1785046631401}], "start": 1785046625523, "stop": 1785046631401} \ No newline at end of file diff --git a/allure-results/c1481226-98dd-470d-96cb-03d80d38926c-container.json b/allure-results/c1481226-98dd-470d-96cb-03d80d38926c-container.json new file mode 100644 index 0000000..f99ba1a --- /dev/null +++ b/allure-results/c1481226-98dd-470d-96cb-03d80d38926c-container.json @@ -0,0 +1 @@ +{"uuid": "01769639-c199-49a2-9ce6-32318d03b293", "befores": [{"name": "product_data", "status": "passed", "start": 1785046508411, "stop": 1785046508411}], "afters": [{"name": "product_data::", "start": 1785046517890}], "start": 1785046508411, "stop": 1785046517890} \ No newline at end of file diff --git a/allure-results/c14b4b05-abaf-4f0d-b75e-bbef065ce849-container.json b/allure-results/c14b4b05-abaf-4f0d-b75e-bbef065ce849-container.json new file mode 100644 index 0000000..c805678 --- /dev/null +++ b/allure-results/c14b4b05-abaf-4f0d-b75e-bbef065ce849-container.json @@ -0,0 +1 @@ +{"uuid": "56e190f7-541f-4664-a631-62008a6e81f6", "children": ["a65284eb-f9e8-486d-a633-1e8421bfe966", "c9c0a217-81ab-4412-91e7-a15d43ad89da", "145a497d-6f48-420a-9fd1-2f56c44bc698", "4e88716d-52cc-4fea-9574-95e7faf1e695", "2d455068-c2f5-4129-b34e-417744b6c66c", "17c614d7-d40e-4551-b15f-57b2a9a06a9a", "4e1c0964-f4ed-4046-a82a-b347f5d364f7", "8fc94b75-b471-493d-b38c-f951a707e526", "a7dc1a23-738b-4036-8f18-0e6623efebef", "492635eb-194d-4f06-90cd-ea645ee64994", "862d641e-2e12-4162-9022-f13ffac6e216", "61f568d3-10a2-421a-bf23-0c7ee1b84fc1", "fa8ddc56-d8d7-455f-af79-65d39d887c72", "f412bdd1-455f-4d18-b998-508aa34153e2", "af4d3119-cd92-4120-8904-f6e1caa92523"], "befores": [{"name": "browser_manager", "status": "passed", "start": 1785046621272, "stop": 1785046621272}], "afters": [{"name": "browser_manager::", "start": 1785046678414}], "start": 1785046621272, "stop": 1785046678414} \ No newline at end of file diff --git a/allure-results/c1704adc-04ac-40a3-81d8-10795d6633ec-result.json b/allure-results/c1704adc-04ac-40a3-81d8-10795d6633ec-result.json new file mode 100644 index 0000000..3f06378 --- /dev/null +++ b/allure-results/c1704adc-04ac-40a3-81d8-10795d6633ec-result.json @@ -0,0 +1 @@ +{"name": "test_timeout_configuration", "status": "passed", "start": 1785046571074, "stop": 1785046571074, "uuid": "f6e3505e-7dd3-4cfc-8a90-14eac04d4dcf", "historyId": "003fd2a3481b2aed0bbaf6ff2852624c", "testCaseId": "003fd2a3481b2aed0bbaf6ff2852624c", "fullName": "tests.unit.test_config_manager#test_timeout_configuration", "labels": [{"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/c2444c76-b91c-4a20-9f9d-f287a1a0534d-container.json b/allure-results/c2444c76-b91c-4a20-9f9d-f287a1a0534d-container.json new file mode 100644 index 0000000..36c4044 --- /dev/null +++ b/allure-results/c2444c76-b91c-4a20-9f9d-f287a1a0534d-container.json @@ -0,0 +1 @@ +{"uuid": "267faf3d-9ea6-4b7b-9750-6783cd71bfa2", "children": ["dda59aea-654c-4c87-b58c-1aa7f06765a4"], "befores": [{"name": "page", "status": "passed", "start": 1785046535896, "stop": 1785046535974}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046545563, "stop": 1785046545567}, {"name": "page::", "start": 1785046545567}], "start": 1785046535896, "stop": 1785046545567} \ No newline at end of file diff --git a/allure-results/c286532c-1676-448f-8be3-8539980368fb-container.json b/allure-results/c286532c-1676-448f-8be3-8539980368fb-container.json new file mode 100644 index 0000000..646d60e --- /dev/null +++ b/allure-results/c286532c-1676-448f-8be3-8539980368fb-container.json @@ -0,0 +1 @@ +{"uuid": "7bb5323a-9936-4dd1-bec5-294f8ce094a2", "children": ["fe8a7034-c964-4f6f-bbcc-d629e9fd399b", "c72a1e42-0398-455d-a621-ff093f5617eb", "1203bebf-db2b-4e50-8e72-5e11e0144027", "5df0b7cc-b4d7-444b-8430-12128401448a", "6f631202-9ba1-4462-a836-a396d11796ce"], "befores": [{"name": "test_data", "status": "passed", "start": 1785046623965, "stop": 1785046623966}], "afters": [{"name": "test_data::", "start": 1785046684717}], "start": 1785046623965, "stop": 1785046684717} \ No newline at end of file diff --git a/allure-results/c291c128-ba57-4e46-8b6c-67b77125b5fd-container.json b/allure-results/c291c128-ba57-4e46-8b6c-67b77125b5fd-container.json new file mode 100644 index 0000000..71e0bab --- /dev/null +++ b/allure-results/c291c128-ba57-4e46-8b6c-67b77125b5fd-container.json @@ -0,0 +1 @@ +{"uuid": "d61dd92e-0d4b-4f6a-9933-598836209d31", "befores": [{"name": "product_data", "status": "passed", "start": 1785046624022, "stop": 1785046624022}], "afters": [{"name": "product_data::", "start": 1785046629203}], "start": 1785046624022, "stop": 1785046629203} \ No newline at end of file diff --git a/allure-results/c33f1d74-70e3-485d-90c6-d4ecac7e406a-attachment.txt b/allure-results/c33f1d74-70e3-485d-90c6-d4ecac7e406a-attachment.txt new file mode 100644 index 0000000..f879cd4 --- /dev/null +++ b/allure-results/c33f1d74-70e3-485d-90c6-d4ecac7e406a-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bike Light +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bike Light \ No newline at end of file diff --git a/allure-results/c3e02154-0054-44f9-9082-ceef2b3904fb-result.json b/allure-results/c3e02154-0054-44f9-9082-ceef2b3904fb-result.json new file mode 100644 index 0000000..1dae567 --- /dev/null +++ b/allure-results/c3e02154-0054-44f9-9082-ceef2b3904fb-result.json @@ -0,0 +1 @@ +{"name": "Verify checkout flow - Sauce Labs Bolt T-Shirt - customer_01", "status": "passed", "description": "Verify that a user can successfully complete the checkout flow using different products and customer information.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046655409, "stop": 1785046656645}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046656645, "stop": 1785046656645}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046656645, "stop": 1785046658846}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046658846, "stop": 1785046658855}, {"name": "Retrieve product name: Sauce Labs Bolt T-Shirt", "status": "passed", "start": 1785046658855, "stop": 1785046658855}, {"name": "Add Sauce Labs Bolt T-Shirt to cart", "status": "passed", "start": 1785046658855, "stop": 1785046659580}, {"name": "Open shopping cart", "status": "passed", "start": 1785046659580, "stop": 1785046660310}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046660310, "stop": 1785046660310}, {"name": "Verify Sauce Labs Bolt T-Shirt is present in cart", "status": "passed", "start": 1785046660310, "stop": 1785046660313}, {"name": "Proceed to checkout", "status": "passed", "start": 1785046660313, "stop": 1785046661027}, {"name": "Verify checkout information page is loaded", "status": "passed", "start": 1785046661027, "stop": 1785046661027}, {"name": "Enter customer information for customer_01", "status": "passed", "start": 1785046661027, "stop": 1785046663170}, {"name": "Continue to checkout overview", "status": "passed", "start": 1785046663170, "stop": 1785046663901}, {"name": "Verify checkout overview page is loaded", "status": "passed", "start": 1785046663902, "stop": 1785046663902}, {"name": "Verify Sauce Labs Bolt T-Shirt is present in order", "status": "passed", "start": 1785046663902, "stop": 1785046663921}, {"name": "Complete the order", "status": "passed", "start": 1785046663921, "stop": 1785046664647}, {"name": "Verify order confirmation message", "status": "passed", "start": 1785046664647, "stop": 1785046664653}], "attachments": [{"name": "log", "source": "2798201e-dd4e-4b46-9075-8972a43a4660-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "6ac82eac-837f-4ade-8188-6a2600d83df5-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bolt T-Shirt'}"}, {"name": "customer_data", "value": "{'test_id': 'customer_01', 'first_name': 'Prateek', 'last_name': 'Dharwal', 'postal_code': '141001'}"}], "start": 1785046655409, "stop": 1785046664653, "uuid": "17c614d7-d40e-4551-b15f-57b2a9a06a9a", "historyId": "e791610d419bc78586376f4cc85a6d8b", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "severity", "value": "critical"}, {"name": "feature", "value": "Checkout"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "story", "value": "Complete Product Checkout"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/c481882c-eafc-453a-8488-90fc1f565f6c-attachment.txt b/allure-results/c481882c-eafc-453a-8488-90fc1f565f6c-attachment.txt new file mode 100644 index 0000000..ea0ccec --- /dev/null +++ b/allure-results/c481882c-eafc-453a-8488-90fc1f565f6c-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:47:27,350 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:29,568 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:47:29,578 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:47:29,578 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bike Light +2026-07-26 11:47:30,302 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bike Light diff --git a/allure-results/c4a8f70b-3b7c-435c-a344-60679c79ef17-result.json b/allure-results/c4a8f70b-3b7c-435c-a344-60679c79ef17-result.json new file mode 100644 index 0000000..fd7638b --- /dev/null +++ b/allure-results/c4a8f70b-3b7c-435c-a344-60679c79ef17-result.json @@ -0,0 +1 @@ +{"name": "test_timeout_configuration", "status": "passed", "start": 1785046678288, "stop": 1785046678288, "uuid": "61f568d3-10a2-421a-bf23-0c7ee1b84fc1", "historyId": "003fd2a3481b2aed0bbaf6ff2852624c", "testCaseId": "003fd2a3481b2aed0bbaf6ff2852624c", "fullName": "tests.unit.test_config_manager#test_timeout_configuration", "labels": [{"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/c7321442-f7ac-46b9-9381-3b4ff9e91520-container.json b/allure-results/c7321442-f7ac-46b9-9381-3b4ff9e91520-container.json new file mode 100644 index 0000000..065e5a1 --- /dev/null +++ b/allure-results/c7321442-f7ac-46b9-9381-3b4ff9e91520-container.json @@ -0,0 +1 @@ +{"uuid": "1bf12ded-ed17-4061-a49f-e9e2365d119c", "children": ["92840d7a-2565-4d1d-b5ec-9ec7ac9a9339"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046566445, "stop": 1785046566445}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046575182, "stop": 1785046575182}, {"name": "capture_failure_artifacts::", "start": 1785046575182}], "start": 1785046566445, "stop": 1785046575182} \ No newline at end of file diff --git a/allure-results/c93921a4-123c-4b97-aa28-a933f9b08a68-container.json b/allure-results/c93921a4-123c-4b97-aa28-a933f9b08a68-container.json new file mode 100644 index 0000000..fbcffe9 --- /dev/null +++ b/allure-results/c93921a4-123c-4b97-aa28-a933f9b08a68-container.json @@ -0,0 +1 @@ +{"uuid": "c0c40c0e-5281-4982-95ab-73c83a877157", "children": ["beb43a4b-8fbb-47c9-9bc3-71bbd039b1e5", "2ec259d1-7b8f-4a71-b2c7-6767abb2178a", "1074506d-17b2-43e1-bf42-23dc3240eb14", "063320be-e436-4d48-a5ef-51c8bd21ff40", "5c426436-4bd8-47eb-8bf8-41e7dce11af1", "33d312a9-c635-4111-8c95-c10a76c098bc", "8c2f2a84-f81c-41c5-b5fc-ab5e5a2d31a0", "304c93db-f7dd-4906-a92d-1a02bc8f2f20", "6864d31d-f43b-4000-ab82-b03f6bcba619", "3066e1cd-8d5e-4fdb-b327-8dfcd432565c", "f6e3505e-7dd3-4cfc-8a90-14eac04d4dcf", "3908cf82-bf59-4a87-8bfe-25ced46d66c8", "aa5fb6e8-5c70-4242-afd1-78de14bddaf7", "01701ce7-fb05-4767-992e-9246c52fd29d"], "befores": [{"name": "delete_output_dir", "status": "passed", "start": 1785046499277, "stop": 1785046499277}], "afters": [{"name": "delete_output_dir::", "start": 1785046571461}], "start": 1785046499277, "stop": 1785046571461} \ No newline at end of file diff --git a/allure-results/c9af6df0-d320-4caa-a222-b074168e4267-container.json b/allure-results/c9af6df0-d320-4caa-a222-b074168e4267-container.json new file mode 100644 index 0000000..28a12f9 --- /dev/null +++ b/allure-results/c9af6df0-d320-4caa-a222-b074168e4267-container.json @@ -0,0 +1 @@ +{"uuid": "fde49773-df44-46cd-9bca-32e5be31f705", "children": ["bf9c4c05-9138-4d59-ab12-782895346ac8"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046664055, "stop": 1785046664055}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046668695, "stop": 1785046668695}, {"name": "capture_failure_artifacts::", "start": 1785046668695}], "start": 1785046664055, "stop": 1785046668695} \ No newline at end of file diff --git a/allure-results/ca24b80c-05a8-456a-9e15-3173d951e8e0-container.json b/allure-results/ca24b80c-05a8-456a-9e15-3173d951e8e0-container.json new file mode 100644 index 0000000..45436d1 --- /dev/null +++ b/allure-results/ca24b80c-05a8-456a-9e15-3173d951e8e0-container.json @@ -0,0 +1 @@ +{"uuid": "3b1f2e45-2865-4aa4-96d8-36ff5ddac1de", "children": ["a7dc1a23-738b-4036-8f18-0e6623efebef"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046674350, "stop": 1785046674350}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046678181, "stop": 1785046678181}, {"name": "capture_failure_artifacts::", "start": 1785046678181}], "start": 1785046674350, "stop": 1785046678181} \ No newline at end of file diff --git a/allure-results/ca71aea3-0e0c-4992-baef-56ff03bb17d7-container.json b/allure-results/ca71aea3-0e0c-4992-baef-56ff03bb17d7-container.json new file mode 100644 index 0000000..2d6fa52 --- /dev/null +++ b/allure-results/ca71aea3-0e0c-4992-baef-56ff03bb17d7-container.json @@ -0,0 +1 @@ +{"uuid": "91c90e60-2f4f-435a-9008-1fd77dedbce2", "children": ["a65284eb-f9e8-486d-a633-1e8421bfe966"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046624022, "stop": 1785046624022}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046625504, "stop": 1785046625504}, {"name": "capture_failure_artifacts::", "start": 1785046625504}], "start": 1785046624022, "stop": 1785046625504} \ No newline at end of file diff --git a/allure-results/cb397152-3da6-439a-9e84-6c13d527dfcd-container.json b/allure-results/cb397152-3da6-439a-9e84-6c13d527dfcd-container.json new file mode 100644 index 0000000..42a3d87 --- /dev/null +++ b/allure-results/cb397152-3da6-439a-9e84-6c13d527dfcd-container.json @@ -0,0 +1 @@ +{"uuid": "1591e9c7-2642-4e49-b172-a758df7c1cda", "children": ["862d641e-2e12-4162-9022-f13ffac6e216"], "befores": [{"name": "page", "status": "passed", "start": 1785046678228, "stop": 1785046678253}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046678254, "stop": 1785046678256}, {"name": "page::", "start": 1785046678256}], "start": 1785046678228, "stop": 1785046678256} \ No newline at end of file diff --git a/allure-results/cba19dd6-bb37-40bf-b1c4-f39add9aceea-container.json b/allure-results/cba19dd6-bb37-40bf-b1c4-f39add9aceea-container.json new file mode 100644 index 0000000..d0a94ed --- /dev/null +++ b/allure-results/cba19dd6-bb37-40bf-b1c4-f39add9aceea-container.json @@ -0,0 +1 @@ +{"uuid": "1a728208-71aa-4d2f-99f5-b731a04c39ab", "befores": [{"name": "customer_data", "status": "passed", "start": 1785046655409, "stop": 1785046655409}], "afters": [{"name": "customer_data::", "start": 1785046664653}], "start": 1785046655409, "stop": 1785046664653} \ No newline at end of file diff --git a/allure-results/cc7552aa-cdcf-44a7-b74f-a21ddef01e78-container.json b/allure-results/cc7552aa-cdcf-44a7-b74f-a21ddef01e78-container.json new file mode 100644 index 0000000..253dd3e --- /dev/null +++ b/allure-results/cc7552aa-cdcf-44a7-b74f-a21ddef01e78-container.json @@ -0,0 +1 @@ +{"uuid": "f2cac7c4-9473-4c65-86d3-8e7b79985201", "children": ["5df0b7cc-b4d7-444b-8430-12128401448a"], "befores": [{"name": "page", "status": "passed", "start": 1785046648915, "stop": 1785046648940}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046659671, "stop": 1785046659675}, {"name": "page::", "start": 1785046659675}], "start": 1785046648915, "stop": 1785046659675} \ No newline at end of file diff --git a/allure-results/cdeacea8-b5b7-4f54-819c-eebc2d541d9e-container.json b/allure-results/cdeacea8-b5b7-4f54-819c-eebc2d541d9e-container.json new file mode 100644 index 0000000..5884e8c --- /dev/null +++ b/allure-results/cdeacea8-b5b7-4f54-819c-eebc2d541d9e-container.json @@ -0,0 +1 @@ +{"uuid": "8ec946a1-d509-4930-922a-f6b57a6dae59", "children": ["c72a1e42-0398-455d-a621-ff093f5617eb"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046629251, "stop": 1785046629251}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046638818, "stop": 1785046638818}, {"name": "capture_failure_artifacts::", "start": 1785046638818}], "start": 1785046629251, "stop": 1785046638818} \ No newline at end of file diff --git a/allure-results/ce1aabed-da28-4bf4-993c-1010fb4ddd8e-container.json b/allure-results/ce1aabed-da28-4bf4-993c-1010fb4ddd8e-container.json new file mode 100644 index 0000000..10ab4b9 --- /dev/null +++ b/allure-results/ce1aabed-da28-4bf4-993c-1010fb4ddd8e-container.json @@ -0,0 +1 @@ +{"uuid": "c0319570-8f9c-4ce9-8466-652e5317da82", "children": ["6864d31d-f43b-4000-ab82-b03f6bcba619"], "befores": [{"name": "page", "status": "passed", "start": 1785046570810, "stop": 1785046570887}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046570888, "stop": 1785046570892}, {"name": "page::", "start": 1785046570892}], "start": 1785046570810, "stop": 1785046570892} \ No newline at end of file diff --git a/allure-results/ce67c867-22f6-4b52-9d73-1f87577746b9-container.json b/allure-results/ce67c867-22f6-4b52-9d73-1f87577746b9-container.json new file mode 100644 index 0000000..16dab71 --- /dev/null +++ b/allure-results/ce67c867-22f6-4b52-9d73-1f87577746b9-container.json @@ -0,0 +1 @@ +{"uuid": "e4451372-a10f-4157-a069-84969849682a", "befores": [{"name": "product_data", "status": "passed", "start": 1785046631440, "stop": 1785046631440}], "afters": [{"name": "product_data::", "start": 1785046636701}], "start": 1785046631440, "stop": 1785046636701} \ No newline at end of file diff --git a/allure-results/cfe59006-49ea-4fc1-aff3-50f4f69debd6-container.json b/allure-results/cfe59006-49ea-4fc1-aff3-50f4f69debd6-container.json new file mode 100644 index 0000000..a0708cf --- /dev/null +++ b/allure-results/cfe59006-49ea-4fc1-aff3-50f4f69debd6-container.json @@ -0,0 +1 @@ +{"uuid": "bf4f3933-cdd2-4eb3-af99-c8f981ac6e3f", "befores": [{"name": "user_data", "status": "passed", "start": 1785046566445, "stop": 1785046566445}], "afters": [{"name": "user_data::", "start": 1785046575181}], "start": 1785046566445, "stop": 1785046575181} \ No newline at end of file diff --git a/allure-results/d15a310b-f485-4eb3-b841-3a0a9ba9316d-attachment.txt b/allure-results/d15a310b-f485-4eb3-b841-3a0a9ba9316d-attachment.txt new file mode 100644 index 0000000..16c8e61 --- /dev/null +++ b/allure-results/d15a310b-f485-4eb3-b841-3a0a9ba9316d-attachment.txt @@ -0,0 +1,2 @@ +2026-07-26 11:48:02,495 | INFO | pages.login_page | Attempting login with username: locked_out_user +2026-07-26 11:48:04,700 | INFO | pages.login_page | Login action completed for username locked_out_user diff --git a/allure-results/d3c0ffd4-93ea-44dc-875e-57f159f287c0-attachment.txt b/allure-results/d3c0ffd4-93ea-44dc-875e-57f159f287c0-attachment.txt new file mode 100644 index 0000000..1695335 --- /dev/null +++ b/allure-results/d3c0ffd4-93ea-44dc-875e-57f159f287c0-attachment.txt @@ -0,0 +1,2 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user \ No newline at end of file diff --git a/allure-results/d3d169a1-b2b4-4bb8-85da-d7295efef122-container.json b/allure-results/d3d169a1-b2b4-4bb8-85da-d7295efef122-container.json new file mode 100644 index 0000000..d4076e1 --- /dev/null +++ b/allure-results/d3d169a1-b2b4-4bb8-85da-d7295efef122-container.json @@ -0,0 +1 @@ +{"uuid": "ef1671a3-806a-47e7-81cc-280f31cd8419", "children": ["beb43a4b-8fbb-47c9-9bc3-71bbd039b1e5", "2ec259d1-7b8f-4a71-b2c7-6767abb2178a", "1074506d-17b2-43e1-bf42-23dc3240eb14", "063320be-e436-4d48-a5ef-51c8bd21ff40", "5c426436-4bd8-47eb-8bf8-41e7dce11af1", "33d312a9-c635-4111-8c95-c10a76c098bc", "8c2f2a84-f81c-41c5-b5fc-ab5e5a2d31a0", "304c93db-f7dd-4906-a92d-1a02bc8f2f20", "6864d31d-f43b-4000-ab82-b03f6bcba619", "3066e1cd-8d5e-4fdb-b327-8dfcd432565c", "f6e3505e-7dd3-4cfc-8a90-14eac04d4dcf", "3908cf82-bf59-4a87-8bfe-25ced46d66c8", "aa5fb6e8-5c70-4242-afd1-78de14bddaf7", "01701ce7-fb05-4767-992e-9246c52fd29d"], "befores": [{"name": "browser_manager", "status": "passed", "start": 1785046499399, "stop": 1785046499399}], "afters": [{"name": "browser_manager::", "start": 1785046571455}], "start": 1785046499399, "stop": 1785046571455} \ No newline at end of file diff --git a/allure-results/d41d30f7-b015-48ba-ae40-c389dc86df03-container.json b/allure-results/d41d30f7-b015-48ba-ae40-c389dc86df03-container.json new file mode 100644 index 0000000..3ad2c11 --- /dev/null +++ b/allure-results/d41d30f7-b015-48ba-ae40-c389dc86df03-container.json @@ -0,0 +1 @@ +{"uuid": "a01b84c4-6f93-48a7-b54f-14cd5f528bb2", "children": ["3066e1cd-8d5e-4fdb-b327-8dfcd432565c"], "befores": [{"name": "context", "status": "passed", "start": 1785046570907, "stop": 1785046570912}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046570984, "stop": 1785046570994}, {"name": "context::", "start": 1785046570994}], "start": 1785046570907, "stop": 1785046570994} \ No newline at end of file diff --git a/allure-results/d46528cf-5c7b-42ce-9c2d-d85a3ef57423-attachment.txt b/allure-results/d46528cf-5c7b-42ce-9c2d-d85a3ef57423-attachment.txt new file mode 100644 index 0000000..0c575f1 --- /dev/null +++ b/allure-results/d46528cf-5c7b-42ce-9c2d-d85a3ef57423-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:45:27,594 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:45:29,854 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:45:29,865 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:45:29,865 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Backpack +2026-07-26 11:45:30,593 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Backpack diff --git a/allure-results/d495daff-73ed-4860-90ec-4eb296ab3103-container.json b/allure-results/d495daff-73ed-4860-90ec-4eb296ab3103-container.json new file mode 100644 index 0000000..9f82474 --- /dev/null +++ b/allure-results/d495daff-73ed-4860-90ec-4eb296ab3103-container.json @@ -0,0 +1 @@ +{"uuid": "117ceaca-d7df-410c-bde1-8ef3952930a3", "befores": [{"name": "product_data", "status": "passed", "start": 1785046556143, "stop": 1785046556143}], "afters": [{"name": "product_data::", "start": 1785046561000}], "start": 1785046556143, "stop": 1785046561000} \ No newline at end of file diff --git a/allure-results/d634040a-fc28-4f12-8cd5-73cb896b1979-container.json b/allure-results/d634040a-fc28-4f12-8cd5-73cb896b1979-container.json new file mode 100644 index 0000000..7670e10 --- /dev/null +++ b/allure-results/d634040a-fc28-4f12-8cd5-73cb896b1979-container.json @@ -0,0 +1 @@ +{"uuid": "884003cc-edd8-48ac-b8eb-dc4ecff0e244", "children": ["8fc94b75-b471-493d-b38c-f951a707e526"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046669452, "stop": 1785046669452}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046674301, "stop": 1785046674301}, {"name": "capture_failure_artifacts::", "start": 1785046674301}], "start": 1785046669452, "stop": 1785046674301} \ No newline at end of file diff --git a/allure-results/d7e0f70a-06b6-4795-9540-830c96f7b0aa-container.json b/allure-results/d7e0f70a-06b6-4795-9540-830c96f7b0aa-container.json new file mode 100644 index 0000000..6e408f3 --- /dev/null +++ b/allure-results/d7e0f70a-06b6-4795-9540-830c96f7b0aa-container.json @@ -0,0 +1 @@ +{"uuid": "9cb059f0-a605-4440-a73e-23f378caa341", "befores": [{"name": "product_data", "status": "passed", "start": 1785046504699, "stop": 1785046504699}], "afters": [{"name": "product_data::", "start": 1785046510879}], "start": 1785046504699, "stop": 1785046510879} \ No newline at end of file diff --git a/allure-results/d862edeb-9b69-4505-a80e-0a96a06573c9-attachment.txt b/allure-results/d862edeb-9b69-4505-a80e-0a96a06573c9-attachment.txt new file mode 100644 index 0000000..8ee3019 --- /dev/null +++ b/allure-results/d862edeb-9b69-4505-a80e-0a96a06573c9-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:47:18,016 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:20,236 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:47:20,241 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:47:20,241 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bike Light +2026-07-26 11:47:20,959 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bike Light diff --git a/allure-results/d8b74c5a-b587-4812-bd77-76b32c615231-container.json b/allure-results/d8b74c5a-b587-4812-bd77-76b32c615231-container.json new file mode 100644 index 0000000..53a6fb7 --- /dev/null +++ b/allure-results/d8b74c5a-b587-4812-bd77-76b32c615231-container.json @@ -0,0 +1 @@ +{"uuid": "d4219e46-4e6f-4cb5-8a73-927d85eb16e1", "children": ["119e185c-2a13-4876-b36e-f79c684e70e8"], "befores": [{"name": "page", "status": "passed", "start": 1785046545594, "stop": 1785046545668}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046550849, "stop": 1785046550855}, {"name": "page::", "start": 1785046550855}], "start": 1785046545594, "stop": 1785046550855} \ No newline at end of file diff --git a/allure-results/d91afd60-921a-4345-a157-cddf9bbccab7-container.json b/allure-results/d91afd60-921a-4345-a157-cddf9bbccab7-container.json new file mode 100644 index 0000000..39897cb --- /dev/null +++ b/allure-results/d91afd60-921a-4345-a157-cddf9bbccab7-container.json @@ -0,0 +1 @@ +{"uuid": "ad2eaed7-c89d-400e-b792-f146bc12cda3", "children": ["aa5fb6e8-5c70-4242-afd1-78de14bddaf7"], "befores": [{"name": "page", "status": "passed", "start": 1785046571196, "stop": 1785046571283}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046571284, "stop": 1785046571289}, {"name": "page::", "start": 1785046571289}], "start": 1785046571196, "stop": 1785046571289} \ No newline at end of file diff --git a/allure-results/dbf133b4-1dcc-406d-bf55-ee9d6a4fe5c9-container.json b/allure-results/dbf133b4-1dcc-406d-bf55-ee9d6a4fe5c9-container.json new file mode 100644 index 0000000..365a60e --- /dev/null +++ b/allure-results/dbf133b4-1dcc-406d-bf55-ee9d6a4fe5c9-container.json @@ -0,0 +1 @@ +{"uuid": "22a2362f-dd33-4e6b-9264-58fad8eed574", "children": ["fe8a7034-c964-4f6f-bbcc-d629e9fd399b", "c72a1e42-0398-455d-a621-ff093f5617eb", "1203bebf-db2b-4e50-8e72-5e11e0144027", "5df0b7cc-b4d7-444b-8430-12128401448a", "6f631202-9ba1-4462-a836-a396d11796ce", "bf9c4c05-9138-4d59-ab12-782895346ac8", "3d40d7cb-6f90-48eb-8b7e-167dbd560241", "ee67d554-adf0-4e0c-ad55-7a8592448e2c", "4da8457f-71c2-4558-aa49-4871cb4b1663"], "befores": [{"name": "_verify_url", "status": "passed", "start": 1785046621136, "stop": 1785046621136}], "afters": [{"name": "_verify_url::", "start": 1785046684743}], "start": 1785046621136, "stop": 1785046684743} \ No newline at end of file diff --git a/allure-results/ddc13fb8-17a4-4f62-9384-f6c8e09b1e70-container.json b/allure-results/ddc13fb8-17a4-4f62-9384-f6c8e09b1e70-container.json new file mode 100644 index 0000000..a448e39 --- /dev/null +++ b/allure-results/ddc13fb8-17a4-4f62-9384-f6c8e09b1e70-container.json @@ -0,0 +1 @@ +{"uuid": "564c606e-5a7f-4c1d-a963-682dcdfd2f32", "children": ["beb43a4b-8fbb-47c9-9bc3-71bbd039b1e5", "2ec259d1-7b8f-4a71-b2c7-6767abb2178a", "1074506d-17b2-43e1-bf42-23dc3240eb14", "063320be-e436-4d48-a5ef-51c8bd21ff40", "5c426436-4bd8-47eb-8bf8-41e7dce11af1", "33d312a9-c635-4111-8c95-c10a76c098bc", "8c2f2a84-f81c-41c5-b5fc-ab5e5a2d31a0", "304c93db-f7dd-4906-a92d-1a02bc8f2f20", "6864d31d-f43b-4000-ab82-b03f6bcba619", "3066e1cd-8d5e-4fdb-b327-8dfcd432565c", "f6e3505e-7dd3-4cfc-8a90-14eac04d4dcf", "3908cf82-bf59-4a87-8bfe-25ced46d66c8", "aa5fb6e8-5c70-4242-afd1-78de14bddaf7", "01701ce7-fb05-4767-992e-9246c52fd29d"], "befores": [{"name": "config", "status": "passed", "start": 1785046499399, "stop": 1785046499399}], "afters": [{"name": "config::", "start": 1785046571455}], "start": 1785046499399, "stop": 1785046571455} \ No newline at end of file diff --git a/allure-results/ddd8dbf9-9ce6-46e5-9634-28bff10f0c9e-container.json b/allure-results/ddd8dbf9-9ce6-46e5-9634-28bff10f0c9e-container.json new file mode 100644 index 0000000..130e9c3 --- /dev/null +++ b/allure-results/ddd8dbf9-9ce6-46e5-9634-28bff10f0c9e-container.json @@ -0,0 +1 @@ +{"uuid": "dcd8cb77-b376-4789-8e9b-775ca42087bd", "befores": [{"name": "customer_data", "status": "passed", "start": 1785046629251, "stop": 1785046629251}], "afters": [{"name": "customer_data::", "start": 1785046638817}], "start": 1785046629251, "stop": 1785046638817} \ No newline at end of file diff --git a/allure-results/dec8f965-3a15-427f-a71d-ad3899bfc20c-attachment.txt b/allure-results/dec8f965-3a15-427f-a71d-ad3899bfc20c-attachment.txt new file mode 100644 index 0000000..b9ccad0 --- /dev/null +++ b/allure-results/dec8f965-3a15-427f-a71d-ad3899bfc20c-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bolt T-Shirt +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bolt T-Shirt \ No newline at end of file diff --git a/allure-results/ded30c2b-7900-4465-9119-e4de72da658d-container.json b/allure-results/ded30c2b-7900-4465-9119-e4de72da658d-container.json new file mode 100644 index 0000000..bf6e373 --- /dev/null +++ b/allure-results/ded30c2b-7900-4465-9119-e4de72da658d-container.json @@ -0,0 +1 @@ +{"uuid": "773d11b3-1b94-4328-911d-4cfe86fe9d83", "children": ["492635eb-194d-4f06-90cd-ea645ee64994"], "befores": [{"name": "page", "status": "passed", "start": 1785046678191, "stop": 1785046678216}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046678218, "stop": 1785046678221}, {"name": "page::", "start": 1785046678221}], "start": 1785046678191, "stop": 1785046678221} \ No newline at end of file diff --git a/allure-results/df2d679c-b959-4699-8c33-077a65cbb7e2-container.json b/allure-results/df2d679c-b959-4699-8c33-077a65cbb7e2-container.json new file mode 100644 index 0000000..24e0f6c --- /dev/null +++ b/allure-results/df2d679c-b959-4699-8c33-077a65cbb7e2-container.json @@ -0,0 +1 @@ +{"uuid": "400e657d-0d25-4ac4-a603-92123739f3d0", "children": ["3d40d7cb-6f90-48eb-8b7e-167dbd560241"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046668743, "stop": 1785046668743}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046672234, "stop": 1785046672234}, {"name": "capture_failure_artifacts::", "start": 1785046672234}], "start": 1785046668743, "stop": 1785046672234} \ No newline at end of file diff --git a/allure-results/dfde17ef-360b-4fff-9ef2-9801b5a40f43-container.json b/allure-results/dfde17ef-360b-4fff-9ef2-9801b5a40f43-container.json new file mode 100644 index 0000000..be1ff0d --- /dev/null +++ b/allure-results/dfde17ef-360b-4fff-9ef2-9801b5a40f43-container.json @@ -0,0 +1 @@ +{"uuid": "2e96e4dc-409d-4a80-8b35-37784c585196", "children": ["3908cf82-bf59-4a87-8bfe-25ced46d66c8"], "befores": [{"name": "context", "status": "passed", "start": 1785046571092, "stop": 1785046571101}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046571178, "stop": 1785046571189}, {"name": "context::", "start": 1785046571189}], "start": 1785046571092, "stop": 1785046571189} \ No newline at end of file diff --git a/allure-results/e0a1bac2-58cf-4607-a027-fa82d4fa3740-container.json b/allure-results/e0a1bac2-58cf-4607-a027-fa82d4fa3740-container.json new file mode 100644 index 0000000..78ecd39 --- /dev/null +++ b/allure-results/e0a1bac2-58cf-4607-a027-fa82d4fa3740-container.json @@ -0,0 +1 @@ +{"uuid": "ae2a98e6-bd23-4455-8348-ceadd3260ede", "children": ["beb43a4b-8fbb-47c9-9bc3-71bbd039b1e5", "2ec259d1-7b8f-4a71-b2c7-6767abb2178a", "1074506d-17b2-43e1-bf42-23dc3240eb14", "063320be-e436-4d48-a5ef-51c8bd21ff40", "5c426436-4bd8-47eb-8bf8-41e7dce11af1", "33d312a9-c635-4111-8c95-c10a76c098bc", "8c2f2a84-f81c-41c5-b5fc-ab5e5a2d31a0", "304c93db-f7dd-4906-a92d-1a02bc8f2f20", "6864d31d-f43b-4000-ab82-b03f6bcba619", "3066e1cd-8d5e-4fdb-b327-8dfcd432565c", "f6e3505e-7dd3-4cfc-8a90-14eac04d4dcf", "3908cf82-bf59-4a87-8bfe-25ced46d66c8", "aa5fb6e8-5c70-4242-afd1-78de14bddaf7", "01701ce7-fb05-4767-992e-9246c52fd29d"], "befores": [{"name": "_verify_url", "status": "passed", "start": 1785046499277, "stop": 1785046499277}], "afters": [{"name": "_verify_url::", "start": 1785046571461}], "start": 1785046499277, "stop": 1785046571461} \ No newline at end of file diff --git a/allure-results/e0b50f25-babf-4cee-b4b2-2f1344864eed-container.json b/allure-results/e0b50f25-babf-4cee-b4b2-2f1344864eed-container.json new file mode 100644 index 0000000..17ea0d4 --- /dev/null +++ b/allure-results/e0b50f25-babf-4cee-b4b2-2f1344864eed-container.json @@ -0,0 +1 @@ +{"uuid": "d2b95486-ba5e-4105-a06f-d71fd2809ea0", "children": ["92840d7a-2565-4d1d-b5ec-9ec7ac9a9339"], "befores": [{"name": "page", "status": "passed", "start": 1785046566365, "stop": 1785046566445}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046575182, "stop": 1785046575190}, {"name": "page::", "start": 1785046575190}], "start": 1785046566365, "stop": 1785046575190} \ No newline at end of file diff --git a/allure-results/e0ec72a6-f42e-4ea3-95c0-6da53462bde8-container.json b/allure-results/e0ec72a6-f42e-4ea3-95c0-6da53462bde8-container.json new file mode 100644 index 0000000..cc03355 --- /dev/null +++ b/allure-results/e0ec72a6-f42e-4ea3-95c0-6da53462bde8-container.json @@ -0,0 +1 @@ +{"uuid": "543b5a72-9755-429a-9612-eb3a469d5ef2", "children": ["beb43a4b-8fbb-47c9-9bc3-71bbd039b1e5", "2ec259d1-7b8f-4a71-b2c7-6767abb2178a", "1074506d-17b2-43e1-bf42-23dc3240eb14", "063320be-e436-4d48-a5ef-51c8bd21ff40", "5c426436-4bd8-47eb-8bf8-41e7dce11af1", "33d312a9-c635-4111-8c95-c10a76c098bc", "8c2f2a84-f81c-41c5-b5fc-ab5e5a2d31a0", "304c93db-f7dd-4906-a92d-1a02bc8f2f20", "6864d31d-f43b-4000-ab82-b03f6bcba619", "3066e1cd-8d5e-4fdb-b327-8dfcd432565c", "f6e3505e-7dd3-4cfc-8a90-14eac04d4dcf", "3908cf82-bf59-4a87-8bfe-25ced46d66c8", "aa5fb6e8-5c70-4242-afd1-78de14bddaf7", "01701ce7-fb05-4767-992e-9246c52fd29d"], "befores": [{"name": "pytestconfig", "status": "passed", "start": 1785046499277, "stop": 1785046499277}], "afters": [{"name": "pytestconfig::", "start": 1785046571461}], "start": 1785046499277, "stop": 1785046571461} \ No newline at end of file diff --git a/allure-results/e2ba143d-c231-47cc-9ced-56b773db978c-container.json b/allure-results/e2ba143d-c231-47cc-9ced-56b773db978c-container.json new file mode 100644 index 0000000..64754bd --- /dev/null +++ b/allure-results/e2ba143d-c231-47cc-9ced-56b773db978c-container.json @@ -0,0 +1 @@ +{"uuid": "a513b315-d714-4d86-b915-6627fb42a603", "befores": [{"name": "product_data", "status": "passed", "start": 1785046648940, "stop": 1785046648940}], "afters": [{"name": "product_data::", "start": 1785046659670}], "start": 1785046648940, "stop": 1785046659670} \ No newline at end of file diff --git a/allure-results/e2e0fc36-b67c-4c92-bfae-bf29e746b9af-container.json b/allure-results/e2e0fc36-b67c-4c92-bfae-bf29e746b9af-container.json new file mode 100644 index 0000000..a284fad --- /dev/null +++ b/allure-results/e2e0fc36-b67c-4c92-bfae-bf29e746b9af-container.json @@ -0,0 +1 @@ +{"uuid": "195d141d-7884-4840-bcca-669a78e08403", "children": ["beb43a4b-8fbb-47c9-9bc3-71bbd039b1e5", "2ec259d1-7b8f-4a71-b2c7-6767abb2178a", "1074506d-17b2-43e1-bf42-23dc3240eb14", "063320be-e436-4d48-a5ef-51c8bd21ff40", "5c426436-4bd8-47eb-8bf8-41e7dce11af1", "33d312a9-c635-4111-8c95-c10a76c098bc", "8c2f2a84-f81c-41c5-b5fc-ab5e5a2d31a0", "304c93db-f7dd-4906-a92d-1a02bc8f2f20", "6864d31d-f43b-4000-ab82-b03f6bcba619", "3066e1cd-8d5e-4fdb-b327-8dfcd432565c", "f6e3505e-7dd3-4cfc-8a90-14eac04d4dcf", "3908cf82-bf59-4a87-8bfe-25ced46d66c8", "aa5fb6e8-5c70-4242-afd1-78de14bddaf7", "01701ce7-fb05-4767-992e-9246c52fd29d"], "befores": [{"name": "browser", "status": "passed", "start": 1785046499399, "stop": 1785046499682}], "afters": [{"name": "browser::1", "status": "passed", "start": 1785046571402, "stop": 1785046571454}, {"name": "browser::", "start": 1785046571454}], "start": 1785046499399, "stop": 1785046571454} \ No newline at end of file diff --git a/allure-results/e30442ea-cca7-4827-85fe-129226387523-attachment.txt b/allure-results/e30442ea-cca7-4827-85fe-129226387523-attachment.txt new file mode 100644 index 0000000..7ae7e3c --- /dev/null +++ b/allure-results/e30442ea-cca7-4827-85fe-129226387523-attachment.txt @@ -0,0 +1,2 @@ +2026-07-26 11:47:46,469 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:48,694 | INFO | pages.login_page | Login action completed for username standard_user diff --git a/allure-results/e380268c-3d01-47c4-ad7a-0f591e4aadaf-container.json b/allure-results/e380268c-3d01-47c4-ad7a-0f591e4aadaf-container.json new file mode 100644 index 0000000..be73ecb --- /dev/null +++ b/allure-results/e380268c-3d01-47c4-ad7a-0f591e4aadaf-container.json @@ -0,0 +1 @@ +{"uuid": "4180543c-bff7-45d3-bb77-0ad08291cd15", "children": ["a7dc1a23-738b-4036-8f18-0e6623efebef"], "befores": [{"name": "context", "status": "passed", "start": 1785046674314, "stop": 1785046674320}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046678184, "stop": 1785046678186}, {"name": "context::", "start": 1785046678186}], "start": 1785046674314, "stop": 1785046678186} \ No newline at end of file diff --git a/allure-results/e39a7b96-c127-4483-8ea0-c4931a80816e-attachment.txt b/allure-results/e39a7b96-c127-4483-8ea0-c4931a80816e-attachment.txt new file mode 100644 index 0000000..af01dbd --- /dev/null +++ b/allure-results/e39a7b96-c127-4483-8ea0-c4931a80816e-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:47:13,018 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:15,217 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:47:15,225 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:47:15,226 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bike Light +2026-07-26 11:47:15,952 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bike Light diff --git a/allure-results/e6329237-1cb2-4903-a05e-11caaab43de2-result.json b/allure-results/e6329237-1cb2-4903-a05e-11caaab43de2-result.json new file mode 100644 index 0000000..e6f5cfb --- /dev/null +++ b/allure-results/e6329237-1cb2-4903-a05e-11caaab43de2-result.json @@ -0,0 +1 @@ +{"name": "Verify user can add product to cart - Sauce Labs Bike Light", "status": "passed", "description": "Verify that a logged-in user can add different products to the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046550958, "stop": 1785046553121}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046553121, "stop": 1785046553121}, {"name": "Login with valid credentials", "status": "passed", "start": 1785046553121, "stop": 1785046555316}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046555317, "stop": 1785046555322}, {"name": "Retrieve product name: Sauce Labs Bike Light", "status": "passed", "start": 1785046555322, "stop": 1785046555323}, {"name": "Add Sauce Labs Bike Light to cart", "status": "passed", "start": 1785046555323, "stop": 1785046556036}, {"name": "Verify Sauce Labs Bike Light was added to cart", "status": "passed", "start": 1785046556036, "stop": 1785046556043}], "attachments": [{"name": "log", "source": "42685400-40e3-4cc2-9ef7-17b69b162e41-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "5d2baa53-84c9-48c8-8fed-cc7fc69ec9cf-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bike Light'}"}], "start": 1785046550958, "stop": 1785046556043, "uuid": "55b69fcb-b0dd-4d1c-90cc-617c12dfd925", "historyId": "ec99528c2ea5b1103eb2a3d0d462b659", "testCaseId": "76249ae9582a105da809f2e4b4437aaf", "fullName": "tests.e2e.test_inventory#test_add_product_to_cart", "labels": [{"name": "story", "value": "Add Product to Cart"}, {"name": "severity", "value": "critical"}, {"name": "feature", "value": "Inventory Management"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_inventory"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24862-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_inventory"}], "titlePath": ["tests", "e2e", "test_inventory.py"]} \ No newline at end of file diff --git a/allure-results/e662b01f-b941-45b9-b6f5-9b9007f229f9-container.json b/allure-results/e662b01f-b941-45b9-b6f5-9b9007f229f9-container.json new file mode 100644 index 0000000..b0e5285 --- /dev/null +++ b/allure-results/e662b01f-b941-45b9-b6f5-9b9007f229f9-container.json @@ -0,0 +1 @@ +{"uuid": "279343e0-e914-4d81-9efd-a2038fe99d16", "children": ["92840d7a-2565-4d1d-b5ec-9ec7ac9a9339"], "befores": [{"name": "context", "status": "passed", "start": 1785046566357, "stop": 1785046566365}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046575192, "stop": 1785046575228}, {"name": "context::", "start": 1785046575228}], "start": 1785046566357, "stop": 1785046575228} \ No newline at end of file diff --git a/allure-results/e6dc4cc3-ce00-48d6-a927-069a05fa42c1-container.json b/allure-results/e6dc4cc3-ce00-48d6-a927-069a05fa42c1-container.json new file mode 100644 index 0000000..b97ebc7 --- /dev/null +++ b/allure-results/e6dc4cc3-ce00-48d6-a927-069a05fa42c1-container.json @@ -0,0 +1 @@ +{"uuid": "29868c0a-adca-468f-8941-e9b47a305f8c", "children": ["c9c0a217-81ab-4412-91e7-a15d43ad89da", "145a497d-6f48-420a-9fd1-2f56c44bc698", "4e88716d-52cc-4fea-9574-95e7faf1e695", "2d455068-c2f5-4129-b34e-417744b6c66c", "17c614d7-d40e-4551-b15f-57b2a9a06a9a", "4e1c0964-f4ed-4046-a82a-b347f5d364f7", "8fc94b75-b471-493d-b38c-f951a707e526"], "befores": [{"name": "test_data", "status": "passed", "start": 1785046625523, "stop": 1785046625523}], "afters": [{"name": "test_data::", "start": 1785046678393}], "start": 1785046625523, "stop": 1785046678393} \ No newline at end of file diff --git a/allure-results/e899b094-8bf8-4e70-a4c2-020b0c0d3e3a-result.json b/allure-results/e899b094-8bf8-4e70-a4c2-020b0c0d3e3a-result.json new file mode 100644 index 0000000..288b0bc --- /dev/null +++ b/allure-results/e899b094-8bf8-4e70-a4c2-020b0c0d3e3a-result.json @@ -0,0 +1 @@ +{"name": "Verify valid user can login successfully", "status": "passed", "description": "Verify that a valid user can successfully log into the SauceDemo application.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046668743, "stop": 1785046670029}, {"name": "Retrieve credentials for valid_problem_user", "status": "passed", "start": 1785046670029, "stop": 1785046670029}, {"name": "Login with user: valid_problem_user", "status": "passed", "start": 1785046670030, "stop": 1785046672232}, {"name": "Verify user is successfully logged in", "status": "passed", "start": 1785046672232, "stop": 1785046672232}], "attachments": [{"name": "log", "source": "60df417e-896d-4d36-937b-232fb535f40c-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "ab604762-959c-449f-bbd3-78948f47a3d2-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "user_data", "value": "{'test_id': 'valid_problem_user', 'username': 'problem_user', 'password': 'secret_sauce', 'expected_url': '/inventory.html'}"}], "start": 1785046668743, "stop": 1785046672232, "uuid": "3d40d7cb-6f90-48eb-8b7e-167dbd560241", "historyId": "aca841c8f7f0db40fe9fa7747c8f0e92", "testCaseId": "5ac5da8f801af0b6d14e8acfcb100ad8", "fullName": "tests.e2e.test_login#test_valid_login", "labels": [{"name": "epic", "value": "SauceDemo Application"}, {"name": "feature", "value": "Authentication"}, {"name": "severity", "value": "critical"}, {"name": "story", "value": "Valid User Login"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_login"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25039-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_login"}], "titlePath": ["tests", "e2e", "test_login.py"]} \ No newline at end of file diff --git a/allure-results/e8a0c441-5c03-4fb9-a424-d02c7841530c-container.json b/allure-results/e8a0c441-5c03-4fb9-a424-d02c7841530c-container.json new file mode 100644 index 0000000..cb9ad1b --- /dev/null +++ b/allure-results/e8a0c441-5c03-4fb9-a424-d02c7841530c-container.json @@ -0,0 +1 @@ +{"uuid": "fffe7de9-36e2-4df6-9159-0ed1d7b8c427", "children": ["f412bdd1-455f-4d18-b998-508aa34153e2"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046678355, "stop": 1785046678355}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046678356, "stop": 1785046678356}, {"name": "capture_failure_artifacts::", "start": 1785046678356}], "start": 1785046678355, "stop": 1785046678356} \ No newline at end of file diff --git a/allure-results/ea6e831c-3c7e-4151-90aa-5e2b64d9c5f0-container.json b/allure-results/ea6e831c-3c7e-4151-90aa-5e2b64d9c5f0-container.json new file mode 100644 index 0000000..fb3a45c --- /dev/null +++ b/allure-results/ea6e831c-3c7e-4151-90aa-5e2b64d9c5f0-container.json @@ -0,0 +1 @@ +{"uuid": "fc1c2bc5-9306-4ae5-b6f3-3a9d65f520d5", "children": ["f6e3505e-7dd3-4cfc-8a90-14eac04d4dcf"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046571074, "stop": 1785046571074}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046571074, "stop": 1785046571074}, {"name": "capture_failure_artifacts::", "start": 1785046571074}], "start": 1785046571074, "stop": 1785046571074} \ No newline at end of file diff --git a/allure-results/eb1af7a9-8589-43b5-bff8-02cdbcb2f449-container.json b/allure-results/eb1af7a9-8589-43b5-bff8-02cdbcb2f449-container.json new file mode 100644 index 0000000..c7d0c98 --- /dev/null +++ b/allure-results/eb1af7a9-8589-43b5-bff8-02cdbcb2f449-container.json @@ -0,0 +1 @@ +{"uuid": "f4a8f870-dcf8-440c-a4a2-a49987fa139f", "children": ["5c426436-4bd8-47eb-8bf8-41e7dce11af1"], "befores": [{"name": "page", "status": "passed", "start": 1785046541376, "stop": 1785046541455}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046550885, "stop": 1785046550889}, {"name": "page::", "start": 1785046550889}], "start": 1785046541376, "stop": 1785046550889} \ No newline at end of file diff --git a/allure-results/eb626c5f-e4d7-4fda-8234-f00dcd72e08c-attachment.txt b/allure-results/eb626c5f-e4d7-4fda-8234-f00dcd72e08c-attachment.txt new file mode 100644 index 0000000..4f8d708 --- /dev/null +++ b/allure-results/eb626c5f-e4d7-4fda-8234-f00dcd72e08c-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:45:58,009 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:46:00,252 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:46:00,263 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:46:00,263 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bolt T-Shirt +2026-07-26 11:46:00,989 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bolt T-Shirt diff --git a/allure-results/ebb3397a-e87c-4013-b05a-db11b9ff865c-attachment.txt b/allure-results/ebb3397a-e87c-4013-b05a-db11b9ff865c-attachment.txt new file mode 100644 index 0000000..1695335 --- /dev/null +++ b/allure-results/ebb3397a-e87c-4013-b05a-db11b9ff865c-attachment.txt @@ -0,0 +1,2 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user \ No newline at end of file diff --git a/allure-results/ec47491e-2d22-4c1a-9918-948760c83671-container.json b/allure-results/ec47491e-2d22-4c1a-9918-948760c83671-container.json new file mode 100644 index 0000000..eb478b6 --- /dev/null +++ b/allure-results/ec47491e-2d22-4c1a-9918-948760c83671-container.json @@ -0,0 +1 @@ +{"uuid": "26cfa100-ebce-4255-a345-295a739394c6", "befores": [{"name": "product_data", "status": "passed", "start": 1785046545669, "stop": 1785046545669}], "afters": [{"name": "product_data::", "start": 1785046550849}], "start": 1785046545668, "stop": 1785046550849} \ No newline at end of file diff --git a/allure-results/ecfc3a89-eaa4-447e-945b-38af21afd77b-result.json b/allure-results/ecfc3a89-eaa4-447e-945b-38af21afd77b-result.json new file mode 100644 index 0000000..30f1447 --- /dev/null +++ b/allure-results/ecfc3a89-eaa4-447e-945b-38af21afd77b-result.json @@ -0,0 +1 @@ +{"name": "Verify checkout flow - Sauce Labs Bolt T-Shirt - customer_02", "status": "passed", "description": "Verify that a user can successfully complete the checkout flow using different products and customer information.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046648941, "stop": 1785046651675}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046651675, "stop": 1785046651675}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046651675, "stop": 1785046653882}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046653882, "stop": 1785046653890}, {"name": "Retrieve product name: Sauce Labs Bolt T-Shirt", "status": "passed", "start": 1785046653890, "stop": 1785046653890}, {"name": "Add Sauce Labs Bolt T-Shirt to cart", "status": "passed", "start": 1785046653890, "stop": 1785046654613}, {"name": "Open shopping cart", "status": "passed", "start": 1785046654613, "stop": 1785046655339}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046655339, "stop": 1785046655339}, {"name": "Verify Sauce Labs Bolt T-Shirt is present in cart", "status": "passed", "start": 1785046655339, "stop": 1785046655349}, {"name": "Proceed to checkout", "status": "passed", "start": 1785046655349, "stop": 1785046656072}, {"name": "Verify checkout information page is loaded", "status": "passed", "start": 1785046656072, "stop": 1785046656072}, {"name": "Enter customer information for customer_02", "status": "passed", "start": 1785046656072, "stop": 1785046658200}, {"name": "Continue to checkout overview", "status": "passed", "start": 1785046658200, "stop": 1785046658924}, {"name": "Verify checkout overview page is loaded", "status": "passed", "start": 1785046658925, "stop": 1785046658925}, {"name": "Verify Sauce Labs Bolt T-Shirt is present in order", "status": "passed", "start": 1785046658925, "stop": 1785046658942}, {"name": "Complete the order", "status": "passed", "start": 1785046658942, "stop": 1785046659661}, {"name": "Verify order confirmation message", "status": "passed", "start": 1785046659662, "stop": 1785046659669}], "attachments": [{"name": "log", "source": "480b9a95-3410-4a16-9e15-f07a234d079f-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "5d9d684b-6707-4360-90fb-a36e4cf4cdc5-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bolt T-Shirt'}"}, {"name": "customer_data", "value": "{'test_id': 'customer_02', 'first_name': 'John', 'last_name': 'Doe', 'postal_code': '10001'}"}], "start": 1785046648940, "stop": 1785046659669, "uuid": "5df0b7cc-b4d7-444b-8430-12128401448a", "historyId": "90fe59f5c9a7939cee1aad9f8db08216", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "feature", "value": "Checkout"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "story", "value": "Complete Product Checkout"}, {"name": "severity", "value": "critical"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25039-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/ed3b8540-d1a0-441f-8345-679527e56c2f-container.json b/allure-results/ed3b8540-d1a0-441f-8345-679527e56c2f-container.json new file mode 100644 index 0000000..6258203 --- /dev/null +++ b/allure-results/ed3b8540-d1a0-441f-8345-679527e56c2f-container.json @@ -0,0 +1 @@ +{"uuid": "3a0a1129-09d6-4606-9553-575862104a73", "befores": [{"name": "user_data", "status": "passed", "start": 1785046672283, "stop": 1785046672283}], "afters": [{"name": "user_data::", "start": 1785046680950}], "start": 1785046672283, "stop": 1785046680950} \ No newline at end of file diff --git a/allure-results/eda90dcb-2613-4c95-94eb-55ce20fa474e-result.json b/allure-results/eda90dcb-2613-4c95-94eb-55ce20fa474e-result.json new file mode 100644 index 0000000..8450427 --- /dev/null +++ b/allure-results/eda90dcb-2613-4c95-94eb-55ce20fa474e-result.json @@ -0,0 +1 @@ +{"name": "test_browser_launch", "status": "passed", "description": "\nVerify that the configured browser can launch and navigate to the application.\n", "attachments": [{"name": "stdout", "source": "7b513542-687b-4552-84c5-3c76b2ef872e-attachment.txt", "type": "text/plain"}], "start": 1785046499926, "stop": 1785046504555, "uuid": "beb43a4b-8fbb-47c9-9bc3-71bbd039b1e5", "historyId": "59b5d8399386c636ae239d08cbfa52ef", "testCaseId": "59b5d8399386c636ae239d08cbfa52ef", "fullName": "tests.e2e.test_browser_launch#test_browser_launch", "labels": [{"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_browser_launch"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_browser_launch"}], "titlePath": ["tests", "e2e", "test_browser_launch.py"]} \ No newline at end of file diff --git a/allure-results/ee648160-b426-495c-b5ad-a031d32e6796-container.json b/allure-results/ee648160-b426-495c-b5ad-a031d32e6796-container.json new file mode 100644 index 0000000..963ac3c --- /dev/null +++ b/allure-results/ee648160-b426-495c-b5ad-a031d32e6796-container.json @@ -0,0 +1 @@ +{"uuid": "f9974aa0-c1ff-4bf3-9b49-77b463e1d5e5", "children": ["8fc94b75-b471-493d-b38c-f951a707e526"], "befores": [{"name": "page", "status": "passed", "start": 1785046669426, "stop": 1785046669452}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046674302, "stop": 1785046674306}, {"name": "page::", "start": 1785046674306}], "start": 1785046669426, "stop": 1785046674306} \ No newline at end of file diff --git a/allure-results/ee9cf1f3-2d4f-46ad-beae-bb47b62955a2-attachment.txt b/allure-results/ee9cf1f3-2d4f-46ad-beae-bb47b62955a2-attachment.txt new file mode 100644 index 0000000..17b26de --- /dev/null +++ b/allure-results/ee9cf1f3-2d4f-46ad-beae-bb47b62955a2-attachment.txt @@ -0,0 +1,2 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: performance_glitch_user +INFO pages.login_page:login_page.py:67 Login action completed for username performance_glitch_user \ No newline at end of file diff --git a/allure-results/ef7a4298-220f-4915-87b2-0c0f753476f5-attachment.txt b/allure-results/ef7a4298-220f-4915-87b2-0c0f753476f5-attachment.txt new file mode 100644 index 0000000..e8bd62e --- /dev/null +++ b/allure-results/ef7a4298-220f-4915-87b2-0c0f753476f5-attachment.txt @@ -0,0 +1,2 @@ +2026-07-26 11:46:16,689 | INFO | pages.login_page | Attempting login with username: locked_out_user +2026-07-26 11:46:18,897 | INFO | pages.login_page | Login action completed for username locked_out_user diff --git a/allure-results/efdf5c45-545d-4541-b2de-b65f58d8ceb0-container.json b/allure-results/efdf5c45-545d-4541-b2de-b65f58d8ceb0-container.json new file mode 100644 index 0000000..e951b66 --- /dev/null +++ b/allure-results/efdf5c45-545d-4541-b2de-b65f58d8ceb0-container.json @@ -0,0 +1 @@ +{"uuid": "2ff2a23c-aa6e-46f6-9f2d-4fff86ed7ca6", "children": ["ad62a26a-de9f-4a17-966b-deaeae749865", "db8c0ef2-f2c6-495f-93ef-c86d16fcd74a", "ba10b5d3-8199-4902-997d-83f59149a95d", "dda59aea-654c-4c87-b58c-1aa7f06765a4", "119e185c-2a13-4876-b36e-f79c684e70e8", "55b69fcb-b0dd-4d1c-90cc-617c12dfd925", "5a7d2265-bb99-408b-9ffd-9a42d5ddc311", "09710e12-8b19-4e64-b3ea-2fdfc88b8550", "92840d7a-2565-4d1d-b5ec-9ec7ac9a9339", "b4f4a2f5-bf6e-44d2-b8b0-0297c5a84f76"], "befores": [{"name": "pytestconfig", "status": "passed", "start": 1785046499277, "stop": 1785046499277}], "afters": [{"name": "pytestconfig::", "start": 1785046579028}], "start": 1785046499277, "stop": 1785046579028} \ No newline at end of file diff --git a/allure-results/f09f3e1a-9056-4f0a-a30d-7e6c6aa4592b-container.json b/allure-results/f09f3e1a-9056-4f0a-a30d-7e6c6aa4592b-container.json new file mode 100644 index 0000000..80df079 --- /dev/null +++ b/allure-results/f09f3e1a-9056-4f0a-a30d-7e6c6aa4592b-container.json @@ -0,0 +1 @@ +{"uuid": "d00832ec-8e32-42da-bc2c-1ddea5c361eb", "children": ["862d641e-2e12-4162-9022-f13ffac6e216"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046678253, "stop": 1785046678253}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046678254, "stop": 1785046678254}, {"name": "capture_failure_artifacts::", "start": 1785046678254}], "start": 1785046678253, "stop": 1785046678254} \ No newline at end of file diff --git a/allure-results/f131fa65-7f98-4793-8a37-aaa2bce234c7-attachment.txt b/allure-results/f131fa65-7f98-4793-8a37-aaa2bce234c7-attachment.txt new file mode 100644 index 0000000..f879cd4 --- /dev/null +++ b/allure-results/f131fa65-7f98-4793-8a37-aaa2bce234c7-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bike Light +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bike Light \ No newline at end of file diff --git a/allure-results/f1e4b638-fe37-4849-9638-6c87c125bddb-container.json b/allure-results/f1e4b638-fe37-4849-9638-6c87c125bddb-container.json new file mode 100644 index 0000000..68c2df8 --- /dev/null +++ b/allure-results/f1e4b638-fe37-4849-9638-6c87c125bddb-container.json @@ -0,0 +1 @@ +{"uuid": "7f003083-a506-4d5f-803b-5e659c7b2e39", "befores": [{"name": "product_data", "status": "passed", "start": 1785046629251, "stop": 1785046629251}], "afters": [{"name": "product_data::", "start": 1785046638817}], "start": 1785046629251, "stop": 1785046638817} \ No newline at end of file diff --git a/allure-results/f22be6f1-2060-4687-83d3-888bfaaf480d-container.json b/allure-results/f22be6f1-2060-4687-83d3-888bfaaf480d-container.json new file mode 100644 index 0000000..667edbd --- /dev/null +++ b/allure-results/f22be6f1-2060-4687-83d3-888bfaaf480d-container.json @@ -0,0 +1 @@ +{"uuid": "6e172e0a-d253-4aff-aa98-7ee2d47862bf", "children": ["55b69fcb-b0dd-4d1c-90cc-617c12dfd925"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046550958, "stop": 1785046550958}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046556043, "stop": 1785046556043}, {"name": "capture_failure_artifacts::", "start": 1785046556043}], "start": 1785046550958, "stop": 1785046556043} \ No newline at end of file diff --git a/allure-results/f5022c78-9650-446f-b2e3-2e2a670ae799-result.json b/allure-results/f5022c78-9650-446f-b2e3-2e2a670ae799-result.json new file mode 100644 index 0000000..f4eeb37 --- /dev/null +++ b/allure-results/f5022c78-9650-446f-b2e3-2e2a670ae799-result.json @@ -0,0 +1 @@ +{"name": "Verify user can add product to cart - Sauce Labs Bolt T-Shirt", "status": "passed", "description": "Verify that a logged-in user can add different products to the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046669453, "stop": 1785046671354}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046671354, "stop": 1785046671354}, {"name": "Login with valid credentials", "status": "passed", "start": 1785046671354, "stop": 1785046673561}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046673561, "stop": 1785046673571}, {"name": "Retrieve product name: Sauce Labs Bolt T-Shirt", "status": "passed", "start": 1785046673571, "stop": 1785046673571}, {"name": "Add Sauce Labs Bolt T-Shirt to cart", "status": "passed", "start": 1785046673571, "stop": 1785046674293}, {"name": "Verify Sauce Labs Bolt T-Shirt was added to cart", "status": "passed", "start": 1785046674293, "stop": 1785046674300}], "attachments": [{"name": "log", "source": "88d1dd1d-407a-4f89-b0bf-bfb5274eac56-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "711ad3ec-c76f-4855-883a-0c29dde8d644-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bolt T-Shirt'}"}], "start": 1785046669453, "stop": 1785046674300, "uuid": "8fc94b75-b471-493d-b38c-f951a707e526", "historyId": "365cdcf2c43f8803df884c272abcbef6", "testCaseId": "76249ae9582a105da809f2e4b4437aaf", "fullName": "tests.e2e.test_inventory#test_add_product_to_cart", "labels": [{"name": "feature", "value": "Inventory Management"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "story", "value": "Add Product to Cart"}, {"name": "severity", "value": "critical"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_inventory"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_inventory"}], "titlePath": ["tests", "e2e", "test_inventory.py"]} \ No newline at end of file diff --git a/allure-results/f541cfff-4b3a-4c10-b6ae-141f312f8d00-container.json b/allure-results/f541cfff-4b3a-4c10-b6ae-141f312f8d00-container.json new file mode 100644 index 0000000..7d3bf12 --- /dev/null +++ b/allure-results/f541cfff-4b3a-4c10-b6ae-141f312f8d00-container.json @@ -0,0 +1 @@ +{"uuid": "a5feb9d3-e0b3-470a-a163-beb013c53fbb", "befores": [{"name": "customer_data", "status": "passed", "start": 1785046646073, "stop": 1785046646073}], "afters": [{"name": "customer_data::", "start": 1785046655360}], "start": 1785046646073, "stop": 1785046655360} \ No newline at end of file diff --git a/allure-results/f5ef5e67-c173-40f4-9dd1-f1abe62e065f-container.json b/allure-results/f5ef5e67-c173-40f4-9dd1-f1abe62e065f-container.json new file mode 100644 index 0000000..200dc51 --- /dev/null +++ b/allure-results/f5ef5e67-c173-40f4-9dd1-f1abe62e065f-container.json @@ -0,0 +1 @@ +{"uuid": "06deb829-b829-46bb-937c-f319dd1a4d7f", "children": ["3908cf82-bf59-4a87-8bfe-25ced46d66c8"], "befores": [{"name": "page", "status": "passed", "start": 1785046571101, "stop": 1785046571172}], "afters": [{"name": "page::1", "status": "passed", "start": 1785046571174, "stop": 1785046571177}, {"name": "page::", "start": 1785046571177}], "start": 1785046571101, "stop": 1785046571177} \ No newline at end of file diff --git a/allure-results/f71d53e8-c38d-4008-af44-3cd124d590d0-attachment.txt b/allure-results/f71d53e8-c38d-4008-af44-3cd124d590d0-attachment.txt new file mode 100644 index 0000000..3b28240 --- /dev/null +++ b/allure-results/f71d53e8-c38d-4008-af44-3cd124d590d0-attachment.txt @@ -0,0 +1,2 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: invalid_user +INFO pages.login_page:login_page.py:67 Login action completed for username invalid_user \ No newline at end of file diff --git a/allure-results/f78af204-f04b-4291-a4e9-e9d54542ce14-attachment.txt b/allure-results/f78af204-f04b-4291-a4e9-e9d54542ce14-attachment.txt new file mode 100644 index 0000000..f879cd4 --- /dev/null +++ b/allure-results/f78af204-f04b-4291-a4e9-e9d54542ce14-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bike Light +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bike Light \ No newline at end of file diff --git a/allure-results/f8247f52-2d3c-412e-bbeb-0661fd1c19c2-container.json b/allure-results/f8247f52-2d3c-412e-bbeb-0661fd1c19c2-container.json new file mode 100644 index 0000000..f9bac7c --- /dev/null +++ b/allure-results/f8247f52-2d3c-412e-bbeb-0661fd1c19c2-container.json @@ -0,0 +1 @@ +{"uuid": "244e8708-0a41-452b-ab7d-2b9033df1185", "children": ["ad62a26a-de9f-4a17-966b-deaeae749865", "db8c0ef2-f2c6-495f-93ef-c86d16fcd74a", "ba10b5d3-8199-4902-997d-83f59149a95d", "dda59aea-654c-4c87-b58c-1aa7f06765a4", "119e185c-2a13-4876-b36e-f79c684e70e8", "55b69fcb-b0dd-4d1c-90cc-617c12dfd925", "5a7d2265-bb99-408b-9ffd-9a42d5ddc311", "09710e12-8b19-4e64-b3ea-2fdfc88b8550", "92840d7a-2565-4d1d-b5ec-9ec7ac9a9339", "b4f4a2f5-bf6e-44d2-b8b0-0297c5a84f76"], "befores": [{"name": "_verify_url", "status": "passed", "start": 1785046499277, "stop": 1785046499277}], "afters": [{"name": "_verify_url::", "start": 1785046579028}], "start": 1785046499277, "stop": 1785046579028} \ No newline at end of file diff --git a/allure-results/f84be35d-b163-40ef-b90c-9c3bd394645d-result.json b/allure-results/f84be35d-b163-40ef-b90c-9c3bd394645d-result.json new file mode 100644 index 0000000..fe69dc8 --- /dev/null +++ b/allure-results/f84be35d-b163-40ef-b90c-9c3bd394645d-result.json @@ -0,0 +1 @@ +{"name": "Verify user can add product to cart - Sauce Labs Bike Light", "status": "passed", "description": "Verify that a logged-in user can add different products to the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046664701, "stop": 1785046666465}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046666465, "stop": 1785046666465}, {"name": "Login with valid credentials", "status": "passed", "start": 1785046666465, "stop": 1785046668695}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046668695, "stop": 1785046668699}, {"name": "Retrieve product name: Sauce Labs Bike Light", "status": "passed", "start": 1785046668699, "stop": 1785046668699}, {"name": "Add Sauce Labs Bike Light to cart", "status": "passed", "start": 1785046668699, "stop": 1785046669409}, {"name": "Verify Sauce Labs Bike Light was added to cart", "status": "passed", "start": 1785046669409, "stop": 1785046669414}], "attachments": [{"name": "log", "source": "a22a3864-09df-43cb-bb9d-0a40a3ed834a-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "9678cde5-90c4-4835-89c4-768dbf026ed4-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bike Light'}"}], "start": 1785046664701, "stop": 1785046669414, "uuid": "4e1c0964-f4ed-4046-a82a-b347f5d364f7", "historyId": "ec99528c2ea5b1103eb2a3d0d462b659", "testCaseId": "76249ae9582a105da809f2e4b4437aaf", "fullName": "tests.e2e.test_inventory#test_add_product_to_cart", "labels": [{"name": "feature", "value": "Inventory Management"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "story", "value": "Add Product to Cart"}, {"name": "severity", "value": "critical"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_inventory"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_inventory"}], "titlePath": ["tests", "e2e", "test_inventory.py"]} \ No newline at end of file diff --git a/allure-results/f84cbee9-27d8-4f61-88ae-45906964d117-attachment.txt b/allure-results/f84cbee9-27d8-4f61-88ae-45906964d117-attachment.txt new file mode 100644 index 0000000..1cdd385 --- /dev/null +++ b/allure-results/f84cbee9-27d8-4f61-88ae-45906964d117-attachment.txt @@ -0,0 +1,5 @@ +2026-07-26 11:47:05,520 | INFO | pages.login_page | Attempting login with username: standard_user +2026-07-26 11:47:07,719 | INFO | pages.login_page | Login action completed for username standard_user +2026-07-26 11:47:07,726 | INFO | pages.inventory_page | Inventory page loaded: True +2026-07-26 11:47:07,727 | INFO | pages.inventory_page | Adding product to cart: Sauce Labs Bolt T-Shirt +2026-07-26 11:47:08,444 | INFO | pages.inventory_page | Product added to cart: Sauce Labs Bolt T-Shirt diff --git a/allure-results/f880a0d9-ba0a-4c30-b75f-f4b8611ad36d-container.json b/allure-results/f880a0d9-ba0a-4c30-b75f-f4b8611ad36d-container.json new file mode 100644 index 0000000..370f276 --- /dev/null +++ b/allure-results/f880a0d9-ba0a-4c30-b75f-f4b8611ad36d-container.json @@ -0,0 +1 @@ +{"uuid": "995e5d36-35a1-4aed-a08e-ba68fe94b4f6", "children": ["145a497d-6f48-420a-9fd1-2f56c44bc698"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046631440, "stop": 1785046631440}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046636701, "stop": 1785046636701}, {"name": "capture_failure_artifacts::", "start": 1785046636701}], "start": 1785046631440, "stop": 1785046636701} \ No newline at end of file diff --git a/allure-results/f88303f3-83e0-45d9-bf4e-de82743576dd-container.json b/allure-results/f88303f3-83e0-45d9-bf4e-de82743576dd-container.json new file mode 100644 index 0000000..73e4794 --- /dev/null +++ b/allure-results/f88303f3-83e0-45d9-bf4e-de82743576dd-container.json @@ -0,0 +1 @@ +{"uuid": "935ee0f6-779c-44b5-a845-2f99fa7306a2", "befores": [{"name": "user_data", "status": "passed", "start": 1785046566796, "stop": 1785046566796}], "afters": [{"name": "user_data::", "start": 1785046570774}], "start": 1785046566796, "stop": 1785046570774} \ No newline at end of file diff --git a/allure-results/f958d41c-d6d0-4982-b846-b7ef99ef8d49-container.json b/allure-results/f958d41c-d6d0-4982-b846-b7ef99ef8d49-container.json new file mode 100644 index 0000000..8611175 --- /dev/null +++ b/allure-results/f958d41c-d6d0-4982-b846-b7ef99ef8d49-container.json @@ -0,0 +1 @@ +{"uuid": "151267b8-7989-4ae0-bd4c-609e680eaa81", "children": ["5df0b7cc-b4d7-444b-8430-12128401448a"], "befores": [{"name": "capture_failure_artifacts", "status": "passed", "start": 1785046648940, "stop": 1785046648940}], "afters": [{"name": "capture_failure_artifacts::1", "status": "passed", "start": 1785046659670, "stop": 1785046659670}, {"name": "capture_failure_artifacts::", "start": 1785046659670}], "start": 1785046648940, "stop": 1785046659670} \ No newline at end of file diff --git a/allure-results/f97daf1b-bd59-4496-9e3a-f7afe2cfa9a3-result.json b/allure-results/f97daf1b-bd59-4496-9e3a-f7afe2cfa9a3-result.json new file mode 100644 index 0000000..9323dbf --- /dev/null +++ b/allure-results/f97daf1b-bd59-4496-9e3a-f7afe2cfa9a3-result.json @@ -0,0 +1 @@ +{"name": "Verify checkout flow - Sauce Labs Bolt T-Shirt - customer_02", "status": "passed", "description": "Verify that a user can successfully complete the checkout flow using different products and customer information.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046535974, "stop": 1785046537342}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046537342, "stop": 1785046537342}, {"name": "Login with user: valid_standard_user", "status": "passed", "start": 1785046537343, "stop": 1785046539591}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046539591, "stop": 1785046539599}, {"name": "Retrieve product name: Sauce Labs Bolt T-Shirt", "status": "passed", "start": 1785046539599, "stop": 1785046539599}, {"name": "Add Sauce Labs Bolt T-Shirt to cart", "status": "passed", "start": 1785046539599, "stop": 1785046540314}, {"name": "Open shopping cart", "status": "passed", "start": 1785046540314, "stop": 1785046541084}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046541084, "stop": 1785046541084}, {"name": "Verify Sauce Labs Bolt T-Shirt is present in cart", "status": "passed", "start": 1785046541084, "stop": 1785046541094}, {"name": "Proceed to checkout", "status": "passed", "start": 1785046541094, "stop": 1785046541858}, {"name": "Verify checkout information page is loaded", "status": "passed", "start": 1785046541858, "stop": 1785046541858}, {"name": "Enter customer information for customer_02", "status": "passed", "start": 1785046541858, "stop": 1785046544007}, {"name": "Continue to checkout overview", "status": "passed", "start": 1785046544007, "stop": 1785046544776}, {"name": "Verify checkout overview page is loaded", "status": "passed", "start": 1785046544776, "stop": 1785046544776}, {"name": "Verify Sauce Labs Bolt T-Shirt is present in order", "status": "passed", "start": 1785046544776, "stop": 1785046544797}, {"name": "Complete the order", "status": "passed", "start": 1785046544797, "stop": 1785046545551}, {"name": "Verify order confirmation message", "status": "passed", "start": 1785046545551, "stop": 1785046545560}], "attachments": [{"name": "log", "source": "dec8f965-3a15-427f-a71d-ad3899bfc20c-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "790a3365-7f54-407b-98df-18eb62b2c443-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bolt T-Shirt'}"}, {"name": "customer_data", "value": "{'test_id': 'customer_02', 'first_name': 'John', 'last_name': 'Doe', 'postal_code': '10001'}"}], "start": 1785046535974, "stop": 1785046545561, "uuid": "dda59aea-654c-4c87-b58c-1aa7f06765a4", "historyId": "90fe59f5c9a7939cee1aad9f8db08216", "testCaseId": "6327861429a6ad237647b2479feceb98", "fullName": "tests.e2e.test_checkout#test_complete_checkout_flow", "labels": [{"name": "feature", "value": "Checkout"}, {"name": "severity", "value": "critical"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "story", "value": "Complete Product Checkout"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_checkout"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24862-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_checkout"}], "titlePath": ["tests", "e2e", "test_checkout.py"]} \ No newline at end of file diff --git a/allure-results/f98394db-3789-4f3e-9fbd-9a0cbc5b4a83-attachment.txt b/allure-results/f98394db-3789-4f3e-9fbd-9a0cbc5b4a83-attachment.txt new file mode 100644 index 0000000..3b28240 --- /dev/null +++ b/allure-results/f98394db-3789-4f3e-9fbd-9a0cbc5b4a83-attachment.txt @@ -0,0 +1,2 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: invalid_user +INFO pages.login_page:login_page.py:67 Login action completed for username invalid_user \ No newline at end of file diff --git a/allure-results/fa0f251b-2bd6-4104-9b82-a1540e5c4c83-result.json b/allure-results/fa0f251b-2bd6-4104-9b82-a1540e5c4c83-result.json new file mode 100644 index 0000000..05b66dc --- /dev/null +++ b/allure-results/fa0f251b-2bd6-4104-9b82-a1540e5c4c83-result.json @@ -0,0 +1 @@ +{"name": "test_invalid_configuration_key_raises_error", "status": "passed", "start": 1785046678388, "stop": 1785046678388, "uuid": "af4d3119-cd92-4120-8904-f6e1caa92523", "historyId": "ffab144bb11fc6dcdb64f5461f7a40a4", "testCaseId": "ffab144bb11fc6dcdb64f5461f7a40a4", "fullName": "tests.unit.test_config_manager#test_invalid_configuration_key_raises_error", "labels": [{"name": "parentSuite", "value": "tests.unit"}, {"name": "suite", "value": "test_config_manager"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25038-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.unit.test_config_manager"}], "titlePath": ["tests", "unit", "test_config_manager.py"]} \ No newline at end of file diff --git a/allure-results/fb076ea7-9b55-4112-add7-07f4d542a260-container.json b/allure-results/fb076ea7-9b55-4112-add7-07f4d542a260-container.json new file mode 100644 index 0000000..7b6300b --- /dev/null +++ b/allure-results/fb076ea7-9b55-4112-add7-07f4d542a260-container.json @@ -0,0 +1 @@ +{"uuid": "1e07bd43-eb96-4324-a1dc-9b278e032df4", "children": ["304c93db-f7dd-4906-a92d-1a02bc8f2f20"], "befores": [{"name": "context", "status": "passed", "start": 1785046566706, "stop": 1785046566712}], "afters": [{"name": "context::1", "status": "passed", "start": 1785046570777, "stop": 1785046570795}, {"name": "context::", "start": 1785046570795}], "start": 1785046566706, "stop": 1785046570795} \ No newline at end of file diff --git a/allure-results/fb5d1e37-76f7-4883-b5be-2ce1ae8e36a8-result.json b/allure-results/fb5d1e37-76f7-4883-b5be-2ce1ae8e36a8-result.json new file mode 100644 index 0000000..8d3b20a --- /dev/null +++ b/allure-results/fb5d1e37-76f7-4883-b5be-2ce1ae8e36a8-result.json @@ -0,0 +1 @@ +{"name": "Verify selected product is displayed in cart - Sauce Labs Bike Light", "status": "passed", "description": "Verify that each selected product appears correctly in the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046510997, "stop": 1785046527591}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046527592, "stop": 1785046527592}, {"name": "Login with valid credentials", "status": "passed", "start": 1785046527592, "stop": 1785046529854}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046529855, "stop": 1785046529865}, {"name": "Retrieve product name: Sauce Labs Bike Light", "status": "passed", "start": 1785046529865, "stop": 1785046529865}, {"name": "Add Sauce Labs Bike Light to cart", "status": "passed", "start": 1785046529865, "stop": 1785046530593}, {"name": "Open shopping cart", "status": "passed", "start": 1785046530593, "stop": 1785046531368}, {"name": "Verify cart page is loaded", "status": "passed", "start": 1785046531368, "stop": 1785046531368}, {"name": "Verify 'Sauce Labs Bike Light' is present in cart", "status": "passed", "start": 1785046531368, "stop": 1785046531383}, {"name": "Verify product name is displayed in cart", "status": "passed", "start": 1785046531383, "stop": 1785046531402}], "attachments": [{"name": "log", "source": "f78af204-f04b-4291-a4e9-e9d54542ce14-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "7bde4787-47f7-465f-9791-a6a9b7e6e41b-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Bike Light'}"}], "start": 1785046510997, "stop": 1785046531402, "uuid": "1074506d-17b2-43e1-bf42-23dc3240eb14", "historyId": "76a9f4df6f0f5e6e027ebeedd39133fa", "testCaseId": "1023375bdd60dd57ece9a953ebf251e0", "fullName": "tests.e2e.test_cart#test_product_is_displayed_in_cart", "labels": [{"name": "feature", "value": "Shopping Cart"}, {"name": "story", "value": "Verify Product in Cart"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "severity", "value": "critical"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "regression"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_cart"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "24861-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_cart"}], "titlePath": ["tests", "e2e", "test_cart.py"]} \ No newline at end of file diff --git a/allure-results/fbad63aa-81a6-4394-9ae9-e9a20feef998-container.json b/allure-results/fbad63aa-81a6-4394-9ae9-e9a20feef998-container.json new file mode 100644 index 0000000..3eb3091 --- /dev/null +++ b/allure-results/fbad63aa-81a6-4394-9ae9-e9a20feef998-container.json @@ -0,0 +1 @@ +{"uuid": "caa75af7-2635-4c2e-a59f-3c6e7421a077", "children": ["fe8a7034-c964-4f6f-bbcc-d629e9fd399b", "c72a1e42-0398-455d-a621-ff093f5617eb", "1203bebf-db2b-4e50-8e72-5e11e0144027", "5df0b7cc-b4d7-444b-8430-12128401448a", "6f631202-9ba1-4462-a836-a396d11796ce", "bf9c4c05-9138-4d59-ab12-782895346ac8", "3d40d7cb-6f90-48eb-8b7e-167dbd560241", "ee67d554-adf0-4e0c-ad55-7a8592448e2c", "4da8457f-71c2-4558-aa49-4871cb4b1663"], "befores": [{"name": "pytestconfig", "status": "passed", "start": 1785046621136, "stop": 1785046621136}], "afters": [{"name": "pytestconfig::", "start": 1785046684743}], "start": 1785046621136, "stop": 1785046684743} \ No newline at end of file diff --git a/allure-results/fc08984a-c0ab-4d01-8381-908e02787431-result.json b/allure-results/fc08984a-c0ab-4d01-8381-908e02787431-result.json new file mode 100644 index 0000000..86a3aa1 --- /dev/null +++ b/allure-results/fc08984a-c0ab-4d01-8381-908e02787431-result.json @@ -0,0 +1 @@ +{"name": "Verify user can add product to cart - Sauce Labs Backpack", "status": "passed", "description": "Verify that a logged-in user can add different products to the shopping cart.", "steps": [{"name": "Navigate to SauceDemo application", "status": "passed", "start": 1785046659719, "stop": 1785046661078}, {"name": "Retrieve valid user credentials", "status": "passed", "start": 1785046661078, "stop": 1785046661078}, {"name": "Login with valid credentials", "status": "passed", "start": 1785046661078, "stop": 1785046663271}, {"name": "Verify inventory page is loaded", "status": "passed", "start": 1785046663271, "stop": 1785046663279}, {"name": "Retrieve product name: Sauce Labs Backpack", "status": "passed", "start": 1785046663279, "stop": 1785046663279}, {"name": "Add Sauce Labs Backpack to cart", "status": "passed", "start": 1785046663279, "stop": 1785046664004}, {"name": "Verify Sauce Labs Backpack was added to cart", "status": "passed", "start": 1785046664004, "stop": 1785046664010}], "attachments": [{"name": "log", "source": "ad5a30c3-a314-4da1-be38-cb0671216e94-attachment.txt", "type": "text/plain"}, {"name": "stderr", "source": "8b1bef8d-bad3-4cc4-9a61-f0e8819995f0-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "product_data", "value": "{'name': 'Sauce Labs Backpack'}"}], "start": 1785046659719, "stop": 1785046664010, "uuid": "6f631202-9ba1-4462-a836-a396d11796ce", "historyId": "18c0b6e11870c1b4a215e5c03609355e", "testCaseId": "76249ae9582a105da809f2e4b4437aaf", "fullName": "tests.e2e.test_inventory#test_add_product_to_cart", "labels": [{"name": "story", "value": "Add Product to Cart"}, {"name": "feature", "value": "Inventory Management"}, {"name": "severity", "value": "critical"}, {"name": "epic", "value": "SauceDemo Application"}, {"name": "tag", "value": "e2e"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.e2e"}, {"name": "suite", "value": "test_inventory"}, {"name": "host", "value": "Prateeks-MacBook-Pro.local"}, {"name": "thread", "value": "25039-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.e2e.test_inventory"}], "titlePath": ["tests", "e2e", "test_inventory.py"]} \ No newline at end of file diff --git a/allure-results/fd0e0ee9-dd1f-4446-9418-dce48e718fdc-attachment.txt b/allure-results/fd0e0ee9-dd1f-4446-9418-dce48e718fdc-attachment.txt new file mode 100644 index 0000000..b9ccad0 --- /dev/null +++ b/allure-results/fd0e0ee9-dd1f-4446-9418-dce48e718fdc-attachment.txt @@ -0,0 +1,5 @@ +INFO pages.login_page:login_page.py:63 Attempting login with username: standard_user +INFO pages.login_page:login_page.py:67 Login action completed for username standard_user +INFO pages.inventory_page:inventory_page.py:26 Inventory page loaded: True +INFO pages.inventory_page:inventory_page.py:37 Adding product to cart: Sauce Labs Bolt T-Shirt +INFO pages.inventory_page:inventory_page.py:41 Product added to cart: Sauce Labs Bolt T-Shirt \ No newline at end of file diff --git a/allure-results/fe94daf6-c844-43f2-8f11-c4e41f32f435-container.json b/allure-results/fe94daf6-c844-43f2-8f11-c4e41f32f435-container.json new file mode 100644 index 0000000..1b73dd0 --- /dev/null +++ b/allure-results/fe94daf6-c844-43f2-8f11-c4e41f32f435-container.json @@ -0,0 +1 @@ +{"uuid": "55ff8b87-a0fa-456b-ab91-7a9dd17d2d08", "befores": [{"name": "product_data", "status": "passed", "start": 1785046518010, "stop": 1785046518010}], "afters": [{"name": "product_data::", "start": 1785046535862}], "start": 1785046518010, "stop": 1785046535862} \ No newline at end of file diff --git a/core/test_data_manager.py b/core/test_data_manager.py index 3d2d6e2..41fadff 100644 --- a/core/test_data_manager.py +++ b/core/test_data_manager.py @@ -44,3 +44,13 @@ def get(self, key: str) -> Any: return value + + def get_list(self, key: str) -> list: + """ + Retrieve a list of test data using a dot-separated key. + """ + value = self.get(key) + if not isinstance(value, list): + raise TypeError(f"Test data at '{key}' must be a list.") + return value + diff --git a/test_data/checkout.json b/test_data/checkout.json new file mode 100644 index 0000000..f30c9c5 --- /dev/null +++ b/test_data/checkout.json @@ -0,0 +1,17 @@ +{ + "valid_customers": [ + { + "test_id": "customer_01", + "first_name": "Prateek", + "last_name": "Dharwal", + "postal_code": "141001" + }, + { + "test_id": "customer_02", + "first_name": "John", + "last_name": "Doe", + "postal_code": "10001" + } + ] +} + diff --git a/test_data/users.json b/test_data/users.json index eef3c21..1b71ad8 100644 --- a/test_data/users.json +++ b/test_data/users.json @@ -1,15 +1,37 @@ { - "valid_user": { - "username": "standard_user", - "password": "secret_sauce" - }, - "invalid_user": { - "username": "invalid_user", - "password": "invalid_password" - }, - "locked_out_user": { - "username": "locked_out_user", - "password": "secret_sauce" - } + "valid_user": [ + { + "test_id": "valid_standard_user", + "username": "standard_user", + "password": "secret_sauce", + "expected_url": "/inventory.html" + }, + { + "test_id": "valid_problem_user", + "username": "problem_user", + "password": "secret_sauce", + "expected_url": "/inventory.html" + }, + { + "test_id": "valid_performance_glitch_user", + "username": "performance_glitch_user", + "password": "secret_sauce", + "expected_url": "/inventory.html" + } + ], + "invalid_users": [ + { + "test_id": "invalid_credentials", + "username": "invalid_user", + "password": "invalid_password", + "expected_error": "Epic sadface: Username and password do not match any user in this service" + }, + { + "test_id": "locked_out_user", + "username": "locked_out_user", + "password": "secret_sauce", + "expected_error": "Epic sadface: Sorry, this user has been locked out." + } + ] } diff --git a/tests/e2e/test_cart.py b/tests/e2e/test_cart.py index 20de088..5860248 100644 --- a/tests/e2e/test_cart.py +++ b/tests/e2e/test_cart.py @@ -3,19 +3,33 @@ from pages.login_page import LoginPage import pytest import allure +import json +from pathlib import Path + + +def load_inventory_test_data(): + """ + Load product test data from products.json for pytest parameterization. + """ + data_file_path = Path(__file__).parent.parent.parent/"test_data/products.json" + with data_file_path.open("r", encoding="utf-8") as data_file: + return json.load(data_file) + +inventory_test_data = load_inventory_test_data() @allure.epic("SauceDemo Application") @allure.feature("Shopping Cart") @allure.story("Verify Product in Cart") -@allure.title("Verify selected product is displayed in cart") -@allure.description("Verify that a selected product appears correctly in the shopping cart.") +@allure.title("Verify selected product is displayed in cart - {product_data[name]}") +@allure.description("Verify that each selected product appears correctly in the shopping cart.") @allure.severity(allure.severity_level.CRITICAL) @pytest.mark.regression @pytest.mark.e2e -def test_product_is_displayed_in_cart(page, config, test_data): +@pytest.mark.parametrize("product_data", inventory_test_data.values(), ids=lambda product: product["name"]) +def test_product_is_displayed_in_cart(page, config, test_data, product_data): """ - Verify that a selected product appears in the shopping cart. + Verify that each selected product appears in the shopping cart. """ with allure.step("Navigate to SauceDemo application"): @@ -23,17 +37,21 @@ def test_product_is_displayed_in_cart(page, config, test_data): login_page.navigate(config.get("application.base_url")) with allure.step("Retrieve valid user credentials"): - username = test_data.get("users.valid_user.username") - password = test_data.get("users.valid_user.password") + valid_user = test_data.get("users.valid_user")[0] + username = valid_user["username"] + password = valid_user["password"] with allure.step("Login with valid credentials"): login_page.login(username=username, password=password) - with allure.step("Retrieve product name"): - product_name = test_data.get("products.backpack.name") + with allure.step("Verify inventory page is loaded"): + inventory_page = InventoryPage(page) + assert inventory_page.is_loaded() + + with allure.step(f"Retrieve product name: {product_data['name']}"): + product_name = product_data["name"] with allure.step(f"Add {product_name} to cart"): - inventory_page = InventoryPage(page) inventory_page.add_product_to_cart(product_name) with allure.step("Open shopping cart"): @@ -46,3 +64,7 @@ def test_product_is_displayed_in_cart(page, config, test_data): with allure.step(f"Verify '{product_name}' is present in cart"): assert cart_page.is_product_in_cart(product_name) + with allure.step("Verify product name is displayed in cart"): + product_names = cart_page.get_product_names() + assert product_name in product_names + diff --git a/tests/e2e/test_checkout.py b/tests/e2e/test_checkout.py index 1d53d25..6ae042e 100644 --- a/tests/e2e/test_checkout.py +++ b/tests/e2e/test_checkout.py @@ -6,81 +6,119 @@ from pages.login_page import LoginPage import pytest import allure +import json +from pathlib import Path + + +def load_checkout_test_data(): + """ + Load checkout customer data from checkout.json. + """ + data_file_path = Path(__file__).parent.parent.parent/"test_data/checkout.json" + with data_file_path.open("r", encoding="utf-8") as data_file: + data = json.load(data_file) + + return data + + +def load_product_test_data(): + """ + Load product data from products.json. + """ + data_file_path = Path(__file__).parent.parent.parent/"test_data/products.json" + with data_file_path.open("r", encoding="utf-8") as data_file: + data = json.load(data_file) + + return data + +checkout_test_data = load_checkout_test_data() +product_test_data = load_product_test_data() + +# Create test combinations: +# Every product will be tested with every customer. +checkout_test_cases = [ + (product_data, customer_data) + for product_data in product_test_data.values() + for customer_data in checkout_test_data["valid_customers"] +] + +checkout_test_ids = [ + f"{product_data['name']} - {customer_data['test_id']}" + for product_data, customer_data in checkout_test_cases +] @allure.epic("SauceDemo Application") @allure.feature("Checkout") -@allure.story("Valid User Login") -@allure.title("Verify valid user can login successfully") -@allure.description("Verify that a valid user can successfully log into the SauceDemo application.") +@allure.story("Complete Product Checkout") +@allure.title("Verify checkout flow - {product_data[name]} - {customer_data[test_id]}") +@allure.description("Verify that a user can successfully complete the checkout flow using different products and customer information.") @allure.severity(allure.severity_level.CRITICAL) @pytest.mark.smoke @pytest.mark.regression @pytest.mark.e2e -def test_complete_checkout_flow(page, config, test_data): +@pytest.mark.parametrize("product_data, customer_data", checkout_test_cases, ids=checkout_test_ids) +def test_complete_checkout_flow(page, config, test_data, product_data, customer_data): """ - Verify that a user can complete a complete product purchase flow. + Verify that a user can complete a complete product purchase flow using data-driven product and customer combinations. """ - # -------------------------------- - # Login - # -------------------------------- - login_page = LoginPage(page) - login_page.navigate(config.get("application.base_url")) - username = test_data.get("users.valid_user.username") - password = test_data.get("users.valid_user.password") - login_page.login(username=username, password=password) + with allure.step("Navigate to SauceDemo application"): + login_page = LoginPage(page) + login_page.navigate(config.get("application.base_url")) + + with allure.step("Retrieve valid user credentials"): + valid_user = test_data.get("users.valid_user")[0] + username = valid_user["username"] + password = valid_user["password"] + with allure.step(f"Login with user: {valid_user['test_id']}"): + login_page.login(username=username, password=password) - # -------------------------------- - # Add Product - # -------------------------------- - inventory_page = InventoryPage(page) - product_name = test_data.get("products.backpack.name") - inventory_page.add_product_to_cart(product_name) + with allure.step("Verify inventory page is loaded"): + inventory_page = InventoryPage(page) + assert inventory_page.is_loaded() + with allure.step(f"Retrieve product name: {product_data['name']}"): + product_name = product_data["name"] + + with allure.step(f"Add {product_name} to cart"): + inventory_page.add_product_to_cart(product_name) - # -------------------------------- - # Open Cart - # -------------------------------- - inventory_page.open_cart() - cart_page = CartPage(page) - assert cart_page.is_loaded() - assert cart_page.is_product_in_cart(product_name) + with allure.step("Open shopping cart"): + inventory_page.open_cart() + with allure.step("Verify cart page is loaded"): + cart_page = CartPage(page) + assert cart_page.is_loaded() - # -------------------------------- - # Checkout - # -------------------------------- - cart_page.click_checkout() - checkout_page = CheckoutPage(page) - assert checkout_page.is_loaded() + with allure.step(f"Verify {product_name} is present in cart"): + assert cart_page.is_product_in_cart(product_name) + with allure.step("Proceed to checkout"): + cart_page.click_checkout() - # -------------------------------- - # Customer Information - # -------------------------------- - checkout_page.enter_customer_information(first_name="Prateek", last_name="Dharwal", postal_code="141001") - checkout_page.click_continue() + with allure.step("Verify checkout information page is loaded"): + checkout_page = CheckoutPage(page) + assert checkout_page.is_loaded() + with allure.step(f"Enter customer information for {customer_data['test_id']}"): + checkout_page.enter_customer_information(first_name=customer_data["first_name"], last_name=customer_data["last_name"], postal_code=customer_data["postal_code"]) - # -------------------------------- - # Checkout Overview - # -------------------------------- - checkout_overview_page = CheckoutOverviewPage(page) - assert checkout_overview_page.is_loaded() - assert checkout_overview_page.is_product_in_order(product_name) + with allure.step("Continue to checkout overview"): + checkout_page.click_continue() + with allure.step("Verify checkout overview page is loaded"): + checkout_overview_page = CheckoutOverviewPage(page) + assert checkout_overview_page.is_loaded() - # -------------------------------- - # Complete Order - # -------------------------------- - checkout_overview_page.click_finish() + with allure.step(f"Verify {product_name} is present in order"): + assert checkout_overview_page.is_product_in_order(product_name) + with allure.step("Complete the order"): + checkout_overview_page.click_finish() - # -------------------------------- - # Verify Completion - # -------------------------------- - checkout_complete_page = CheckoutCompletePage(page) - assert (checkout_complete_page.get_confirmation_message() == "Thank you for your order!") + with allure.step("Verify order confirmation message"): + checkout_complete_page = CheckoutCompletePage(page) + assert (checkout_complete_page.get_confirmation_message() == "Thank you for your order!") diff --git a/tests/e2e/test_inventory.py b/tests/e2e/test_inventory.py index 7e4e021..0d9bc77 100644 --- a/tests/e2e/test_inventory.py +++ b/tests/e2e/test_inventory.py @@ -2,19 +2,35 @@ from pages.login_page import LoginPage import pytest import allure +import json +from pathlib import Path + + +def load_inventory_test_data(): + """ + Load inventory test data directly from products.json for pytest parameterization. + """ + data_file_path = Path(__file__).parent.parent.parent/"test_data/products.json" + with data_file_path.open("r", encoding="utf-8") as data_file: + data = json.load(data_file) + + return data + +inventory_test_data = load_inventory_test_data() @allure.epic("SauceDemo Application") @allure.feature("Inventory Management") @allure.story("Add Product to Cart") -@allure.title("Verify user can add product to cart") -@allure.description("Verify that a logged-in user can add Sauce Labs Backpack to the shopping cart.") +@allure.title("Verify user can add product to cart - {product_data[name]}") +@allure.description("Verify that a logged-in user can add different products to the shopping cart.") @allure.severity(allure.severity_level.CRITICAL) @pytest.mark.smoke @pytest.mark.e2e -def test_add_product_to_cart(page, config, test_data): +@pytest.mark.parametrize("product_data", inventory_test_data.values(), ids=lambda product: product["name"]) +def test_add_product_to_cart(page, config, test_data, product_data): """ - Verify that a user can add product to the shopping cart. + Verify that a user can add different products to the shopping cart. """ with allure.step("Navigate to SauceDemo application"): @@ -22,8 +38,9 @@ def test_add_product_to_cart(page, config, test_data): login_page.navigate(config.get("application.base_url")) with allure.step("Retrieve valid user credentials"): - username = test_data.get("users.valid_user.username") - password = test_data.get("users.valid_user.password") + valid_user = test_data.get("users.valid_user")[0] + username = valid_user["username"] + password = valid_user["password"] with allure.step("Login with valid credentials"): login_page.login(username=username, password=password) @@ -32,12 +49,12 @@ def test_add_product_to_cart(page, config, test_data): inventory_page = InventoryPage(page) assert inventory_page.is_loaded() - with allure.step("Retrieve product name"): - product_name = test_data.get("products.backpack.name") + with allure.step(f"Retrieve product name: {product_data['name']}"): + product_name = product_data['name'] with allure.step(f"Add {product_name} to cart"): inventory_page.add_product_to_cart(product_name) - with allure.step("Verify product was added to cart"): + with allure.step(f"Verify {product_name} was added to cart"): assert inventory_page.get_cart_item_count() == "1" diff --git a/tests/e2e/test_login.py b/tests/e2e/test_login.py index eca9d98..9981ce4 100644 --- a/tests/e2e/test_login.py +++ b/tests/e2e/test_login.py @@ -1,6 +1,22 @@ from pages.login_page import LoginPage import pytest import allure +import json +from pathlib import Path + + +def load_login_test_data(): + """ + Load login test data directly from users.json for pytest parameterization. + """ + data_file_path = (Path(__file__).parent.parent.parent/"test_data"/"users.json") + + with data_file_path.open("r", encoding="utf-8") as data_file: + data = json.load(data_file) + + return data + +login_test_data = load_login_test_data() @allure.epic("SauceDemo Application") @@ -11,7 +27,8 @@ @allure.severity(allure.severity_level.CRITICAL) @pytest.mark.smoke @pytest.mark.e2e -def test_valid_login(page, config, test_data): +@pytest.mark.parametrize("user_data", login_test_data["valid_user"], ids=lambda user: user["test_id"]) +def test_valid_login(page, config, user_data): """ Verify that a valid user can log in successfully. """ @@ -20,13 +37,48 @@ def test_valid_login(page, config, test_data): login_page = LoginPage(page) login_page.navigate(config.get("application.base_url")) - with allure.step("Retrieve valid user credentials"): - username = test_data.get("users.valid_user.username") - password = test_data.get("users.valid_user.password") + # with allure.step("Retrieve valid user credentials"): + # username = test_data.get("users.valid_user.username") + # password = test_data.get("users.valid_user.password") + + with allure.step(f"Retrieve credentials for {user_data['test_id']}"): + username = user_data["username"] + password = user_data["password"] + + # with allure.step("Login with valid credentials"): + # login_page.login(username=username, password=password,) - with allure.step("Login with valid credentials"): - login_page.login(username=username, password=password,) + with allure.step(f"Login with user: {user_data['test_id']}"): + login_page.login(username=username, password=password) with allure.step("Verify user is successfully logged in"): - assert page.url.endswith("/inventory.html") + # assert page.url.endswith("/inventory.html") + assert page.url.endswith(user_data["expected_url"]) + + +@allure.epic("SauceDemo Application") +@allure.feature("Authentication") +@allure.story("Invalid User Login") +@allure.title("Verify invalid user login is rejected") +@allure.description("Verify that invalid or locked-out users cannot log into the SauceDemo application.") +@allure.severity(allure.severity_level.CRITICAL) +@pytest.mark.regression +@pytest.mark.e2e +@pytest.mark.parametrize("user_data", login_test_data["invalid_users"], ids=lambda user: user["test_id"]) +def test_invalid_login(page, config, user_data): + """ + Verify that invalid users cannot log in successfully. + """ + + with allure.step("Navigate to SauceDemo application"): + login_page = LoginPage(page) + login_page.navigate(config.get("application.base_url")) + + with allure.step(f"Login with user: {user_data['test_id']}"): + login_page.login(username=user_data["username"], password=user_data["password"]) + + with allure.step("Verify login error message"): + error_message = page.locator('[data-test="error"]') + assert error_message.is_visible() + assert error_message.inner_text() == user_data["expected_error"]