【问题标题】:Zalenium - Unable to launch application under testZalenium - 无法启动正在测试的应用程序
【发布时间】:2020-08-18 00:32:56
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: selenium serenity-bdd cucumber-serenity zalenium


    【解决方案1】:

    我认为它应该是这样工作的。理想情况下,您希望包含隔离,直到您另有说明。

    一个快速的解决方案,在您的 selenium 脚本上,而不是 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
    

    【讨论】:

      猜你喜欢
      • 2021-05-30
      • 1970-01-01
      • 2015-03-02
      • 2014-07-21
      • 2016-08-15
      • 2014-08-27
      相关资源
      最近更新 更多