Використання проксі для тестування автоматизації на вебсайтах та додатках у різних країнах
Socks5Proxy продає private датацентр проксі для автоматизованого тестування (від $0.4680 за 1 IP на місяць). Ви можете запускати однакові тести з різних країн через Selenium, Playwright, Puppeteer на CI серверах.
Коли потрібні проксі для тестування?
Якщо сервіс доступний у багатьох країнах, потрібно тестувати функції, які працюють по-різному в кожній країні. Автоматичний вибір мови, відображення валюти та цін, список методів оплати, регіональні обмеження, вікно згоди на використання cookies - все це можна перевірити лише з IP відповідної країни.
Проксі також необхідні для тестування навантаження або функцій обмеження підключення, коли потрібні одночасні запити з кількох IP. Це дозволяє перевірити, чи правильно працюють обмеження запитів вашого сервісу на основі IP та чи правильно застосовуються правила блокування для певних країн.
Також можна перевірити коректність інтеграції зовнішніх сервісів, таких як карти, оплата чи рекламні скрипти, для різних країн.
Які проксі підходять для тестування?
Для повторюваних тестів рекомендуємо приватні датацентрові проксі. IP зафіксовані на весь термін плану, що дозволяє порівнювати результати в однакових умовах. Безлімітна пропускна здатність та підключення дозволяють без проблем запускати тести в браузерах.
Якщо вам потрібно перевірити поведінку, яка відображається лише для домашніх користувачів, наприклад, як системи протидії шахрайству обробляють підключення з датацентрів, підготуйте приватні ISP проксі. Для тестування навантаження з багатьох одночасних запитів спільні датацентрові проксі будуть економічним вибором.
| Тестування | Рекомендовані товари | Причина |
|---|---|---|
| Тестування сторінок та функцій за країнами | Private датацентр | Повторювати однакові умови з фіксованим IP |
| Тестування умов підключення домашніх користувачів | Private ISP | IP з діапазону інтернет-провайдера |
| Тестування обмежень і навантаження | Спільний datacenter | Багато IP за низькою ціною |
| Довгострокові тести | Private датацентр (річна підписка) | Той самий IP протягом одного року |
Як підключити інструменти автоматизації браузера?
Playwright найпростіший у використанні: ви можете вказати адресу проксі, ім'я користувача та пароль у proxy при відкритті браузера. У Puppeteer використовуйте аргумент --proxy-server для адреси та page.authenticate для передачі імені користувача та пароля.
Selenium з Chrome не підтримує прямий ввід пароля проксі, тому зручніше використовувати IP-авторизацію. Якщо зареєструвати IPv4 вашого тестового сервера в панелі керування, можна підключатися лише за допомогою ip:port, без логіна та пароля. Приклади коду для кожного інструменту є на сторінці посібників.
- Playwright: proxy з server, username, password
- Puppeteer: --proxy-server + page.authenticate
- Selenium + Chrome: використання IP-авторизації (лише ip:port)
- Якщо вам потрібен SOCKS5, використовуйте SOCKS5 порт, який є в кожному рядку
Як працювати на CI-сервері?
Якщо вихідний IP вашого CI-сервера фіксований, додайте його до IP-авторизації. Це спрощує управління, оскільки вам не потрібно зберігати паролі у сховищах або файлах налаштувань. Якщо IP часто змінюється, зберігайте ім'я користувача та пароль у сховищі секретів і читайте їх під час запуску тестів.
Якщо отримувати актуальний список через API при запуску тесту та розподіляти за країнами, вам не потрібно вписувати IP у тестовий код. Ви можете отримати лише потрібні рядки, додавши умови країни та протоколу до GET /proxies.
Залишайте у результатах тестів використані IP та країни. Так ви швидко зрозумієте, чи виникають помилки лише у певних країнах чи на певних IP.
Що потрібно налаштувати, щоб результати були достовірними?
Разом із країною IP налаштуйте мову браузера, часовий пояс та розмір екрану для кожного тестового сценарію. Якщо ці значення змінюються, результати можуть бути нестабільними.
Для тестів, де затримка мережі впливає на результати, варто вибирати IP, близькі до тестового сервера. Окремий запис часу відповіді проксі та вашого сервісу допоможе визначити джерело проблем.
Скільки коштують проксі для тестування?
Початкова ціна за 1 IP на місяць для приватних датацентрових проксі $0.4680, приватних ISP проксі $0.5850 (у доларах США). Для тестування достатньо кількох IP на країну, а для постійних регресивних тестів річна оплата дозволяє заощадити 30%.
Як створити тестові сценарії за країнами?
Складіть таблицю з очікуваними результатами для кожної країни, щоб полегшити автоматизацію. Наприклад, зазначте, що для IP з США мають відображатися ціни в доларах та англійська версія, для IP з Німеччини - ціни в євро та німецька версія, для IP з Японії - ціни в єнах та японська версія. Потім тестовий код відкриватиме сторінки через проксі для кожної країни та порівнюватиме з таблицею.
Додайте до таблиці елементи, які відображаються або приховані залежно від країни, такі як список способів оплати, інформація про доставку або екран згоди на cookies. Запускаючи той самий сценарій під час кожного розгортання нової функції, ви можете виявити проблеми, які виникають лише в певних країнах, перед запуском.
Для порівняння екранів використовуйте окремі шаблони для кожної країни та порівнюйте знімки, зроблені з одного IP, щоб уникнути непотрібних відмінностей.
- Створення таблиці очікуваних результатів за країнами
- Елементи залежно від країни, такі як оплата, доставка та згода
- Повторення одного сценарію для кожного розгортання
Як керувати налаштуваннями проксі при спільному використанні командою?
Не вписуйте IP у тестовий код, а отримуйте список за країнами через API при запуску тесту. Так вам не доведеться змінювати код при зміні плану чи додаванні країн. API-ключі можна зберігати у сховищі секретів CI, а на ПК розробників - у змінних оточення для безпеки.
Якщо кілька команд використовують один обліковий запис, розділіть плани для кожної команди, щоб списки не змішувалися. Якщо результати тестування включають план та країну, це допомагає ідентифікувати команду.
Рекомендуємо додати перевірку стану проксі перед тестами. Надішліть простий запит через кожен проксі перед початком тестування, щоб визначити, чи проблема у сервісі чи підключенні.
Що варто враховувати під час тестування?
Проводьте тестування навантаження та обмеження підключення лише на сервісах, якими ви керуєте або маєте дозвіл. Навантажувальні атаки на інші сервіси заборонені та можуть призвести до блокування облікового запису.