搭建自動化測試可持續集成平臺 jenkins ant jmeter
第一次搭建自動化可持續集成平臺,有不足之處望指出,以下搭建環境(wind 10,基於JDK1.8);
1: 準備的工具:JDK 1.8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
jenkins-2.46.3 https://jenkins.io/
apache-ant-1.9.9 http://ant.apache.org/bindownload.cgi
apache-jmeter-3.2 http://jmeter.apache.org/download_jmeter.cgi
以上下載windows對應的版本
2: 以上準備工具(jdk/jenkins)點擊直接安裝,(ant/jmeter)解壓即可,最後配置環境變量
ANT_HOME:D:\apache-ant-1.9.9
classpath:D:\apache-ant-1.9.9\lib;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar
JAVA_HOME:C:\Program Files\Java\jdk1.8.0_121
JMETER_HOME:D:\apache-jmeter-3.2
path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%ANT_HOME%\bin;%JMETER_HOME%\bin 注:別把系統設定的環境變量覆蓋了,累加到後面就行
3:校驗環境變量設置是否正常
4:jenkins 新建jobs設置內容如下
構建Ant,調用ant的build.xml配置文件
以下是我設置的build.xml
<?xml version="1.0" encoding="GBK"?>
<!-- 這個是推薦build,至於原理,大家可以查看ant-jmeter-1.1.1.jar源碼 -->
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<property name="basedirectory" value="D:\apache-jmeter-3.2\script_demo" />
<!-- 需要改成自己本地的 Jmeter 目錄-->
<property name="jmeter.home" value="D:\apache-jmeter-3.2" />
<!-- jmeter生成jtl格式的結果報告的路徑-->
<property name="jmeter.result.jtl.dir" value="${basedirectory}" />
<!-- jmeter生成html格式的結果報告的路徑-->
<property name="jmeter.result.html.dir" value="${basedirectory}" />
<!-- Name of test (without .jmx) -->
<property name="test" value="Test"/>
<!-- 生成的報告的前綴-->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${test}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${test}.html" />
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="run">
<antcall target="test" />
<antcall target="report" />
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本-->
<testplans dir="${basedirectory}" includes="${test}.jmx" />
</jmeter>
</target>
<target name="report">
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
在jenkins中安裝jmeter報告插件:
報告的優化
發送郵箱的配置
jenkins的郵箱配置,在系統管理----系統設置 配置
注:上下這兩張圖的郵箱地址一定要保持一致
關於授權碼設置:登錄自己的郵箱,找到關於郵箱設置客戶授權密碼功能;例如我的126郵箱 設置---》客戶端授權密碼 設置開啓授權碼,再設置授權碼就行了;否則上面一步,測試發送郵件是發送不出去的;
jenkins配置ant
5:準備jmeter腳本 一個是jmeter自帶腳本,一個是錄製的百度登錄頁面腳本 (Test.jmx 百度登錄、Test1.jmx jmeter自帶腳本)
6:開始構建
藍色爲構建成功,紅色是構建失敗
遺留問題:第一個和第二個job jmeter_test 與 jmeter_test2 次構建的build in workspace 不一樣;配置一致
後續再補充