Я создаю набор тестов для тестов 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
Как использовать Playwright (с асинхронными методами) и Pytest для создания тестов E2E? ⇐ Python
Программы на Python
1736445036
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79343577/how-do-i-use-playwright-with-async-methods-and-pytest-to-create-e2e-tests[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия