运行 docker 中的整个 selenium 项目(Gradle + Selenium + java + junit + docker)

Run whole selenium project in docker (Gradle + Selenium + java + junit + docker)

我当前的项目是 java selenium(使用 selenide 框架)使用 gradle 和 junit 进行自动测试。

现在,我想将我的整个项目包装到 docker 容器中,以便仅使用 docker.

就可以在其他机器上 运行 它

如我所见:

我该怎么办?

A 看到了很多关于容器、selenoid 等浏览器的教程(很酷)。

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

谢谢!

您需要做的是:

  1. 创建具有 Java、Chrome、selenium、gradle、junit 等的 docker 图像

  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. 运行现在考试

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

它将在 docker-compose 中提供 2 个服务,如我所见:

  • browser - 基于 selenium Chrome 浏览器 image
  • tests - 基于扩展 java 基础 image 的自定义图像。自定义映像 Dockerfile 应已安装 gradle 并在其中构建测试 jar 文件。

测试应使用 RemoteWebDriver 驱动 Chrome 浏览器,初始化如下(注意 browser 远程 Chrome 正在侦听的主机名)。

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

查看快速入门here