testcafe не удается подключиться к серверу при использовании опции —прокси

#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