千家信息网

怎么在docker中利用selenium+testng实现web自动化

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章给大家分享的是有关怎么在docker中利用selenium+testng实现web自动化,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看
千家信息网最后更新 2026年10月31日怎么在docker中利用selenium+testng实现web自动化

本篇文章给大家分享的是有关怎么在docker中利用selenium+testng实现web自动化,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Windows下selenium+testng的web自动化环境搭建

做过自动化的人,肯定对selenium web环境的搭建非常熟悉了,特别是selenium在java中的使用。

先搭建好安装好JDK,配置好java开发环境(这个如果还是不知怎么操作的话可是要打PP了)。然后从官网下载对应selenium的jar包,加载到项目里;或者是使用maven,修改pom.xml文件直接加载selenium的依赖包即可:

  org.seleniumhq.selenium selenium-java 3.14.0 

接着加上对应的浏览器驱动文件,就基本搞定环境了,可以开始自动化测试代码之路了。

当然大家在编写代码的过程中也会用到现在流行的单元测试框架testng。如何在这基础上增加testng环境?其实这也不是什么难事,在testng的官网(https://testng.org/doc/index.html)提供了Eclipse、IEDA等编辑器下如何安装插件,比如Eclipse直接进入Market搜索testng安装即可,使用maven则需要在pom.xml中添加依赖包:

jcenterbintrayhttp://jcenter.bintray.comorg.testngtestng6.10test

无脑等待下载安装完成,后续就是写代码了,然后就可以自由的挥洒了。

但是今天要介绍的不是上面这些,这种环境的搭建非常简单,大多数人其实都会,坑也不多,只是个代码环境而已。

我们这次要处理的麻烦事是什么呢?在现在日益发达的docker模式下,上述的编译环境没法在linux系统上跑了,没了代码编辑器、没了界面、也没了浏览器,那应该如何操作呢?让我们来看一看。

Docker的安装与使用

同样的,还是需要java+selenium+testng,只不过环境从windows变成了linux。

关于docker的使用这里稍稍给大家介绍一下安装、启动过程:

直接使用yum install docker命令安装;

service docker start启动docker服务;

然后docker pull centos搞定centos版本下最基本的docker镜像;

通过docker images命令可以列出当前所有镜像;

查看到linux的镜像后,使用docker run -it -d 镜像名称,让linux的容器跑起来(注意-it -d的参数,如果没有容器一闪而过就挂起了);

进入容器可先通过docker ps查看当前所有运行的容器,如果查不到,说明容器并没有启动,或者已经关闭了,docker ps会列出容器的id;

使用docker attach 容器id即可登录到容器中的linux了。

Docker下java环境搭建

容器里的linux其实和普通的linux操作是一样的了。

首先是安装jdk:

下载 jdk-8u181-linux-x64.tar.gz 包;

tar -xzvf jdk-8u181-linux-x64.tar.gz 解压,得到jdk1.8.0_181 目录(假设存放为/root/java/ 目录);

配置java的环境变量:

编辑环境变量文件:vi /etc/profile

加入内容:

 export JAVA_HOME=/root/java/jdk1.8.0_181  export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  export PATH=${JAVA_HOME}/bin:$PATH

刷新环境变量配置:

source /etc/profile

确认java版本是否生效:

java -version

到这里java环境算是解决了,也没什么特别的难度,一步步来即可。

Docker下testng环境配置

接下来就是testng了,因为环境类似java而且也和环境变量有关系,所以优先解决:

下载 testng-6.14.3.jar 包;

tar -xzvf testng-6.14.3.jar解压得到testng目录(假设放在 /root/java/testng/ 目录下) ;

继续编辑环境变量文件:

vi /etc/profile

加入内容:

export TESTNG_HOME=/root/java/testngexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH:$TESTNG_HOME/testng-6.14.3.jar

刷新环境变量配置:

source /etc/profile

注意这里的testng环境变量,其中的 CLASSPATH 是在java环境的基础上追加的,如果大家是在windows上配置,分隔符要换成 ; 且环境变量的互相调用形式不同,这是有一些区别的。

好了,可能有人会觉得,这不是很简单吗?

但是,如果这时候继续去执行的话,会发现开始报错了,也就是深坑来了,这是因为脱离了整个开发环境。

先提一下testng的执行步骤,假设自己写个test.java,记住要最简单的,别参合其他jar包之类的,其中包含包名为 simple ,类名为 test:

 javac test.java java org.testng.TestNG -testclass simple.test

看似非常简单,但是执行起来,到处都是错误,执行javac test.java,常见错误为:

java.lang.NoClassDefFoundError: com/beust/jcommander/

这是缺少因为缺少编译时用到的jar包,需要下载 jcommander-1.72.jar,我们将它放置在testng的jar包一起(假设放置在/root/java/testng/目录):

环境变量的CLASSPATH需要追加 :

CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH:$TESTNG_HOME/testng-6.14.3.jar:$TESTNG_HOME/jcommander-1.72.jar

继续刷新环境配置:

source /etc/profile

这之后一般就可以顺利编译,出现 test.class 文件了。

如果出现其他错误,比如与testng相关的包不存在等等,请检查环境变量配置是否正确。

最后就是运行的环节了,也是大家会遇到问题点最多的点了。

先提一下结构,比如上面 simple.test 的类,那么需要建立文件夹 simple 里面存放test.java。

CLASSPATH的环境变量里,需要有testng代码文件和包的顶级目录追加添加,假设为

 /root/java/testng/ /root/java/testng/simple/test.java

有了这样的结构前提,就可以通过命令执行了:

java org.testng.TestNG -testclass simple.test

出现结果,意味着运行成功了:

Total tests run: 1, Failures: 0, Skips: 0

如果你的代码中有测试用例@Test,但run出现0的话,说明还是失败的,只是没有给明确的报错而已。

当然到这里还没意味着结束。

因为你可能还会遇到缺乏各种依赖的jar包的问题:

可以通过参数将这些jar包都引入

 /root/java/testng/ /root/java/testng/simple/test.java

远程调用windows下浏览器

以为这就搞定环境,万事大吉了么?再补一刀,浏览器呢?没有浏览器得问题应该怎么解决呢?

请使用selenium自带的server部署到windows机器上。

这个问题的解决反而是比较简单的:

下载 selenium-server-standalone-3.14.0.jar 包;

放在指定目录(比如放在C盘根目录);

cd到该目录下:cd C:\

执行命令打开selenium remote服务:

java -jar selenium-server-standalone-3.14.0.jar -port 6666

接下来有人会问怎么指定浏览器?

只需要在java代码里,使用下面语句就可以对刚才在windows启动的服务进行调用了:

WebDriver driver = new RemoteWebDriver("http://ip:6666/wd/hub/", DesiredCapabilities.chrome());

以上就是怎么在docker中利用selenium+testng实现web自动化,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

环境 变量 容器 目录 代码 配置 文件 浏览器 浏览 自动化 命令 就是 镜像 问题 还是 这是 错误 服务 测试 编译 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司怎么样 互联网科技工作委员会 科技金融是不是互联网金融 圆梦互联网科技 疫情对互联网科技公司影响 重庆互联网络科技 互联网金融 金融科技 齐家互联网科技 天津摩尔互联网科技 郑州华宇互联网科技 互联网科技公司介绍 科技互联网大厂 迪庆互联网科技招生 内蒙古九一互联网科技 互联网科技的全部知识 广州百诚互联网科技有限公司官网 济南小医互联网科技有限公司招聘 北京天晋互联网科技有限公司 北京瑞云互联网科技有限公司 山东亿川互联网科技有限责任公司 奇酷互联网络科技公司 汇久创客互联网科技 北京禾田雨橡互联网科技 金融科技和互联网金融 科技类公司包括互联网吗 深圳艾果互联网通讯科技 科技互联网海报 元气玛特互联网科技公司是外包吗 上海钢联属于互联网科技股吗 河南商务圈互联网科技有限公司
0