运行 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.
就可以在其他机器上 运行 它
如我所见:
- 用户运行我的docker图片
- 镜像已安装java+chrome+selenium+gradle
- 在容器内启动项目测试。
- (可选)图像在图像外部共享测试结果(或者我可以连接到容器并查看它们)。
我该怎么办?
A 看到了很多关于容器、selenoid 等浏览器的教程(很酷)。
但我找不到解决问题的方法。
谢谢!
您需要做的是:
创建具有 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));
- 运行现在考试
建议 运行 测试作为 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
我当前的项目是 java selenium(使用 selenide 框架)使用 gradle 和 junit 进行自动测试。
现在,我想将我的整个项目包装到 docker 容器中,以便仅使用 docker.
就可以在其他机器上 运行 它如我所见:
- 用户运行我的docker图片
- 镜像已安装java+chrome+selenium+gradle
- 在容器内启动项目测试。
- (可选)图像在图像外部共享测试结果(或者我可以连接到容器并查看它们)。
我该怎么办?
A 看到了很多关于容器、selenoid 等浏览器的教程(很酷)。
但我找不到解决问题的方法。
谢谢!
您需要做的是:
创建具有 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));
- 运行现在考试
建议 运行 测试作为 docker-compose
多容器应用程序。
它将在 docker-compose
中提供 2 个服务,如我所见:
browser
- 基于 selenium Chrome 浏览器 imagetests
- 基于扩展java
基础 image 的自定义图像。自定义映像Dockerfile
应已安装gradle
并在其中构建测试 jar 文件。
测试应使用 RemoteWebDriver
驱动 Chrome 浏览器,初始化如下(注意 browser
远程 Chrome 正在侦听的主机名)。
public void createChromeDriverForRemote(){
WebDriver driver = new RemoteWebDriver("http://browser:4444/wd/hub", DesiredCapabilities.chrome());
}
查看快速入门here