Windows下selenium+testng的web自动化环境搭建html
作过自动化的人,确定对selenium web环境的搭建很是熟悉了,特别是selenium在java中的使用。java
先搭建好安装好JDK,配置好java开发环境(这个若是仍是不知怎么操做的话但是要打PP了)。而后从官网下载对应selenium的jar包,加载到项目里;或者是使用maven,修改pom.xml文件直接加载selenium的依赖包便可:linux
1 <dependency> 2 <groupId>org.seleniumhq.selenium</groupId> 3 <artifactId>selenium-java</artifactId> 4 <version>3.14.0</version> 5 </dependency>
接着加上对应的浏览器驱动文件,就基本搞定环境了,能够开始自动化测试代码之路了。web
固然你们在编写代码的过程当中也会用到如今流行的单元测试框架testng。如何在这基础上增长testng环境?其实这也不是什么难事,在testng的官网(https://testng.org/doc/index.html)提供了Eclipse、IEDA等编辑器下如何安装插件,好比Eclipse直接进入Market搜索testng安装便可,使用maven则须要在pom.xml中添加依赖包:面试
1 <repositories> 2 <repository> 3 <id>jcenter</id> 4 <name>bintray</name> 5 <url>http://jcenter.bintray.com</url> 6 </repository> 7 </repositories> 8 9 <dependency> 10 <groupId>org.testng</groupId> 11 <artifactId>testng</artifactId> 12 <version>6.10</version> 13 <scope>test</scope> 14 </dependency>
无脑等待下载安装完成,后续就是写代码了,而后就能够自由的挥洒了。
可是今天要介绍的不是上面这些,这种环境的搭建很是简单,大多数人其实都会,坑也很少,只是个代码环境而已。chrome
咱们此次要处理的麻烦事是什么呢?在如今日益发达的docker模式下,上述的编译环境无法在linux系统上跑了,没了代码编辑器、没了界面、也没了浏览器,那应该如何操做呢?让咱们来看一看。docker
Docker的安装与使用windows
一样的,仍是须要java+selenium+testng,只不过环境从windows变成了linux。centos
关于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
加入内容:
1 export JAVA_HOME=/root/java/jdk1.8.0_181 2 export JRE_HOME=${JAVA_HOME}/jre 3 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 4 export PATH=${JAVA_HOME}/bin:$PATH
若是对软件测试、接口测试、自动化测试、性能测试、LR脚本开发、面试经验交流。感兴趣能够175317069,群内会有不按期的发放免费的资料连接,这些资料都是从各个技术网站搜集、整理出来的,若是你有好的学习资料能够私聊发我,我会注明出处以后分享给你们。
刷新环境变量配置:
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/testng export 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:
export TESTNG_HOME=/root/java/testng export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH:$TESTNG_HOME/testng-6.14.3.jar
看似很是简单,可是执行起来,处处都是错误,执行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代码文件和包的顶级目录追加添加,假设为
1 /root/java/testng/ 2 /root/java/testng/simple/test.java
若是对软件测试、接口测试、自动化测试、性能测试、LR脚本开发、面试经验交流。感兴趣能够175317069,群内会有不按期的发放免费的资料连接,这些资料都是从各个技术网站搜集、整理出来的,若是你有好的学习资料能够私聊发我,我会注明出处以后分享给你们。
有了这样的结构前提,就能够经过命令执行了:
java org.testng.TestNG -testclass simple.test
出现结果,意味着运行成功了:
Total tests run: 1, Failures: 0, Skips: 0
若是你的代码中有测试用例@Test,但run出现0的话,说明仍是失败的,只是没有给明确的报错而已。
固然到这里还没意味着结束。
由于你可能还会遇到缺少各类依赖的jar包的问题:
能够经过参数将这些jar包都引入
javac -Djava.ext.dirs=/root/java/jar test.java java -Djava.ext.dirs=/root/java/jar org.testng.TestNG -testclass simple.test
远程调用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());
另外注意服务器上仍是须要浏览器的driver驱动文件,无脑一点就和jar包放一块儿就完事了,爱折腾的能够本身研究一把,区别只是启动服务时须要带上一些参数。
整个docker下使用selenium+java远程调用widows下Chrome浏览器,实现web自动化的环境搭建完毕。 原文:https://blog.csdn.net/TestingGDR/article/details/83184235