在docker中运行整个selenium项目(Gradle + selenium + java + junit + do



我目前的项目是java selenium (with selenide framework)与gradle和junit的自动测试。

现在,我想把我的整个项目包装到docker容器中,这样就可以只使用docker在其他机器上运行。

如我所见:

  • User run my docker image
  • 图片已安装java + chrome + selenium + gradle
  • 项目测试在容器内启动。
  • (可选)图像共享外部图像的测试结果(或者我可以连接到容器并查看它们)。

我该怎么办?

A看到了很多关于浏览器在容器,硒等(这很酷)的教程。

但是我找不到解决问题的方法。

谢谢!

建议作为docker-compose多容器应用程序运行测试。

我看到docker-compose中有2个服务:

  • browser-基于硒的Chrome浏览器图片
  • tests-基于自定义图像扩展java基本图像。自定义镜像Dockerfile应该安装了gradle,并在其中内置了测试jar文件。

测试应该使用RemoteWebDriver初始化Chrome浏览器,如下所示(注意browser主机名,远程Chrome正在监听)。

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

看这里快速开始

你需要做的是:

  1. 创建一个docker镜像,包含Java, Chrome, selenium, gradle, junit等

  2. 一旦您有了映像,在您的本地任意端口上运行它:4444

  3. 切换到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));
  1. 现在运行测试

最新更新