Zalenium - невозможно запустить тестируемое приложение

Мой AUT работает в док-контейнере, и его URL-адрес — http://localhost:8080/ . Теперь, когда я запускаю тесты с помощью Zalenium, он запускает браузер, но когда он пытается перейти к URL-адресу AUT, он не может его найти. Это потому, что мой AUT работает в док-контейнере, а Zalenium также работает в отдельном док-контейнере, и они оба не могут взаимодействовать друг с другом?

Заранее спасибо.


person Anoop    schedule 18.08.2020    source источник


Ответы (1)


Я думаю, так это должно работать. В идеале вы хотите, чтобы у содержимого была изоляция, пока вы не скажете иначе.

Быстрое решение, на своих селеновых скриптах вместо localhost укажите свой <machine name>. Таким образом, ваши скрипты в zalenium будут пытаться разрешить адрес через сеть (которой по-прежнему будете вы) вместо того, чтобы пытаться внутренне разрешить локальный хост в своем собственном сетевом кольце.

Хотя это, вероятно, сработает для вашей машины, оно немного статично. Вероятно, вы захотите написать его как часть своего решения, чтобы оно подключалось к нескольким.

В java вы можете использовать это для получения имени работающей машины:

    InetAddress addr;
    addr = InetAddress.getLocalHost();
    hostname = addr.getHostName();

В качестве альтернативы, чтобы создать более переносимое решение, вы можете просмотреть сетевые страницы docker.

Я думаю, что это руководство может вам помочь. Работа в сети с автономными контейнерами звучит правильно.

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

--network bridge

Или создайте свой собственный мост:

docker network create --driver bridge MyBridgeName

и запустите оба ваших контейнера на этом имени моста:

docker run -dit --name MyImageName --network MyBridgeName ImageToRun
docker run -dit --name OtherName --network MyBridgeName OtherImageToRun
person RichEdwards    schedule 18.08.2020