準備工作:
安裝JDK爷抓,完成環(huán)境變量配置(不會自行百度)
下載ANT:https://ant.apache.org/bindownload.cgi
下載tomcat:https://tomcat.apache.org/download-90.cgi
下載jenkins war?包:https://www.jenkins.io/download/?
下載jmeter:https://jmeter.apache.org/download_jmeter.cgi
ANT安裝:
解壓ant到C盤:C:\apache-ant-1.9.15
配置Ant環(huán)境變量
1.新建以下環(huán)境變量:
ANT_HOME:C:\apache-ant-1.9.15憨栽,此為你的ANT安裝路徑煤惩;
2.設(shè)置完成后慷嗜,點擊"確認"來保存筐骇。
在環(huán)境變量PATH的最后面添加一下內(nèi)容:
;%ANT_HOME%\bin 注意前面的分號录淡,如果PATH中最后沒有分號";"的話要加上,有的話就可去除亏娜。(如果你是win10請去掉“;”)
3.進入cmd命令窗口焕窝,在CMD窗口中輸入ant -version,敲擊回城鍵,會顯示出你安裝的ANT版本,如果成功顯示维贺,說明你的配置應(yīng)該是成功了
JMETER安裝:
1.解壓你的jmeter至自已想放的盤(環(huán)境變量可配可不配)
2.將 jmeter的extras目錄中ant-jmeter-1.1.1.jar包拷貝至ant安裝目錄下的lib目錄中
3.修改Jmeter的bin目錄下jmeter.properties文件的配置:?
原為:jmeter.save.saveservice.output_format=csv?
修改后為:jmeter.save.saveservice.output_format=xml??(記得把注釋去掉)
來個demo調(diào)試下:
1.編寫個簡單的jmeter腳本:(我是把腳本保存在jmeter?目錄下自建的demo\jmeter_script文件下)
2.在demo文件下新建build.xml文件它掂,同時在demo下建一個生成報告的文件jmeter_report(這個隨意)
build.xml文件內(nèi)容如下:修改(需要改)的地方
<?xml version="1.0" encoding="GB2312"?>
<project name="JmeterTest" default="all" basedir=".">
? ? <tstamp>
? ? ? ? <format property="time" pattern="yyyyMMddhhmm" />
? ? </tstamp>
? ? <!-- 需要改成自己本地的 Jmeter 目錄-->
? ? <property name="jmeter.home" value="D:\install_soft\apache-jmeter-5.2.1\apache-jmeter-5.2.1" />
? ? <!--?需要改jmeter生成jtl格式的結(jié)果報告的路徑-->
? ? <property name="jmeter.result.jtl.dir" value="D:\install_soft\apache-jmeter-5.2.1\apache-jmeter-5.2.1\demo\jmeter_report\report\jtl" />
? ? <!-- 需要改jmeter生成html格式的結(jié)果報告的路徑-->
? ? <property name="jmeter.result.html.dir" value="D:\install_soft\apache-jmeter-5.2.1\apache-jmeter-5.2.1\demo\jmeter_report\report\html" />
? ? <!-- 生成的報告的前綴 -->
? ? <property name="ReportName" value="TestReport" />
? ? <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
? ? <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
? ? <!-- 接收測試報告的郵箱 -->
? ? <property name="mail_to" value="xxxxxx@xxx.com" />
? ? <!-- 電腦地址 -->
? ? <property name="ComputerName" value="zbd" />
? ? <target name="all">
? ? ? ? <antcall target="test" />
? ? ? ? <antcall target="report" />
<!--<antcall target="sendmail" />-->
? ? </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="D:\install_soft\apache-jmeter-5.2.1\apache-jmeter-5.2.1\demo\jmeter_script" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
? ? ? ? </jmeter>
? ? </target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>?
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
? ? <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>?
? ? ? ? <!-- 因為上面生成報告的時候溯泣,不會將相關(guān)的圖片也一起拷貝至目標目錄虐秋,所以晰韵,需要手動拷貝 -->
? ? ? ? <copy todir="${jmeter.result.html.dir}">
? ? ? ? ? ? <fileset dir="${jmeter.home}/extras">
? ? ? ? ? ? ? ? <include name="collapse.png" />
? ? ? ? ? ? ? ? <include name="expand.png" />
? ? ? ? ? ? </fileset>
? ? ? ? </copy>
? ? </target>
<path id="lib_classpath">
? ? ? ? <fileset dir="${basedir}/">
? ? ? ? ? ? <include name="mail*.jar" />
? ? ? ? ? ? <include name="activation*.jar" />
? ? ? ? ? ? <include name="commons-email*.jar" />
? ? ? ? ? ? <include name="ant-contrib*.jar" />
? ? ? ? </fileset>
</path>
? ? <!-- 發(fā)送郵件
<target name="sendmail" >
<mail mailhost="smtp.263.net"
mailport="465"
ssl="true"
user="service@xxx.com"
password="CE5CA15043"
subject="接口測試報告_JMETER"
from="service@xxx.com">
<to address="zhae@xx.com"/>
<message>詳細報告請查看附件</message>
? <attachments>
? ? <fileset dir="${jmeter.result.html.dir}">
? ? ? <include name="${ReportName}${time}.html"/>
? ? </fileset>
? </attachments>
</mail>
</target>
-->
</project>
配置完成后-執(zhí)行看看:
cmd進入build.xml文件路徑下:輸入ant
build.xml中注釋部分為自動發(fā)送郵件報告的配置如果需要請去掉注釋根據(jù)自己的郵箱進行代理配置熟妓,其次需要把javax.mail-1.4.4?這個jar包放到ant 中的lib目錄里雪猪,就可以用ant+jmeter做持續(xù)集成發(fā)送郵件。
javax.mail-1.4.4?下載地址:https://pan.baidu.com/s/1o8C2DHg
jenkins集成定時構(gòu)建
jenkins安裝是把war包放至tomcat下webapps啟動根據(jù)提示安裝jenkins
安裝成功后進入:
以下為POLLSCM?定時構(gòu)建官方配置說明:
MINUTE? HOUR? DOM? MONTH? DOW
這個字段就好比cron定時任務(wù)語法(只有較小的差別)起愈,具體來說只恨,每行由5個被TAB或空格分割的字段組成。
其中每個字段除了可以使用取值范圍內(nèi)的值外抬虽,還能使用一些特殊的字符官觅。
* ????匹配范圍內(nèi)所有值
M-N ??匹配M~N范圍內(nèi)所有值
M-N/X 或者 */X ??在指定M~N范圍內(nèi)或整個有效區(qū)間內(nèi)每隔X構(gòu)建一次?
A,B,...,Z ???????匹配多個值
為了在系統(tǒng)中生成定時任務(wù),符號H(代表“Hash”阐污,后面用“散列”代替)應(yīng)該用在可能用到的地方休涤,例如:為十幾個日常任務(wù)配置0 0 * * *將會在午夜產(chǎn)生較大峰值。相比之下笛辟,配置H H * * * 仍將每天一次執(zhí)行每個任務(wù)功氨,不是都在同一時刻,可以更好的使用有限資源手幢。
符號H可用于范圍捷凄,例如,H H(0-7) * * * 代表凌晨0:00到 上午7:59一段時間围来。你還可以用H代表有或無范圍的區(qū)間跺涤。
符號H 在一定范圍內(nèi)可被認為是一個隨機值,但實際上它是任務(wù)名稱的一個散列而不是隨機函數(shù)监透。
需要注意的是桶错,月份中的某天-DOM字段,類似于*/3 或者 H/3 的短周期由于月份的天數(shù)不固定胀蛮,在大多數(shù)月尾總不會工作院刁。例如,*/3 將會在一個月里面的第一天醇滥、第四天黎比。超营。鸳玩。第31天執(zhí)行,下個月的那天繼續(xù)重復(fù)執(zhí)行演闭。散列一般被選擇在1-28天內(nèi)不跟,所以H/3將會在跑到月底的3-6天內(nèi)導(dǎo)致空白。(長時間循環(huán)將會導(dǎo)致長度不一米碰,但是這種影響也是不明顯的窝革。)
空行和以#開頭的行將會被認為是注釋购城。
另外,@yearly, @annually, @monthly, @weekly, @daily, @midnight, 和 @hourly也支持別名虐译。這些使用散列系統(tǒng)自動匹配瘪板,例如:@hourly 和 H * * * * 一樣代表一個小時內(nèi)的任何時刻。@midnight實際上代表凌晨0:00到凌晨2:59之間的一段時間漆诽。
例如:
# 每隔15分鐘侮攀。(或許:07, :22, :37, :52)
H/15 * * * *
# 每前半小時中每隔10分鐘。 (3次, 或許:04, :14, :24)
H(0-29)/10 * * * *
# 每個工作日從早上9點45分開始到下午3點45分結(jié)束這段時間內(nèi)每間隔2小時的45分鐘那一刻厢拭。
45 9-16/2 * * 1-5
#每個工作日從早上9點到下午5點這段時間內(nèi)每間隔2小時之間的某刻兰英。(或許在上午10:38, 下午12:38, 下午2:38 , 下午4:38)
H H(9-16)/2 * * 1-5
#每月(除了12月)從1號到15號這段時間內(nèi)某刻。
H H 1,15 1-11 *
GIT?or SVN集成設(shè)置
以上只是粗略的完成了整個框架的初步搭建供鸠。
給看者的一些建意畦贸,如果想讓自己的報告更加智能需要引入腳本在此構(gòu)建基礎(chǔ)上再加一層構(gòu)建。
jenkins還有后臺一些配置楞捂,甚至插件都需要進行安裝這里就不細說了薄坏。
jmeter的配置相關(guān)在工具篇會進行說明
tomacat的使用在第三章tomcat-自動化測試的用途也有說明
不要急慢慢來,知識點會越來越多的~~~