【发布时间】:2019-04-05 19:27:56
【问题描述】:
在 docker 容器中运行的浏览器需要对在我们网络中的测试 API 上运行的登录服务进行 POST。该服务对 POST 的来源非常挑剔,因此它拒绝 POST,因为它来自 host.docker.internal 而不是 localhost.company.com。
我不太可能将host.docker.internal 添加到白名单中。
如果浏览器在我的本地计算机上运行,POST 将正常工作,但当浏览器在我本地计算机上的容器内运行时失败。
我试过docker run --add-host='localhost.mycompany.com:127.0.0.1' 和docker run --add-host='localhost:127.0.0.1',都没有成功。后者似乎很愚蠢;这有点像在黑暗中拍摄......
一个可能的更复杂的情况是:浏览器在 Docker 容器内的 testcafe 中运行,所以我的请求会有像 'Origin: http://172.17.0.2:1337' 'Referer: http://172.17.0.2:1337/WBrtZV38p/http://host.docker.internal:3000/app/' 这样的标题
没有在我的本地机器上制作某种代理,有没有办法让来自 docker 容器的 POST 看起来来自我的本地机器?
【问题讨论】:
-
为某些浏览器提供了一个扩展,可以删除原始标头(或阻止它添加),如果仅用于测试目的,这可能会起作用
-
我发现了这个,即使我没有亲自使用过它应该可以解决问题:chrome.google.com/webstore/detail/requestly-redirect-url-mo/…
标签: docker automated-tests e2e-testing web-testing testcafe