linux搭建phantomjs+webdriver+testng+ant自动化工程
因为项目的原因,需要将脚本在linux环境无浏览器化去跑,那么原有的在windows系统下有浏览器化的自动化脚本场景就不适用了,这里给出linux系统下搭建phantomjs+webdriver+testng工程的方法
一:搭建java环境(因为我的工程是用java语言来写的)
这个我就不多说了,自己网搜吧,搭建正确即可
二:搭建phantomjs
- 首先在linux下输入命令:uname -a
查看系统是32位还是64位
如下:64位(出现x86_64位字样)
[autotest@zdhcs5 ~]$ uname -a
Linux zdhcs5 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
- 进入phantomjs下载官网,地址:http://phantomjs.org/download.html
对应下载符合自己系统版本的phantomjs安装包即可,我的系统是64位的,所以我下载的是:phantomjs-2.1.1-linux-x86_64.tar.bz2
- 上传下载到的phantomjs安装包到服务器上,并解压缩重命名,解压缩命令为:tar xvf phantomjs-2.1.1-linux-x86_64.tar.bz2
- 创建phantomjs的环境变量
我的phantomjs安装包解压缩路径为:/home/autotest/phantomjs/bin
则对应的命令为:
进入.bash_profile文件:
cd
vi .bash_profile
在文件最后一行添加此行:export PATH=${PATH}:/home/autotest/phantomjs/bin
红色部分根据机器实际路径进行对应修改,执行命令让环境变量生效:source .bash_profile
执行即可。
- 验证phantomjs安装是否正确
执行phantomjs --version命令,出现版本号则安装成功
三:在linux中搭建eclipse
因为需要在linux环境下开发,所以在linux服务器上安装了一个eclipse,目的是为了界面化的编程java代码和调试,最后脚本真实运行时可不用eclipse,我的项目里是用ant去跑testng整个工程的脚本。
linux安装eclipse很简单和windows差不多,只需要去官网下载对应包上传至服务器解压即可。
ok,eclipse就放在服务器上,等下面的第四步安装后,就能派上用场了。
四:安装linux的vnc界面化环境
该步骤具体可参考我的另一篇博文:http://www.cnblogs.com/miaomiaokaixin/p/5526732.html
五:搭建testng+webdriver+ant+phantomjs工程
相信通过第四步以后,你已经可以通过vnc客户端工具登录到界面化的linux服务器上了
此时进入eclipse安装目录,启动eclipse
启动成功后,我们就可以在eclipse中编程代码了。
因为下载的eclipse自集成了ant插件,所以可直接使用ant来跑testng的工程
上面只是一个简单的例子,用phantomjs无浏览器化运行webdriver的代码:
这里涉及到两个xml文件,
1:如果eclipse下载了testng插件,可以convert to TestNG的配置文件,还可以指定位置,这里我放在了src下,即/src/testng.xml
如果没有安装testng插件,可以直接手动写一个或者从其他项目拷贝一个testng.xml文件,按照自己的项目修改一下就行了
2:build.xml文件为ant构建运行需要的配置文件,这里给出我的build.xml文件的构建
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project basedir="." default="runtest" name="automation test"> 3 <!--项目根目录--> 4 <property name="base.dir" value="/home/autotest/workspace/auto-project" /> 5 <!--报告输出目录--> 6 <property name="testng.output.dir" value="${base.dir}/test-output" /> 7 <property name="lib.dir" value="${base.dir}/lib" /> 8 <!--调用的testng 用例执行xml文件,这里是文件名--> 9 <property name="testng.file" value="testng.xml" /> 10 <property name="suite.name" value="测试登录" /> 11 <taskdef resource="testngtasks" classpath="${lib.dir}/testng.jar" /> 12 <target name="clean"> 13 <delete dir="${base.dir}/bin" /> 14 </target> 15 <target name="compile" depends="clean"> 16 <mkdir dir="${base.dir}/bin" /> 17 <javac srcdir="${base.dir}/src" encoding="UTF-8" destdir="${base.dir}/bin" classpathref="classes" includeantruntime="off" debug="on" debuglevel="lines,vars,source" /> 18 </target> 19 <path id="classes"> 20 <fileset dir="${lib.dir}" includes="*jar" /> 21 <fileset dir="${lib.dir}" includes="*zip" /> 22 <pathelement location="${base.dir}/bin" /> 23 </path> 24 <taskdef resource="net/sf/antcontrib/antlib.xml"> 25 <classpath> 26 <pathelement location="lib/ant-contrib-1.0b3.jar" /> 27 </classpath> 28 </taskdef> 29 <target name="runtest" depends="compile"> 30 <testng outputdir="${testng.output.dir}" classpathref="classes" useDefaultListeners="false" listeners="org.uncommons.reportng.HTMLReporter,org.uncommons.reportng.JUnitXMLReporter,org.testng.reporters.FailedReporter"> 31 <sysproperty key="file.encoding" value="UTF-8" /> 32 <!--解决控制台中文乱码使得执行时输出utf-8格式--> 33 <xmlfileset dir="${base.dir}/src" includes="${testng.file}" /> 34 <!--在指定路径下,找文件名由testng.file--> 35 <sysproperty key="org.uncommons.reportng.title" value="自动化测试报告" /> 36 <!--设置报告Title名称 --> 37 </testng> 38 <!--定义的testng.xml文件--> 39 </target> 40 <path id="test.classpath"> 41 <fileset dir="${lib.dir}" includes="*.jar" /> 42 </path> 43 </project>
右键ant执行结束后,出现无报错的情况则测试通过
当在eclipse中调试好代码后,后面运行我们就可以直接使用命令行的方式运行该工程而无需在打开eclipse运行该代码,然后从test-output中查看用例执行结果就行了。
此时可用xshell直接连接该linux服务器,进入该工程目录,执行ant命令即可
如果想看具体的报告,则可以给所在linux服务器搭建一个apache服务器,路径指向你的工程路径的test-output结果文件夹下的html文件夹,我的是:
/home/autotest/auto-software/02-eclipse/workspace/auto-crmscript/test-output/html
这样就可以直接在本地用浏览器打开该linux服务器上用例执行结果:如下
至于linux上如何搭建apache并修改默认目录,使其指向自定义目录,可参考我的另一篇博文:linux搭建apache,并修改默认路径,地址为:http://www.cnblogs.com/miaomiaokaixin/p/5706377.html。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!