聯(lián)合使用(ant+jmeter+jenkins)搭建自動化接口測試框架

1磷账、先編寫好一個jmeter的腳本掸哑,并在jmeter上跑通

這里我就用了一個登錄接口,做示例


image.png

通過后導入玷坠,并保存為.jmx文件

image.png

2撇叁、在桌面創(chuàng)建好一個空的文件夾供鸠,用于ant執(zhí)行,并在內(nèi)部創(chuàng)建好三類文件夾(result陨闹、scrpit楞捂、html)


image.png

result = 存放執(zhí)行后的jmx文件結(jié)果
html = 存放將jmx執(zhí)行結(jié)果進行轉(zhuǎn)換為html格式文件
scrpit = 存放jmx腳本

在這里我們把剛才跑通的jmx文件放到scrpit中


image.png

3、準備一個build.xml腳本趋厉,并把他放到我們剛才創(chuàng)建的文件夾的根目錄

image.png

需要注意的是寨闹,build文件名不可被修改,只允許叫build.xml
如果收到的郵件是亂碼君账,encoding="GBK"改成encoding="UTF-8"
并且注意第一行代碼前不要有空行或者空格鼻忠,否則無法運行

<?xml version="1.0" encoding="GBK"?>
 
<project name="ant-jmeter-test" default="run" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
  
    <target name="run">
           <antcall target="clear1" />
    <antcall target="test1" />
          <antcall target="report1" />
    <antcall target="sendmail1" />
    </target>
    
    <target name="test1">
          <echo message="開始執(zhí)行jmeter腳本..."></echo>
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="jmeter家目錄" resultlog="jtl路徑\1.jtl">
             <!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本-->
            <testplans dir="腳本路徑" includes="腳本名稱" />
        <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>
         <path id="xslt.classpath">
         <fileset dir="jmeter中l(wèi)ib路徑" includes="xalan*.jar"/>
         <fileset dir="jmeter中l(wèi)ib路徑" includes="serializer*.jar"/>
    </path>
    
    <target name="report1">
    <echo message="開始轉(zhuǎn)換執(zhí)行結(jié)果..."></echo>
    <tstamp> <format property="time" pattern="yyyy/MM/dd HH:mm" /></tstamp>
        <xslt classpathref="xslt.classpath"
              force="true"
     in="jtl路徑\1.jtl"
              out="html路徑\1.html"
              style="jmeter中exaters的路徑+jmeter-results-detail-report_21的名稱">
                <param name="titleReport" expression="xxxxx"/> 
                <param name="dateReport" expression="${time}"/>  
       </xslt>  
                 <!-- jmeter-results-detail-report_21  因為上面生成報告的時候杈绸,不會將相關的圖片也一起拷貝至目標目錄帖蔓,所以,需要手動拷貝--> 
           <copy todir="html的路徑">
            <fileset dir="jmeter中exaters的路徑">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>         
    </target>
 
        <target name="clear1">
    <!-- 每次執(zhí)行前先刪除清空jtl和html文件夾瞳脓,釋放空間 -->
        <echo message="釋放空間,清空jtl和html文件夾中 ..."></echo>
        <delete dir="jtl的路徑" />
        <delete dir="html的路徑" />
        <!-- 刪除單個文件-- >
        <delete file="jtl的路徑\1.jtl" />
        <sleep seconds="2"/>  
        <echo message="釋放完成 ..."></echo>
    </target>
    <target name="sendmail1">
    <!--把報告進行壓縮打包-->
    <jar jarfile="report的路徑.rar" basedir="html的路徑"/>
    <!--把文件貼到郵件正文-->
    <loadfile property="html" srcFile="html的路徑\1.html" encoding="UTF-8">
    <filterchain>
            <expandproperties />
        </filterchain>
    </loadfile>
    
    <mail mailhost="smtp.126.com" 
    mailport="25" subject="郵件標題" 
    messagemimetype="text/html" tolist="norma_bai@163.com"
    user="norma_bai@163.com" password="bj900420">
    <from address="norma_bai@163.com"/>
    <!--發(fā)送附件-->
    <fileset dir="在jmeter中創(chuàng)建的文件夾">
         <include name="report.rar"/>
     </fileset>
    <message><![CDATA[ 
    <p>維度電影項目組收:</p>
    <pre> ${html} </pre>
    <p>自定義郵件內(nèi)文字</p>
    ]]></message>
    </mail>
    </target>
</project>
 

對這個build內(nèi)容進行填充

<?xml version="1.0" encoding="GBK"?>
 
