Как отправить HTTP-запросы с устройства на сервер, который работает в тестовом прогоне Xamarin Test Cloud
Я использую Xamarin.UITest для автоматизированных тестов приложений для Android и iOS. Это приложение делает некоторые HTTP-запросы к веб-серверу.
В целях тестирования и для того, чтобы легко ответить необходимыми данными для тестового примера, я запускаю временный HTTP-сервер (я использую HttpListener) в тесте и настраиваю приложение, чтобы оно выполняло запросы к этому временному серверу.
Когда я запускаю локальные тесты на своих устройствах и симуляторах, все работает.
Когда я запускаю тесты в тестовом облаке Xamarin, я не могу подключиться к HTTP-серверу. URL в этом случае будет http://executionhost11.prod/:/...
Возможен ли этот вариант использования в тестовом облаке Xamarin?
Должен ли я использовать некоторые конкретные порты (я пробовал 8081 и 7103)?
2 ответа
Служба поддержки Xamarin сообщила мне, что мой вариант использования не поддерживается Xamarin Test Cloud.
Между устройствами и исполнителем установлены межсетевые экраны, которые предотвращают соединение устройства с тестовым исполнителем.
Рекомендуемые модели:
- раскрутить размещенный на облаке http-сервер
- запустить http-сервер на устройстве
Требования для подключения к Test Cloud описаны в руководстве " Отправка тестов в Xamarin Test Cloud". В частности это говорит:
Требуется доступ в Интернет к веб-серверам Test Cloud. Межсетевые экраны должны быть настроены на пропуск трафика на серверы Test Cloud по следующим IP-адресам:
- 195.249.159.238
- 195.249.159.239
Для серверов Test Cloud требуются порты 80 и 443.
Приложения Android должны запрашивать разрешение ИНТЕРНЕТ в AndroidManifest.XML.
Информация здесь верна, загружаете ли вы тесты (это основной сценарий, описанный в руководстве); и остается неизменным при связи с сервером, так как вашему серверу потребуется доступ к этим IP-адресам.