因为项目的原因,需要将脚本在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安装包即可,我的系统是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文件的构建

 <?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="runtest" name="automation test">
<!--项目根目录-->
<property name="base.dir" value="/home/autotest/workspace/auto-project" />
<!--报告输出目录-->
<property name="testng.output.dir" value="${base.dir}/test-output" />
<property name="lib.dir" value="${base.dir}/lib" />
<!--调用的testng 用例执行xml文件,这里是文件名-->
<property name="testng.file" value="testng.xml" />
<property name="suite.name" value="测试登录" />
<taskdef resource="testngtasks" classpath="${lib.dir}/testng.jar" />
<target name="clean">
<delete dir="${base.dir}/bin" />
</target>
<target name="compile" depends="clean">
<mkdir dir="${base.dir}/bin" />
<javac srcdir="${base.dir}/src" encoding="UTF-8" destdir="${base.dir}/bin" classpathref="classes" includeantruntime="off" debug="on" debuglevel="lines,vars,source" />
</target>
<path id="classes">
<fileset dir="${lib.dir}" includes="*jar" />
<fileset dir="${lib.dir}" includes="*zip" />
<pathelement location="${base.dir}/bin" />
</path>
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="lib/ant-contrib-1.0b3.jar" />
</classpath>
</taskdef>
<target name="runtest" depends="compile">
<testng outputdir="${testng.output.dir}" classpathref="classes" useDefaultListeners="false" listeners="org.uncommons.reportng.HTMLReporter,org.uncommons.reportng.JUnitXMLReporter,org.testng.reporters.FailedReporter">
<sysproperty key="file.encoding" value="UTF-8" />
<!--解决控制台中文乱码使得执行时输出utf-8格式-->
<xmlfileset dir="${base.dir}/src" includes="${testng.file}" />
<!--在指定路径下,找文件名由testng.file-->
<sysproperty key="org.uncommons.reportng.title" value="自动化测试报告" />
<!--设置报告Title名称 -->
</testng>
<!--定义的testng.xml文件-->
</target>
<path id="test.classpath">
<fileset dir="${lib.dir}" includes="*.jar" />
</path>
</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。

linux搭建phantomjs+webdriver+testng+ant自动化工程的更多相关文章

  1. [Training Video - 1] [Selenium Basics] [What is Selenium IDE,RC,Webdriver, TestNG, Junit And Ant]

    Selenium IDE (Only support in Firefox): - Record and Run - UI interface - User extensions - Conversi ...

  2. 也谈自动化平台的搭建,另附高大上的名字---无人值守定时巡检系统(selenium+testng+ant+jenkins)

    最近公司新项目改版,由于没有运维,开发则负责上线任务,并且都是手动上线,并行的项目多了,分支混乱,经常导致B项目上线覆盖A项目,导致系统不定时出现异常,老板知道了便扣了大家的绩效,作为测试这边必须想个 ...

  3. selenium+testng+ant+jenkins 手记

    会不会搭建测试平台是一般测试工程师和高级测试工程师分水岭 ----tobecrazy 我们项目有现成的测试平台,使用的是selenium grid+testng+ant+jenkins+VM 但是我平 ...

  4. Selenium2.0+TestNG+Ant+Jenkins自动化测试浅尝

    当前常用自动化测试工具 Web自动化测试工具:QTP .selenium等 性能自动化测试工具:loadrunner.jmeter等 接口自动化测试工具:SoapUI.postman等 手机自动化测试 ...

  5. testng+ant+jenkins持续集成UI自动化

    一.环境搭建 1. 安装testNG插件到eclipse. -) 选择菜单 Help /Software updates / Find and Install. -) 点击add button然后在l ...

  6. docker+phantomjs+haproxy 搭建phantomjs集群

    目标: 搭建一个远程的phantomjs服务器,提供高可用服务,支持并发. 原料: 1.docker环境.docker-compose环境 2.phantomjs镜像: docker.io/werni ...

  7. Linux 搭建Nexus

    Linux 安装Maven和nexus代理仓库 1    说明 环境:redhat Enterprise Linux Server5.3-x64. 版本:Maven 3.0.5 ,Nexus-2.5. ...

  8. Linux 搭建SVN 服务器(转)

    一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...

  9. 原 Linux搭建SVN 服务器2

    原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55)   阅读(12257) | 评论(3) 31人收藏此文章, 我要收藏 赞3 摘要 Linux搭建SVN 服务器 目录 ...

随机推荐

  1. Python3.5环境下安装wxPtyhon

    Win7系统下,Python3.5环境下安装wxPtyhon, 已成功安装并运行. 1.先从下面网站下载对应的whl版本. https://wxpython.org/Phoenix/snapshot- ...

  2. 近期unity ios接入的事情

    1,  在接入苹果内支付的时候,遇到一个很严重的问题,使用的公司的moni2来测试的,但是在测试的过程中发现每次调用oc的内支付代码后,总会先回调一个支付成功,然后弹出输入密码框,当点击取消后,再一次 ...

  3. 【NOIP2014】Day1题解+代码

    Day1 T1 签到题,模拟一下随便写就能过. 不过小心像我一样表打错傻逼的调了10min. #include <algorithm> #include <iostream> ...

  4. Extjs控件属性

    Ext.form.TimeField: 配置项:            maxValue:列表中允许的最大时间            maxText:当时间大于最大值时的错误提示信息          ...

  5. chrome浏览器如何在本地安装谷歌访问助手教程

    许多用户都需要使用谷歌的gmail,搜索.我们目前可以用谷歌访问助手解决google无法访问的问题.那么谷歌访问助手在chrome浏览器中如何安装和使用呢?今天我们详细介绍. 本地安装谷歌访问助手的步 ...

  6. JTree事件

    package com.wf; import javax.swing.*; import javax.swing.event.TreeSelectionEvent; import javax.swin ...

  7. 网站URL重写(Java UrlRewrite 的使用)

    现在大部分的网站和商城都会使用到URL重写,接触到这个,也是因为正在做的电子商务商城.URL重写,是将原有的URL采用另一种规则来显示,使得用户方便访问同时也屏蔽一些信息. 在此说下它的好处,在开发过 ...

  8. CSS3中盒子的box-sizing属性

    box-sizing 属性 box-sizing 属性用来改变默认的 CSS盒模型 对元素宽高的计算方式.这个属性可以用于模拟那些非正确支持标准盒模型的浏览器的表现. box-sizing:conte ...

  9. 第一百一十九节,JavaScript事件入门

    JavaScript事件入门 学习要点: 1.事件介绍 2.内联模型 3.脚本模型 4.事件处理函数 JavaScript事件是由访问Web页面的用户引起的一系列操作,例如:用户点击.当用户执行某些操 ...

  10. java 生成条形码

    package com.sun.erwei; import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;impo ...