我目前的项目是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());
}
看这里快速开始
你需要做的是:
-
创建一个docker镜像,包含Java, Chrome, selenium, gradle, junit等
-
一旦您有了映像,在您的本地任意端口上运行它: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));
- 现在运行测试