当前位置: 首页 > Linux

Docker下使用selenium+testng实现web自动化

时间:2023-04-06 20:40:52 Linux

windows下selenium+testngweb自动化环境做过自动化的一定对seleniumweb环境的搭建非常熟悉,尤其是selenium在java中的使用。首先搭建安装JDK,配置java开发环境(如果你还不会操作这个,就得玩PP了)。然后从官网下载selenium对应的jar包,加载到项目中;或者使用maven,修改pom.xml文件直接加载selenium依赖包:12org.seleniumhq.selenium3selenium-java43.14.05然后添加对应的浏览器驱动文件,环境基本搞定,顺便启动自动化测试代码。当然你在写代码的过程中也会用到流行的单元测试框架testng。如何在此基础上增加testng环境?其实这并不难。testng官网(https://testng.org/doc/index....)提供了如何在Eclipse、IEDA等编辑器下安装插件。比如Eclipse直接进入Market搜索testng安装即可。是的,如果使用maven,需要在pom.xml中添加依赖包:123jcenter4bintray5http://jcenter.bintray.com678910org.testng11testng126.1013test14无脑等待下载安装完成,接下来就是写代码了,接下来就可以自由挥洒了。但是我今天要介绍的不是上面这些。这个环境的搭建非常简单。大多数人其实都知道。没有太多的陷阱。它只是一个代码环境。这次我们要对付的麻烦是什么?在日益发达的docker模式下,上述编译环境无法在linux系统上运行。没有代码编辑器,没有界面,也没有浏览器。应该如何操作?让我们来看看。Docker的安装和使用都是一样的,但是还是需要java+selenium+testng,只不过环境从windows换成了linux。关于docker的使用,这里简单介绍下安装启动过程:直接使用yuminstalldocker命令安装;servicedockerstart启动docker服务;然后dockerpullcentos得到centos版本下最基本的docker镜像;可以通过dockerimages命令列出显示当前所有镜像;查看linux镜像后,使用dockerrun-it-dimagename让linux容器运行(注意-it-d的参数,如果没有容器,会瞬间挂起);进入容器可以先通过dockerps查看当前所有运行的容器。如果找不到,说明容器还没有启动,或者已经关闭,dockerps会列出容器的id;使用dockerattachcontainerid登录到容器linux上。Docker下java环境搭建的容器中的linux其实和正常的linux运行是一样的。首先是安装jdk:下载jdk-8u181-linux-x64.tar.gz包;tar-xzvfjdk-8u181-linux-x64.tar.gz解压,得到jdk1.8.0_181目录(假设存放为/root/java/目录);配置java环境变量:编辑环境变量文件:vi/etc/profile添加内容:1exportJAVA_HOME=/root/java/jdk1.8.0_1812exportJRE_HOME=${JAVA_HOME}/jre3exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib4exportPATH=${JAVA_HOME}/bin:$PATH用于软件测试、接口测试、自动化测试、性能测试、LR脚本开发、面试经验交流。有兴趣的可以拨打175317069,群里会有不定期的免费资料链接。这些资料是从各个技术网站上收集整理出来的。如果大家有好的学习资料,可以私信发给我,我会注明出处,然后分享给大家。刷新环境变量配置:source/etc/profile确认java版本是否有效:java-versionjava环境到这里就解决了,也没有什么特别的难度,一步一步来就可以了。Docker下的testng环境配置紧挨着testng,因为环境和java类似,也和环境变量有关,所以优先解决:下载testng-6.14.3.jar包;tar-xzvftestng-6.14.3.jar解压得到testng目录(假设放在/root/java/testng/目录下);继续编辑环境变量文件:vi/etc/profile添加内容:exportTESTNG_HOME=/root/java/testngexportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH:$TESTNG_HOME/testng-6.14.3.jar刷新环境变量配置:source/etc/profile注意这里的testng环境变量,这里根据java环境添加CLASSPATH,如果是在windows上配置,分隔符要替换成;而环境变量的相互调用形式不同,也有一些区别。那么,可能有人会想,这不是很简单吗?但是这时候如果继续执行,你会发现已经开始报错了,就是一个深坑来了,因为它脱离了整个开发环境。先提一下testng的执行步骤,假设你写了一个test.java,记得最简单,不要加入其他jar包之类的,里面包含包名simple和类名test:exportTESTNG_HOME=/root/java/testngexportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH:$TESTNG_HOME/testng-6.14.3.jar看似很简单,但是执行起来却处处报错。执行javactest.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,群里会有不定期的免费资料链接。这些资料是从各个技术网站上收集整理出来的。如果大家有好的学习资料,可以私信发给我,我会注明出处,然后分享给大家。有了这样的结构前提,可以通过命令执行:javaorg.testng.TestNG-testclasssimple.test结果出现,说明运行成功:Totaltestsrun:1,Failures:0,Skips:0如果你的代码中有测试用例@Test,但是如果运行显示0,说明还是失败了,只是没有报明确的错误。当然,这并不意味着一切都结束了。因为你可能还会遇到缺少各种依赖jar包的问题:这些jar包可以通过参数-Djava.ext.dirs=/root/java/jartest.javajava-Djava.ext.dirs=/root/引入javacjava/jarorg.testng.TestNG-testclasssimple.test在windows下远程调用浏览器,以为这样就把环境搞定了,是不是就万事大吉了?多一刀,浏览器呢?如何解决没有浏览器的问题?请使用selenium自带的server部署到windows机器上。这个问题的解决方法比较简单:下载selenium-server-standalone-3.14.0.jar包;放入指定目录(如放入C盘根目录);cd到目录:cdC:\执行命令打开selenium远程服务:java-jarselenium-server-standalone-3.14.0.jar-port6666接下来有人会问怎么指定浏览器?只需在java代码中使用如下语句调用windows上刚刚启动的服务:WebDriverdriver=newRemoteWebDriver("http://ip:6666/wd/hub/",DesiredCapabilities.chrome());另外,注意服务器上仍然需要浏览器的驱动程序文件。把它和jar包放在一起就大功告成了。爱折腾的可以自己研究下。整个docker使用selenium+java远程调用widows下的Chrome浏览器,实现web自动化的环境就搭好了。原文:https://blog.csdn.net/Testing...