上一篇文章(https://mp.csdn.net/postedit/82388339),主要分享的是selenium自动化测试基本的测试环境的搭建,能够正常的在eclipse中编写用例和执行用例。
实际工作中,我们的自动化脚本基本都是下班时无人值守执行,执行完成之后,并将执行结果以邮件的方式发送,很显然,我们手动执行Testng.xml已经不能满足需求。
因此,我们需要引入Ant,首先介绍一下ant,ant是一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等,主要以脚本文件形式体现,文件的名称一般是build.xml。
同时,我们无人值守时,需要执行ant,因此需要借助jenkins自动打包工具,利用jenkins定时任务功能自动执行ant(也可以手动执行),然后利用jenkins的发送邮件功能,将执行结果发送给需要接受的邮箱
1.Ant安装与配置
1)下载ant,解压后并保存,这里不多加赘述。
2)ant环境变量的配置
- 新建一个系统变量,变量值就是你的ant安装后的文件路径,见下图
- 系统变量-path中加入%ANT_HOME%\bin,如下图
- 然后保存,打开cmd,输入ant -version,如果显示出了版本号,就说明ok-ant配置完成了,如下图
3)准备build.xml文件
在eclipse建好的工程文件(可参考上一篇博客:https://mp.csdn.net/postedit/82388339)中,新建一个build.xml文件,文件内容可参考如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="testproject" default="run" basedir=".">
<echo message="import libs" />
<path id="run.classpath">
<fileset dir="${basedir}/lib">
<include name="*.jar" />
</fileset>
</path>
<taskdef name="testng" classname="org.testng.TestNGAntTask" classpathref="run.classpath" />
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile" depends="clean">
<echo message="mkdir"/>
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes" debug="on" includeantruntime="on">
<classpath refid="run.classpath"/>
</javac>
</target>
<path id="runpath">
<path refid="run.classpath"/>
<pathelement location="build/classes"/>
</path>
<target name="run" depends="compile">
<testng classpathref="runpath" outputDir="test-output">
<xmlfileset dir="${basedir}" includes="testng.xml"/>
<jvmarg value="-ea" />
</testng>
</target>
</project>
其中,这个是当前自动化测试工程名,
<project name="testproject" default="run" basedir=".">
以下是jar包在工程文件的位置,我的所有jar包都在“工程文件->lib”下面直接放的
<fileset dir="${basedir}/lib">
<include name="*.jar" />
</fileset>
bulid.xml就可以直接拿来用,只需要将以上两处根据自己的工程情况修改一下即可。
这样子,ant就配置好了,在eclipse可以直接执行build.xml也可以将测试用例执行。
2.jenkins的安装与配置
直接在网上下载jenkins就好,下载好之后,点击“推荐安装”就好
安装好之后,直接打开浏览器输入127.0.0.1:8080即进入jenkins页面,如下图
我这个是已经安装好的jenkins,安装jenkins按照指引操作就好,装好之后我们就进行一些配置
在配置之前,我们需要给jenkins安装一些插件:Ant Plugin 、Email Extension 、HTML Publisher plugin,以保证我们的自动化能够正常的执行和测试结果能够生成html测试报告并发送
点击系统管理->插件管理,在“可选插件”页签中,找到这几个插件并直接安装就好,安装好之后我们就可以进行系统的设置了
1)系统设置
- 点击系统管理->系统设置,进入到这个页面,编辑全局属性
- 编辑系统管理员的邮箱地址
- 设置自动发送邮件的发件人的邮箱,保证可以将测试的结果发送给需要接受邮件的人
- 设置邮件通知,和上一步一样
系统设置就可以完成了
点击【应用】,并【保存】,系统设置就可以了
2)项目设置
一个jenkins可以设置很多的项目,首先,为该项目的自动化新建一个视图,并配置该视图
- 新建项目试图
编辑项目名称,并保存就可以了
- 设置项目
点击新建好的项目,点击【配置】如下图
其中,定时任务的设置可以参考https://www.cnblogs.com/ycyzharry/p/7598337.html
接下来,需要配置该自动化工程文件的build.xml,如下图
然后需要配置报告的路径和格式,如下图
然后编辑接收邮件的地址和邮件的格式(其中,邮件格式里面需要显示自动化执行的结果),如下图
我将自己的邮件内容写出来,如下图,可供参考,其中,xxx要根据自己的实际情况修改
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<div>
<table width="95%" cellpadding="0" cellspacing="0"
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif;">
<tr>
<th align="center" colspan="2"><br />
<h2>构建信息</h2>
</th>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li><br />
<li>触发原因: ${CAUSE}</li><br />
<li>测试地址 : <a href="http://xxxxxx/">xxxx测试地址</a></li><br />
</ul>
</td>
<td>${JELLY_SCRIPT,template="html"}<br/>
</tr>
<tr>
<td colspan="2" align="center"><br />
<h2>测试报告</h2>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<div>${FILE ,path="E:/xxxx/test-output/emailable-report.html"}</div>
</td>
</tr>
</table>
</div>
</body>
</html>
完成以上的基本操作,我们的自动化就可以自动执行了,当然我们也可以如下图点击,进行手动执行
以下就是执行成功后的测试结果,如下图