上一篇文章(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>
完成以上的基本操作,我們的自動化就可以自動執行了,當然我們也可以如下圖點擊,進行手動執行
以下就是執行成功後的測試結果,如下圖