我的AUT在一个docker容器中运行,它的URL是"http://localhost:8080/“。现在,当我使用Zalenium触发测试时,它会启动浏览器,但是当它试图导航到AUT的URL时,它找不到它。是不是因为我的AUT运行在一个docker容器中,而Zalenium也运行在一个单独的docker容器中,并且它们都不能相互通信?
提前谢谢。
发布于 2020-08-18 16:43:06
我认为这就是它应该是如何工作的。理想情况下,您希望contains具有隔离性,除非您另有说明。
一个快速的解决方案是,在您的selenium脚本上指定您的<machine name>,而不是localhost。这样,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 OtherImageToRunhttps://stackoverflow.com/questions/63460285
复制相似问题