2016-08-24 18 views
4

我正在尝试使用Docker和Selenium Grid设置自动化测试平台。 在下图中,您可以看到我正在使用的结构。 最上面是运行在Compute Engine上的ubuntu服务器。 左边是运行ubuntu 14.04的docker容器。 容器使用Google App Engine在localhost:8080上运行我们的项目。 右边是硒的集线器在端口4444PHPUnit Selenium测试在Docker本地主机上失败并且使用公共IP传递

Selenium Setup

有从主机portforwarding到泊坞窗运行藏汉为硒枢纽两个节点。分别在32772和32768。

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

任何帮助,将不胜感激。

Tijn

+0

你如何将你的容器端口绑定到主机的端口? –

+0

我已经尝试了两种方法,通过将它们映射到我选择的端口,如“码头运行-p 8888:8080 myimage”,但在这种情况下,它已完成自动端口转发。所以只需-p 8080标签。 – Tijn

+0

你如何提供内容?你在用nginx吗?如果是这样的话。什么是配置? –

回答

1

问题出在我的.env文件中。会话域被设置为主机IP而不是内部IP地址。通过改变它,网站的工作就像它应该。

相关问题