第三章 自動化-接口框架(jmeter+ant+jenkins)

準備工作:

安裝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

安裝成功后進入:


以上為ant+jenkins集成配置
身份住處為遠程觸發(fā)構(gòu)建:http://localhost:8080/jenkins/job/你的項目名/build?token=2020

以下為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è)置

至此就配置完成實現(xiàn)了jenkins?通過定時任務(wù)或手工方式觸發(fā)構(gòu)建任務(wù)生成測試報告

以上只是粗略的完成了整個框架的初步搭建供鸠。

給看者的一些建意畦贸,如果想讓自己的報告更加智能需要引入腳本在此構(gòu)建基礎(chǔ)上再加一層構(gòu)建。

jenkins還有后臺一些配置楞捂,甚至插件都需要進行安裝這里就不細說了薄坏。

jmeter的配置相關(guān)在工具篇會進行說明

tomacat的使用在第三章tomcat-自動化測試的用途也有說明

不要急慢慢來,知識點會越來越多的~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寨闹,一起剝皮案震驚了整個濱河市颤殴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鼻忠,老刑警劉巖涵但,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異帖蔓,居然都是意外死亡矮瘟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門塑娇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來澈侠,“玉大人,你說我怎么就攤上這事埋酬∩诳校” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵写妥,是天一觀的道長拳球。 經(jīng)常有香客問我,道長珍特,這世上最難降的妖魔是什么祝峻? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上莱找,老公的妹妹穿的比我還像新娘酬姆。我一直安慰自己,他們只是感情好奥溺,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布辞色。 她就那樣靜靜地躺著,像睡著了一般浮定。 火紅的嫁衣襯著肌膚如雪右蕊。 梳的紋絲不亂的頭發(fā)上憎妙,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天纱烘,我揣著相機與錄音类嗤,去河邊找鬼。 笑死闸盔,一個胖子當(dāng)著我的面吹牛悯辙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播迎吵,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼躲撰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了击费?” 一聲冷哼從身側(cè)響起拢蛋,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蔫巩,沒想到半個月后谆棱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡圆仔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年垃瞧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坪郭。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡个从,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出歪沃,到底是詐尸還是另有隱情嗦锐,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布沪曙,位于F島的核電站奕污,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏珊蟀。R本人自食惡果不足惜菊值,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望育灸。 院中可真熱鬧腻窒,春花似錦、人聲如沸磅崭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽砸喻。三九已至柔逼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間割岛,已是汗流浹背愉适。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留癣漆,地道東北人维咸。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像惠爽,于是被迫代替她去往敵國和親癌蓖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354