#docker #testing #proxy #automated-tests #testcafe
Вопрос:
Я пытаюсь запустить testcafe в нашем конвейере (семафоре), используя образ докера, основанный на официальном, где единственными дополнениями являются копирование наших тестов внутри него и установка некоторых других дополнительных пакетов npm, используемых ими. Эти тесты выполняются в тестовой среде, доступ к которой по соображениям безопасности возможен только через VPN или прокси-сервер. Я использую --proxy
флаг, но тестовый запуск завершается ошибкой с сообщением:
ERROR Unable to establish one or more of the specified browser connections
1 of 1 browser connections have not been established:
- chromium:headless
Hints:
- Use the "browserInitTimeout" option to allow more time for the browser to start. The timeout is set to 2 minutes for local browsers and 6 minutes for remote browsers.
- The error can also be caused by network issues or remote device failure. Make sure that the connection is stable and the remote device can be reached.
Я пытаюсь выяснить, в чем проблема, но, поскольку в testcafe нет подробного режима, и --dev
флаг, похоже, нигде ничего не регистрирует; поэтому я понятия не имею, почему он не подключается. Моя тестовая команда такова:
docker run --rm -v ~/results:/app/results --env HTTP_PROXY=$HTTP_PROXY $ECR_REPO:$TESTCAFE_IMAGE chromium:headless --proxy $HTTP_PROXY
Если я попытаюсь запустить тесты без флага прокси, они попадут в тестовую среду; не могу запустить тесты, так как показанная страница не является нашим приложением, а страницей обслуживания, которая по умолчанию используется для подключений за пределами vpn или не исходит от прокси.
Если я войду в контейнер testcafe и запущу:
curl https://mytestserver.dev --proxy $HTTP_PROXY
он подключается без каких-либо проблем.
Я также пытался использовать firefox:безголовый вместо Chromium, но я обнаружил, что он на самом деле полностью игнорирует опцию —proxy (считаю, что это ошибка).
У нас есть контейнер cypress в том же конвейере, проходящий через тот же прокси-сервер, и он подключается и безупречно выполняет тесты.
Любое представление о том, в чем может заключаться проблема, было бы весьма ценно.
Комментарии:
1. Вы можете собрать отладочную информацию , установив переменную
DEBUG
средыhammerhead:*,testcafe:*
, например:set DEBUG=hammerhead:*,testcafe:* testcafe chrome ./test.js 2> testcafe.log
Пожалуйста, поделитесь ею здесь или создайте новую проблему в репозитории GitHub TestCafe: github.com/DevExpress/testcafe/issues/…2. Спасибо за совет! Я создам новый выпуск журнала-это слишком долго, чтобы разместить здесь, но я наконец-то получил доступ к нашим прокси, логи и обнаружил, что он отрицает соединения, как по какой-то причине первоначальный браузера подключение осуществляется через прокси-сервер, так как это локальный адрес, то он это отрицает: TCP_DENIED/403 4464 вам 172.17.0.2:1337/браузер/подключения/sYNp3vU — HIER_NONE/- контент/HTML
3. @aleks-pro В конце концов я открыл проблему: github.com/DevExpress/testcafe/issues/6363