Запуск pytest с аргументами
Код: Выделить всё
tests/test_burger_menu.py::test_open_burger_menu --no-header --no-summary -q
Запустить эмулятор: emulator -avd Pixel
Запустить Appium: appium --allow-insecure="*:chromedriver_autodownload"
confest.py
Код: Выделить всё
import pytest
from appium import webdriver
from appium.options.android import UiAutomator2Options
def pytest_addoption(parser):
parser.addoption("--appium-url", action="store", default="http://127.0.0.1:4723")
parser.addoption("--udid", action="store", default="emulator-5554")
parser.addoption(
"--base-url",
action="store",
default="https://www.example.com",
)
@pytest.fixture(scope="session")
def base_url(request) -> str:
return request.config.getoption("--base-url")
@pytest.fixture
def driver(request):
appium_url = request.config.getoption("--appium-url")
udid = request.config.getoption("--udid")
options = UiAutomator2Options()
options.platform_name = "Android"
options.automation_name = "UiAutomator2"
options.udid = udid
options.browser_name = "Chrome"
options.new_command_timeout = 120
options.set_capability("appium:uiautomator2ServerLaunchTimeout", 120000)
options.set_capability("appium:uiautomator2ServerInstallTimeout", 120000)
options.set_capability("appium:uiautomator2ServerStartupTimeout", 120000)
options.set_capability("appium:skipLogcatCapture", True)
options.set_capability("appium:clearSystemFiles", True)
options.set_capability("appium:ignoreHiddenApiPolicyError", True)
# Important for mobile Chrome: don't wait for full page load (reduces hangs/crashes)
options.set_capability("pageLoadStrategy", "none")
# Disable first-run/Welcome screen in Chrome
options.set_capability("appium:chromeOptions", {"args": ["--disable-fre", "--no-first-run"]})
drv = webdriver.Remote(appium_url, options=options)
try:
yield drv
finally:
drv.quit()
Код: Выделить всё
import pytest
from appium import webdriver
from appium.options.android import UiAutomator2Options
def pytest_addoption(parser):
parser.addoption("--appium-url", action="store", default="http://127.0.0.1:4723")
parser.addoption("--udid", action="store", default="emulator-5554")
parser.addoption(
"--base-url",
action="store",
default="https://www.particleformen.com/?store_switch=en",
)
@pytest.fixture(scope="session")
def base_url(request) -> str:
return request.config.getoption("--base-url")
@pytest.fixture
def driver(request):
appium_url = request.config.getoption("--appium-url")
udid = request.config.getoption("--udid")
options = UiAutomator2Options()
options.platform_name = "Android"
options.automation_name = "UiAutomator2"
options.udid = udid
options.browser_name = "Chrome"
options.new_command_timeout = 120
options.set_capability("appium:uiautomator2ServerLaunchTimeout", 120000)
options.set_capability("appium:uiautomator2ServerInstallTimeout", 120000)
options.set_capability("appium:uiautomator2ServerStartupTimeout", 120000)
options.set_capability("appium:skipLogcatCapture", True)
options.set_capability("appium:clearSystemFiles", True)
options.set_capability("appium:ignoreHiddenApiPolicyError", True)
# Important for mobile Chrome: don't wait for full page load (reduces hangs/crashes)
options.set_capability("pageLoadStrategy", "none")
# Disable first-run/Welcome screen in Chrome
options.set_capability("appium:chromeOptions", {"args": ["--disable-fre", "--no-first-run"]})
drv = webdriver.Remote(appium_url, options=options)
try:
yield drv
finally:
drv.quit()
Код: Выделить всё
import pytest
import allure
from pages.home_page import HomePage
@allure.epic("Mobile Web Tests")
@allure.feature("Home Page")
@pytest.mark.smoke
@allure.story("Burger menu functionality")
def test_open_burger_menu(driver, base_url):
with allure.step("Open home page"):
HomePage(driver).open(base_url).assert_loaded()
with allure.step("Open burger menu"):
HomePage(driver).open_menu()
with allure.step("Verify menu is opened"):
HomePage(driver).assert_menu_opened()
AssertionError: Burger не открыт. class='burger'
Подробнее здесь: https://stackoverflow.com/questions/798 ... ass-burger
Мобильная версия