Zalenium-无法启动正在测试的应用程序

问题描述

我的AUT在docker容器中运行,其URL为“ http:// localhost:8080 /”。现在,当我使用Zalenium触发测试时,它会启动浏览器,但是当它尝试导航到AUT的URL时,找不到它。是因为我的AUT在一个docker容器中运行,而Zalenium也在一个单独的docker容器中运行,并且它们彼此之间无法通信?

预先感谢。

解决方法

我认为这是应该起作用的方式。理想情况下,您希望容器包含隔离状态,直到您另行声明为止。

针对您的硒脚本,一种快速的解决方案,而不是localhost,请指定您的<machine name>。这样,您在zalenium中的脚本将希望通过网络(仍然是您)来解析地址,而不是尝试在其自己的网络环上内部解析localhost。

虽然这可能对您的机器有效,但它是静态的。您可能希望将其编写为解决方案的一部分,以便将其连接到多个。

在Java you can use this中获取正在运行的计算机名称:

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

或者,要提供一个更便于移植的解决方案,您可能需要查看docker networking pages

我认为this tutorial可能会对您有所帮助。 “使用独立容器联网”听起来不错。

总之,当您运行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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...