<project name="ant-jmeter-test" default="run" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
  
    <target name="run">
           <antcall target="clear1" />
    <antcall target="test1" />
          <antcall target="report1" />
    <antcall target="sendmail1" />
    </target>
    
    <target name="test1">
          <echo message="開始執(zhí)行jmeter腳本..."></echo>
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="E:\apache-jmeter-5.2.1" resultlog="C:\Users\Administrator\Desktop\ant\result\1.jtl">
             <!-- 聲明要運行的腳本塑娇。"*.jmx"指包含此目錄下的所有jmeter腳本-->
            <testplans dir="C:\Users\Administrator\Desktop\ant\script" includes="*.jmx" />
        <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>
        
         <path id="xslt.classpath">
        <fileset dir="E:\apache-jmeter-5.2.1\lib" includes="xalan*.jar"/>
        <fileset dir="E:\apache-jmeter-5.2.1\lib" includes="serializer*.jar"/>
    </path>
    
    <target name="report1">
    <echo message="開始轉(zhuǎn)換執(zhí)行結(jié)果..."></echo>
    <tstamp> <format property="time" pattern="yyyy/MM/dd HH:mm" /></tstamp>
        <xslt classpathref="xslt.classpath"
              force="true"
     in="C:\Users\Administrator\Desktop\ant\result\1.jtl"
              out="C:\Users\Administrator\Desktop\ant\html\1.html"
              style="E:\apache-jmeter-5.2.1\extras\jmeter-results-detail-report_21.xsl">
                <param name="titleReport" expression="測試報告"/> 
                <param name="dateReport" expression="${time}"/>  
       </xslt>  
                 <!-- jmeter-results-detail-report_21  因為上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄劫侧,所以埋酬,需要手動拷貝--> 
        <copy todir="C:\Users\Administrator\Desktop\ant\html">
            <fileset dir="E:\apache-jmeter-5.2.1\extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>         
    </target>
 
        <target name="clear1">
    <!-- 每次執(zhí)行前先刪除清空jtl和html文件夾,釋放空間 -->
        <echo message="釋放空間,清空jtl和html文件夾中 ..."></echo>
        <delete dir="C:\Users\Administrator\Desktop\ant\result" />
        <delete dir="C:\Users\Administrator\Desktop\ant\html" />
        <!-- 刪除單個文件-->
        <delete file="C:\Users\Administrator\Desktop\ant\1.rar" />
        <sleep seconds="2"/>  
        <echo message="釋放完成 ..."></echo>
    </target>
 
 
    <target name="sendmail1">
    <!--把報告進行壓縮打包-->
    <jar jarfile="C:\Users\Administrator\Desktop\ant\1.rar" basedir="C:\Users\Administrator\Desktop\ant\html"/>
    <!--把文件貼到郵件正文-->
    <loadfile property="html" srcFile="C:\Users\Administrator\Desktop\ant\html\1.html" encoding="UTF-8">
    <filterchain>
            <expandproperties />
        </filterchain>
    </loadfile>
    
    <mail mailhost="smtp.qq.com" 
    mailport="25" subject="測試結(jié)果" 
    messagemimetype="text/html" tolist="1429622029@qq.com"
    user="1429622029@qq.com" password="郵箱授權(quán)碼">
    <from address="1429622029@qq.com"/>
    <!--發(fā)送附件-->
    <fileset dir="C:\Users\Administrator\Desktop\ant">
         <include name="1.rar"/>
     </fileset>
    <message><![CDATA[ 
    <p>項目組收:</p>
    <pre> ${html} </pre>
    <p>自定義郵件內(nèi)文字</p>
    ]]></message>
    </mail>
    </target>
</project>
 

我們來跑一下這個build烧栋,看能否跑通

打開cmd

cd到我們項目的文件夾中


image.png

然后輸入:ant


image.png

接下來就開始執(zhí)行写妥,但是后來發(fā)現(xiàn)到了sendmail方法就止住不動了,并報錯:


image.png

經(jīng)過我網(wǎng)上搜索答案审姓,發(fā)現(xiàn)在安裝ant的目錄下的lib中缺少jar包(activation.jar珍特、commons-lang3-3.8.1.jar、mail.jar)魔吐,后來又去下載扎筒,前前后后浪費了大量的時間,這里把百度鏈接發(fā)給大家酬姆,如果出現(xiàn)這類錯誤嗜桌,直接下載然后丟到ant目錄中的lib目錄就可以
鏈接: https://pan.baidu.com/s/18BWUMrW7ABfBlvU_b3Mppw 提取碼: 8jk4

