Как получить доступ к RestFul Apis через платформу Appium-TestNG в AWS-Device Farm? - PullRequest
0 голосов
/ 18 мая 2018

Мы создали нашу инфраструктуру автоматизации с использованием Appium-TestNG, в которой мы обращаемся к нашим внутренним серверам через RestFul Apis извне.Внутренний сервер также основан на AWS и занесен в белый список IP-адресов фермы устройств.Когда мы выполняем тесты локально, он работает нормально, но когда мы выполняем его в AWS Device Farm, он выдает «Исключение сокета» при попытке доступа к внутренним серверам через наш API-интерфейс.

Может кто-нибудь дать нам решение, как получить доступ к внешнему Rest APIS через Device Farm?

1 Ответ

0 голосов
/ 24 мая 2018

Диапазон IP-адресов, указанный в FAQ фермы устройств , указывает на устройства, но не на хост устройства.Хост устройства может иметь широкий диапазон IP-адресов, но теоретически можно обойти эту проблему двумя способами:

  1. Используйте закрытое предложение от Фермы устройств.

Если у вас есть доступ к частному предложению для Device Farm, вы можете использовать интеграцию VPC как с устройствами, так и с хостом устройства.Так что при использовании этого метода не должно быть никакого белого списка.

Используйте частную интеграцию VPC API Gateway и вызывайте этот API из тестов

При использовании публичного предложения ( metered и unmetered опций) мы сможем воспользоваться преимуществами интеграции API Gateway с VPC.Используя частный NLB в том же VPC, что и REST API, мы можем создать ссылку VPC.Конечная архитектура, на мой взгляд, должна выглядеть следующим образом:

Device host to REST API

Тогда мы можем защитить API с помощью ключа API или Пользовательские авторизаторы .Итак, мы можем вызвать этот API, который ссылается на частный REST API с хоста устройства.

Примечание. Это может быть не лучшим решением в зависимости от варианта использования, так как тогда хост устройства будет иметь доступ кКлюч API.

Кроме того (я знаю, что вы не спрашивали об этом, но все равно хотели сослаться на него), самый простой способ разработки вызовов API REST, который я нашел, состоит в использовании Почтальон для успешного вызова REST API.Затем используйте функцию code snippet , чтобы совершать те же звонки на языках поддержки от почтальона.

Надеюсь, это поможет

-James

...