#angularjs #websocket #saucelabs
#angularjs #websocket #saucelabs
Вопрос:
Я пытаюсь выполнить несколько простых тестов для приложения, которое запускает websockets. Соединение с wesocket внезапно прекращается, и тесты завершаются неудачей. Тесты вообще не связаны с websockets. Речь идет о нажатии кнопки на странице, которая появляется только после получения некоторых данных через websockets. Я приложил скриншот из сеанса ручного управления.
Комментарии:
1. Я испытываю то же самое и подал заявку в службу поддержки Sauce Labs. Я сообщу вам результат.
2. Здравствуйте, был ли разрешен запрос?
3. Нет. Я предполагаю, что Sauce Connect в настоящее время не поддерживает WebSockets. Они собираются обновить меня, когда добавят его.
Ответ №1:
На сегодняшний день он не поддерживается напрямую (SauceLabs использует Squid в качестве прокси-сервера для своего плагина Connect, который ввел это ограничение на их стороне).
Однако, если вы все еще хотите использовать Sauce Connect, вы можете довольно легко обойти эту проблему, применив обходной путь, о котором я писал в блоге здесь .
Основная идея заключается в следующем:
- Разместите одну пустую страницу на общедоступном URL-адресе (например: qa.yoursite.com/test-container.html ). Эта страница не содержит ничего, кроме ссылки скрипта на localhost (что-то вроде localhost/injected.js )
- Когда вы запускаете Sauce Connect (если вы используете Travis CI, прочитайте мою запись в блоге, там есть комментарий по этому поводу) с флагом -D над вашим доменом:
bin / sc -D *.yoursite.com
- На вашем компьютере / сервере CI размещается injected.js файл локально. Этот файл может выполнять тесты WebSockets, даже если он извлекается через SSH-туннель, поскольку он содержится на нетуннелированной странице (yoursite.com/test-container.html )
Ответ №2:
Начиная с блога orcaman, SauceLabs добавили https://docs.travis-ci.com/user/sauce-connect/#Additional-options в их сценарии. Теперь вы можете указать direct_domains
, no_ssl_bump_domains
, и tunnel_domains
непосредственно из своего .travis.yml
.
Я использовал следующую конфигурацию
# https://docs.travis-ci.com/user/sauce-connect/
sauce_connect:
username: "jdanekrh"
access_key:
secure: "****"
no_ssl_bump_domains: "127.0.0.1,localhost"
Предполагается no_ssl_bump_domains
, что прокси-сервер squid не сможет взломать мои веб-сокеты. Кажется, у меня это работает. = [1], [2]
Источник: https://wiki.saucelabs.com/display/DOCS/Troubleshooting Соус Раздел подключения, Отключающий блокировку SSL.
Комментарии:
1. Однако я не совсем понимаю, что означает этот параметр. Что данные между SauceLabs и моим сайтом будут незашифрованными? Вероятно, нет, поскольку он находится внутри туннеля…