在docker中运行整个selenium项目(gradle+selenium+java+junit+docker)

gudnpqoy  于 2021-09-13  发布在  Java
关注(0)|答案(2)|浏览(482)

我目前的项目是JavaSelenium(带有selenide框架)与gradle和junit的自动测试。
现在,我想将我的整个项目 Package 到docker容器中,以便能够仅使用docker在其他机器上运行它。
在我看来:
用户运行我的docker映像
映像已安装java+chrome+selenium+gradle
在容器中启动项目测试。
(可选)图像在图像外部共享测试结果(或者我可以连接到容器并查看它们)。
我该怎么办?
a看了很多关于容器中的浏览器、selenoid等的教程(这很酷)。
但我找不到解决问题的办法。
谢谢

mfpqipee

mfpqipee1#

您需要做的是:
创建一个包含java、chrome、selenium、gradle、junit等的docker映像
获得映像后,在本地任何端口上运行它,例如:4444
切换到remotewebdriver

public static String remote_url_chrome = "http://localhost:4444/wd/hub";
ChromeOptions options = new ChromeOptions();
driver.set(new RemoteWebDriver(new URL(remote_url_chrome), options));

现在运行测试

eni9jsuy

eni9jsuy2#

建议按以下方式运行测试: docker-compose 多容器应用程序。
它将有两个服务在中国 docker-compose 在我看来: browser -基于selenium的chrome浏览器图像 tests -基于自定义图像扩展 java 基本图像。自定义图像 Dockerfile 应该有 gradle 安装并测试内置的jar文件。
测试应该驱动chrome浏览器使用 RemoteWebDriver 初始化如下(注意 browser 远程chrome正在侦听的主机名)。

public void createChromeDriverForRemote(){
    WebDriver driver = new RemoteWebDriver("http://browser:4444/wd/hub", DesiredCapabilities.chrome());
}

请参见此处的快速入门

相关问题