PHPUnit Selenium 测试在 Docker localhost 上失败并通过使用 public IP

PHPUnit Selenium tests fail on Docker localhost and pass using public IP

我正在尝试使用 Docker 和 Selenium Grid 设置一个自动化测试平台。 在下图中,您可以看到我正在使用的结构。 最上面是 Compute Engine 上的 ubuntu 服务器 运行ning。 左边是一个docker容器运行ningubuntu14.04。 容器 运行 是我们在 localhost:8080 上使用 Google App Engine 的项目。 右侧是 Selenium Hub,在端口 4444 上有两个节点 运行ning。

有从主机到 docker 以及 selenium hub 的端口转发。分别在 32772 和 32768。

当 运行 我将我的 Selenium 测试发送到集线器时,集线器又会 运行 在 docker 的本地主机上进行测试。 我的问题是,当我告诉集线器 运行 172.17.0.2:8080 上的测试时,它会打开启动屏幕,但无法提交任何表格。 当我提交表单时,文本区域被清除。就像页面以某种方式刷新一样。奇怪的是,当我像这样 xx.xx.xx.xx:32772 告诉集线器使用主机的外部 ip 和 docker 的端口时,它确实有效。 它具有所有功能。但是出于性能和自动化原因,我想 运行 它在内部 ip 地址上。

如有任何帮助,我们将不胜感激。

天津

问题出在我的 .env 文件中。会话域设置为主机 ip 而不是内部 ip 地址。通过更改它,该网站可以正常运行。