Как использовать Playwright (с асинхронными методами) и Pytest для создания тестов E2E?Python

Программы на Python
Ответить
Anonymous
 Как использовать Playwright (с асинхронными методами) и Pytest для создания тестов E2E?

Сообщение Anonymous »

Я создаю набор тестов для тестов E2E, которые проверяют сетевые запросы при навигации и взаимодействии с веб-сайтом. Я использую Playwright с async и использую conftest.py для настройки браузера (каждый тест будет использовать браузер), но я не знаю, как это сделать, чтобы разрешить использование тестовых методов в тесте. класс использует тот же контекст браузера, поэтому я могу разделить тесты, продолжая при этом предыдущий тест (сохраняя состояние входа и текущую страницу).
# conftest.py
import pytest
from playwright.async_api import async_playwright

@pytest.fixture(scope='class')
async def setup_browser(request: pytest.FixtureRequest):
async with async_playwright() as pw:
browser = await pw.chromium.launch(
headless=headless,
args=['--start-maximized', '--start-fullscreen']
)
context = await browser.new_context()
page = await context.new_page()
yield page
await browser.close()

# test_request_collector.py
import pytest
from helpers.request_handler import RequestHandler

class TestNetworkRequests:
@pytest.mark.asyncio
async def test_capture_network_requests_first_page(self, setup_browser):
async for page in setup_browser:
self.page = page
request_handler = RequestHandler()
trigger = self.page.goto("https://google.com")
requests = await request_handler.return_requests(self.page, trigger)
await request_handler.print_requests(requests)
assert requests is not None

@pytest.mark.asyncio
async def test_capture_network_requests_second_page(self, setup_browser):
async for page in setup_browser:
self.page = page
request_handler = RequestHandler()
trigger = self.page.goto("https://bing.com")
requests = await request_handler.return_requests(self.page, trigger)
await request_handler.print_requests(requests)
assert requests is not None


Подробнее здесь: https://stackoverflow.com/questions/793 ... -e2e-tests
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»