TestCafe, CircleCI 2.0 и SauceLabs - не удается заставить эту комбинацию работать
Итак, я могу с моего ноутбука сделать следующее: testcafe "saucelabs:Chrome@70.0:Windows 10" tests/settings/users.js
Это позволит подключиться к SauceLabs для запуска теста (или нескольких тестов, работающих в любом случае), чтобы нанести ответный удар по нашему серверу разработки. (IP были занесены в белый список, все работает).
Я также могу, конечно, войти в соусные лаборатории, открыть браузер "живого тестирования", подключиться к этой среде / войти и т. Д.
Таким образом, "SauceLabs =-> Моя среда" в порядке.
Если я попытаюсь выполнить сборку на окружности, чтобы сделать именно это, то это не получится.
В моей роли у меня есть следующий код:
const getPageHTML = ClientFunction(() => document.documentElement.outerHTML);
let value = await getPageHTML();
console.log(value);
const pageLink = ClientFunction (() => window.location.href);
value = await pageLink();
console.log(value);
Это распечатает, что весь externalHTML только
<html><head></head><body></body></html>
Он выведет, что текущий URL-адрес "about:blank"
Итак, мой вопрос... при запуске тестов с использованием соусников FROM CIRCLE, мне нужно будет добавить в белый список CIRCLE?
Кажется, я не могу понять, в чем разница между функционалом и выполнением между запуском тестов на моем ноутбуке и кругом, когда мы ИСПОЛЬЗУЕМ браузеры с соусами.
Является ли "IP, с которого выполняются тесты" (белый список ip), кругом CI на этом этапе, или соусами? Я, конечно, предполагал, что это соусники.
ПРИМЕЧАНИЕ: я действительно смог просто пройти тест testcafe "example.js" и заставить его работать с использованием круга / соусника. Так что это буквально связано с тем, что мы просто запускаем тесты обратно в мою среду. Я хотел бы узнать больше о том, что было бы "исходным диапазоном IP-адресов", если бы Circle запускал тесты, "используя" браузеры saucelab.
Любой совет будет принята с благодарностью!
(просто очень трудно понять, как решить проблему)
2 ответа
Чтобы SauceLabs выполнял приложение, работающее в контейнерах CircleCI, вам необходимо использовать туннель подключения Sauce, поскольку службы, работающие в контейнере CircleCI, недоступны из Интернета.
CircleCI и SauceLabs объединились для создания "шара", который упрощает настройку туннеля. Я не знаком с TestCafe, но он должен решить проблемы с подключением.
Вы можете увидеть пример SauceLabs (хотя и с использованием Maven / Java) в CircleCI здесь, https://github.com/eddiewebb/demo-blueskygreenbuilds/blob/master/.circleci/config.yml#L17, но в основном
- saucelabs/with_proxy:
name: "Chrome Tests"
requires:
- "Unit Test"
tunnel_identifier: chrome
steps:
- maven/with_cache:
steps:
- run: ./mvnw verify -B -Dspring.profiles.active=it -Dsauce.tunnel="chrome"
Вам нужно использовать Connect Snel Tunnel для соединения с CircleCI, как @Eddie упомянул в своем ответе.
Протестированный сайт защищен настройками прокси, а SauceLabs внесен в белый список. Решение состоит в том, чтобы добавить CircleCI в белый список вашей компании.
Браузер SauceLab === tunnel (ok)===> Прокси-сервер Testcafe (CircleCI) === межсетевой экран (сбой)===> Сайт на вашем компьютере