Frod

28.07.2026

playwright python proxy

Frod — свобода без границ

"Совершенствование автоматизированных тестов с помощью Playwright и Python: настройка прокси"

Навыки написания автоматизированных тестов – это не только необходимость для любого разработчика, но и ключевое преимущество в обеспечении качества ПО. Однако, при тестировании веб-приложений или API часто необходимо обходить ограничения по исходному IP-адресу, чтобы избежать блокировки или сбоев. Это где-то появляется прокси-сервер, который позволяет маскировать исходный IP-адрес и облегчает проход через ограничения.

В этом обзоре мы рассмотрим, как использовать Playwright и Python для автоматизированных тестов с настройкой прокси. Мы также рассмотрим разные варианты конфигурации и настроек для различных сред и окружений.

Установка Playwright и необходимых библиотек

Чтобы начать использовать Playwright в своих автоматизированных тестах, сначала установите последнюю версию пакета с помощью pip:

pip install playwright python-dotenv

Далее, установите дополнительные пакеты, необходимые для работы с прокси:

pip install requests

Настройка прокси

Настройка прокси в Playwright осуществляется с помощью Proxy класса. Чтобы использовать прокси, создайте экземпляр Proxy класса и передайте ему необходимые параметры:

from playwright.async_api import browser
from dotenv import load_dotenv
import os

Загрузка параметров окружения из файла .env
load_dotenv()

Получение прокси-сервера из параметров окружения
proxy = os.getenv('PROXY')

Создание экземпляра Proxy
proxy_settings = browser.new_context(
 proxy=proxy
)

Использование прокси в тестируемом приложении

После настройки прокси, его можно использовать в тестируемом приложении. Для этого создайте экземпляр context и передайте ему proxy_settings:

async def test_tutorial():
 # Создание экземпляра контекста с настройкой прокси
 context = await browser.new_context(
 proxy=proxy
 )

 # Создание экземпляра страницы
 page = await context.new_page()

 # Нажатие кнопки, чтобы обновить страницу
 await page.goto('https://example.com')

 # Проверка URL страницы
 assert page.url() == 'https://example.com'

 # Ожидание 2 секунды
 await context.close()

Применение в разных средах и окружениях

Прокси может быть необходим и в разных средах и окружениях, таких как локальные тесты, интеграционные тесты или тестирование веб-приложений. Чтобы использовать прокси в этих средах, нужно настроить его соответствующим образом:

  • Локальные тесты: Для локальных тестов необходимы отдельные настройки прокси. Чтобы настроить прокси для локальных тестов, создайте отдельный файл с конфигурацией proxies.json и используйте Proxy класс для создания экземпляра proxy:
    ```python
    from pathlib import Path
    from playwright.async_api import browser, Proxy
    import json

# Создание файла конфигурации прокси
proxies_path = Path('proxies.json')
proxies_path.write_text(json.dumps({
'http': 'http://example.com:8080',
'https': 'http://example.com:8080'
}))

# Загрузка конфигурации прокси
proxies = json.load(proxies_path.open())

# Создание экземпляра прокси
proxy = Proxy(
http=proxies['http'],
https=proxies['https']
)

# Создание экземпляра контекста с настройкой прокси
context = await browser.new_context(
proxy=proxy
)
* Интеграционные тесты: Для интеграционных тестов необходимы отдельные настройки прокси. Чтобы настроить прокси для интеграционных тестов, создайте отдельный файл с конфигурацией `proxies.json` и используйте `Proxy` класс для создания экземпляра `proxy`:python
from pathlib import Path
from playwright.async_api import browser, Proxy
import json

# Создание файла конфигурации прокси
proxies_path = Path('proxies.json')
proxies_path.write_text(json.dumps({
'http': 'http://example.com:8080',
'https': 'http://example.com:8080'
}))

# Загрузка конфигурации прокси
proxies = json.load(proxies_path.open())

# Создание экземпляра прокси
proxy = Proxy(
http=proxies['http'],
https=proxies['https']
)

# Создание экземпляра контекста с настройкой прокси
context = await browser.new_context(
proxy=proxy
)
* Тестирование веб-приложений: Для тестирования веб-приложений необходимы отдельные настройки прокси. Чтобы настроить прокси для тестирования веб-приложений, создайте отдельный файл с конфигурацией `proxies.json` и используйте `Proxy` класс для создания экземпляра `proxy`:python
from pathlib import Path
from playwright.async_api import browser, Proxy
import json

# Создание файла конфигурации прокси
proxies_path = Path('proxies.json')
proxies_path.write_text(json.dumps({
'http': 'http://example.com:8080',
'https': 'http://example.com:8080'
}))

# Загрузка конфигурации прокси
proxies = json.load(proxies_path.open())

# Создание экземпляра прокси
proxy = Proxy(
http=proxies['http'],
https=proxies['https']
)

# Создание экземпляра контекста с настройкой прокси
context = await browser.new_context(
proxy=proxy
)
```

В заключение, настройка прокси в Playwright и Python позволяет автоматизированным тестам обходить ограничения исходного IP-адреса и маскировать его с помощью прокси-сервера. Это позволяет полноценно тестировать веб-приложения и API в различных средах и окружениях.