image.png

image.png

繼續(xù)執(zhí)行文件


image.png

發(fā)現(xiàn)這次成功了,而且郵箱也收到了報告


image.png

正文是這樣的:


image.png

并且?guī)в懈郊ò裩tml報告的目錄壓縮):


image.png

那么我們就可以進入jenkins構(gòu)建中了(其實每次不一定非要跑通辞色,只要我們第一次ant成功了骨宠,那么后續(xù)只需要更改jmx文件就行或者不需要更改,在原先的jmx上重命名替換也是可以的)

build文件下載地址(百度網(wǎng)盤):

鏈接: https://pan.baidu.com/s/1oW047bCE7DB7wDdDWPp8Lg 提取碼: smev

4、jenkins構(gòu)建任務

打開任意一個瀏覽器层亿,輸入:localhost:8080壶唤,進入jenkins中


image.png

突然發(fā)現(xiàn)jenkins也啟動不了了? 趕忙又去找解決辦法棕所,

1)打開Windows的cmd命令窗口闸盔,將路徑切換到Jenkins安裝目錄文件下

2)在cmd窗口輸入java -jar jenkins.war --httpPort=9000

3)打開瀏覽器,輸入http://localhost:9000/琳省,進入Jenkins界面

弄好了以后再次打開

image.png

這次成功進去了迎吵,下面開始在jenkins中配置Ant


image.png

點擊系統(tǒng)管理,進入后针贬,下拉击费,找到全局工具配置

image.png

進入后,新增ant桦他,添加ant安裝路徑并應用蔫巩、保存,本地的jenkin快压,ANT_Home填寫ant的安裝路徑圆仔,不要勾選自動安裝


1646726283(1).png

如果沒有Ant怎么辦? 說明你沒有安裝相關插件坪郭,要去官網(wǎng)下載
官網(wǎng)鏈接:https://updates.jenkins-ci.org/download/plugins/
打開后,在搜索框中輸入你要下載的插件名就可以

配置好ant后脉幢,點擊新建任務歪沃,創(chuàng)建一個新項目

image.png

image.png

勾選構(gòu)建中的定時建構(gòu),可以按照規(guī)定的時間有規(guī)律性的建構(gòu)嫌松,勾選后面的沪曙?號可以查看構(gòu)建的命令規(guī)格


image.png

勾選建立中的調(diào)用螞蟻(注意,我用的是谷歌翻譯后的萎羔,大家可以按照對應的位置去選擇)


image.png

點擊高級


image.png

填寫我們上述創(chuàng)建的文件夾路徑(也就是需要持續(xù)集成的jmx文件)液走,ant選擇之前配置的版本,后面跟上build.xml


image.png

然后應用外驱、保存


image.png

最后構(gòu)建下


image.png

可以看到育灸,本次構(gòu)建成功了

最后看下控制臺輸出:


image.png

這樣下來腻窒,自動化接口測試框架就已經(jīng)搭建好了昵宇,可以開展持續(xù)集成的工作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末儿子,一起剝皮案震驚了整個濱河市瓦哎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖蒋譬,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件割岛,死亡現(xiàn)場離奇詭異,居然都是意外死亡犯助,警方通過查閱死者的電腦和手機癣漆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剂买,“玉大人惠爽,你說我怎么就攤上這事∷埠撸” “怎么了婚肆?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長坐慰。 經(jīng)常有香客問我较性,道長,這世上最難降的妖魔是什么结胀? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任赞咙,我火速辦了婚禮,結(jié)果婚禮上糟港,老公的妹妹穿的比我還像新娘人弓。我一直安慰自己,他們只是感情好着逐,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布崔赌。 她就那樣靜靜地躺著,像睡著了一般耸别。 火紅的嫁衣襯著肌膚如雪健芭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天秀姐,我揣著相機與錄音慈迈,去河邊找鬼。 笑死省有,一個胖子當著我的面吹牛痒留,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蠢沿,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼伸头,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舷蟀?” 一聲冷哼從身側(cè)響起恤磷,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤面哼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后扫步,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體魔策,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年河胎,在試婚紗的時候發(fā)現(xiàn)自己被綠了闯袒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡游岳,死狀恐怖搁吓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吭历,我是刑警寧澤堕仔,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站晌区,受9級特大地震影響摩骨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜朗若,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一恼五、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧哭懈,春花似錦灾馒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至旭斥,卻和暖如春容达,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背垂券。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工花盐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人菇爪。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓算芯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凳宙。 傳聞我的和親對象是個殘疾皇子熙揍,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容