因为不同 case 需要用到不同的测试环境. 所以需要在不同节点绑定不同的 hosts. 环境是 selenium grid + docker

已经启动了 hub, 并且可以在启动节点容器的时候 使用--add-hosts 添加绑定 hosts 信息. 但是不同 case 如何知道或者如何控制 hub 调用相应的节点机呢? 有什么好办法吗?

目前已经想到的解决方案:
1, 一种浏览器为一种环境. 比如 所有的 firefox 容器 是环境 1, 所有用到环境 1 的 case 中全都使用 desired_capabilities={"browserName": "firefox"}, chrome 再添加另一种 hosts 绑定.
2, 启动多个 hub 容器绑定多个节点机用来区分华景,比如 4444 对应环境 1 的 hub, 4445 对应环境 2 的 hub
3, 在选择节点之前想办法进入到节点机中添加相应的 hosts 信息. ---- 目前没想到如何进入到节点机执行命令. 感觉不靠谱.
4, 只启动 hub 容器. 在执行 case 的时候利用 jenkins 传输相应的 hosts 绑定信息. 调用 shell 脚本启动节点容器.

目前只想到了这几个办法. 感觉 1 和 2 有点 low. 3 还未实现, 只有 4 还靠点谱. 请问各位大神是怎么解决这个问题的? 真心求教~


↙↙↙阅读原文可查看相关链接,并与作者交流