接口自動化測試——Jmeter+ant+jenkins

注意:非原創(chuàng)!G鹩鳌今膊! 東拼西湊的總結的 用到的內容里都有鏈接

一芽突、工具

  1. 腳本錄制:badboy、jmeter迷帜、fiddler
  2. 編譯:ant
  3. 持續(xù)集成平臺:jenkins

這三者結合起來可以搭建一套Web HTTP接口測試的持續(xù)構建環(huán)境伯诬,實現(xiàn)接口自動化測試百新。

二帖蔓、什么是接口測試

接口測試是測試系統(tǒng)組件間接口的一種測試矮瘟。主要用于外部系統(tǒng)與系統(tǒng)之間以及內部各個子系統(tǒng)之間的交互點。測試的重點是檢查數(shù)據(jù)的切換塑娇、傳遞和控制管理的過程,以及系統(tǒng)間的相互邏輯依賴關系等劫侧。

接口測試適用于為其它系統(tǒng)提供服務的底層框架系統(tǒng)和中心服務系統(tǒng)埋酬,主要測試這些系統(tǒng)對外部提供提供的接口哨啃,驗證其正確性和穩(wěn)定性。
接口測試同樣適用于一個上層系統(tǒng)中的服務層接口写妥,越往上層拳球,其測試的難度越大。

接口測試實施在多系統(tǒng)多平臺的構架下珍特,有著極高效的成本收益比祝峻,接口測試天生為高復雜性的平臺帶來高效的缺陷檢測和質量監(jiān)督能力。平臺越復雜扎筒,系統(tǒng)越龐大莱找,接口測試的效果越明顯。

基于接口測試的重要性嗜桌,以及他比較容易自動化的特性奥溺,通過持續(xù)集成的接口監(jiān)控能夠及時的發(fā)現(xiàn)項目中存在的問題,這對持續(xù)運營的項目來說骨宠,十分重要浮定。


20190320113051464.png

20190320113103980.png

三、測試流程

1层亿、測試接口文檔(需求文檔)
2桦卒、根據(jù)接口文檔編寫測試用例(用例編寫可以完全按照功能用例來編寫,例如等價類劃分匿又、邊界值等方法)
3闸盔、執(zhí)行測試,查看不同的參數(shù)請求琳省,接口返回的數(shù)據(jù)是否達到預期
4迎吵、部署到持續(xù)集成的環(huán)境中
5、設定腳本運行頻率针贬、告警方式等基本參數(shù)击费,進行接口的日常監(jiān)控
6、每日進行接口腳本的運行更新桦他、接口異常的處理

四蔫巩、環(huán)境部署

https://blog.csdn.net/caoyingqun/article/details/88684714?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.control&dist_request_id=1328690.8104.16165503724593083&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.control
(該鏈接就看到ant安裝就好,下邊別看了快压,不太詳細)

1圆仔、Jmeter

Jmeter可以做接口測試,也可以做壓力測試蔫劣,是個開源軟件坪郭。純Java語言開發(fā)。
https://blog.csdn.net/wust_lh/article/details/86095924
注意:配置Jmeter環(huán)境變量時脉幢,版本為5+的lib包下沒有l(wèi)ogkit-2.0.jar歪沃,也不用配置在環(huán)境變量中嗦锐。

2、Ant

Ant是基于Java的構建工具沪曙,可以跨平臺奕污。
ant下載安裝看最上邊的鏈接就好

3、Jenkins

Jenkins是持續(xù)集成工具液走。
下載安裝(到最后一步碳默,打開initialAdminPassword文件時,如果打不開的話缘眶,就把該文件拖到電腦桌面嘱根,就能打開
https://blog.csdn.net/qq_39720249/article/details/81264026
安裝以及離線狀態(tài)的解決辦法
https://blog.csdn.net/qq_38966361/article/details/90734163

五、jmeter編寫腳本+ant執(zhí)行腳本&生成報告(重要0跽浮6印!)

按照下方鏈接一步一步來肯定不會出錯:
https://blog.csdn.net/weixin_41948075/article/details/97894080?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242

  1. 將jmeter 所在 extras目錄下 的 ant-jmeter-1.1.1.jar 文件 copy 到 ant 所在lib 目錄下砸喻。這樣Ant運行時才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"這個類柔逼,從而成功觸發(fā)JMeter腳本。

  2. 修改Jmeter的bin目錄下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml割岛,并解開注釋愉适,別的啥也別動。
    作用是使Jmeter報告輸出文件格式為xml

  3. 在jmeter安裝目錄下新建文件夾JmeterTest癣漆,在JmeterTest下新建文件夾resultLog维咸,resultLog下再新建jtl和html文件夾,html和jtl文件夾的作用:
    html文件夾:用于保存html的結果報告
    jtl文件夾:用于保存jmeter的測試腳本


    image.png

    image.png
  4. build.xml:Ant根據(jù)該文件運行jmeter腳本(關鍵文檔惠爽,需要配置正確)
    它的作用就是把生成的.jtl數(shù)據(jù)文件轉換為.html格式的報告
    具體屬性的含義:
    in:生成的.jtl文件的路徑
    out:生成的.html文件的路徑
    style:從.jtl轉換成.html所使用的樣式癌蓖,這些文件也在extras目錄下,這個是最重要的部分婚肆,如果我們想定制報告可以自行定義這個文件或者從網(wǎng)上找一些合適的文件租副。
    build.xml通用模版如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddHHmm" />
    </tstamp>
    <!-- 需要改成自己本地的Jmeter目錄-->
    <property name="jmeter.home" value="/Applications/apache-jmeter-5.1.1" />
    <!-- jmeter生成jtl格式的結果報告的路徑-->
    <property name="jmeter.result.jtl.dir" value="/Applications/apache-jmeter-5.1.1/demo/report/jtl" />
    <!-- jmeter生成html格式的結果報告的路徑-->
    <property name="jmeter.result.html.dir" value="/Applications/apache-jmeter-5.1.1/demo/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" />
    <!-- 輸出生成的報告名稱和存放路徑-->
    <echo message="${jmeter.result.jtlName}"/>
    <echo message="${jmeter.result.htmlName}"/>
    <echo message="${jmeter.result.html.dir}"/>

    <target name="run">
        <antcall target="test"/>
        <antcall target="report"/>
    </target>
    <!-- 指定ant-jmeter-1.1.1.jar 的位置 -->
    <path id="jmeter.classpath">
        <fileset dir="${jmeter.home}/extras">
            <include name="ant-jmeter-1.1.1.jar"/>
        </fileset>

    </path>
    <!--加載jar包,解決顯示時間問題-->  
    <path id="xslt.classpath">  
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>  
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>  
    </path> 
    
    <target name="test">
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            <!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本较性,比如test*用僧。jmx表示以test開頭的所有.jmx文件-->
            <testplans dir="/Applications/apache-jmeter-5.1.1/demo" includes="*.jmx" />
            <!-- 聲明ant執(zhí)行jmeter時,傳入jmeter的屬性值赞咙,可以自定義必須是xml格式 -->
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </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">
              <!--jmeter-results-detail-report_21.xsl這里的文件名可以換成你想要的報告效果-->
              <!--顯示dateReport的時間--> 
              <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>

需要改的地方改成自己的路徑啥的院仿,詳情看上方鏈接,原作者標注的地方崔赌。

  1. 準備要要運行的項目意蛀,放在demo目錄下(注意:網(wǎng)上好多人沒說這一步耸别,所以我一直build失斀“拧)
    這一步就是找一個 .jmx格式的文件放在script文件夾中县钥。我是隨便找了一個,如下:


    image.png
  2. 運行
    切換到運行的目錄慈迈,在運行ant或者ant run命令若贮,然后就回運行成功。

這樣是你還不運行成功痒留,你就要找找自己的原因了谴麦。這是我在網(wǎng)上找了那么就的資料,以上鏈接都是簡單易懂且能安裝成功的伸头。該說的都說了匾效,再有問題就是笨蛋!恤磷!

六面哼、Jmeter基本使用

https://blog.csdn.net/yutian8233/article/details/102851746

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市扫步,隨后出現(xiàn)的幾起案子魔策,更是在濱河造成了極大的恐慌,老刑警劉巖河胎,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闯袒,死亡現(xiàn)場離奇詭異,居然都是意外死亡游岳,警方通過查閱死者的電腦和手機政敢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胚迫,“玉大人喷户,你說我怎么就攤上這事∩吻” “怎么了摩骨?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長朗若。 經(jīng)常有香客問我恼五,道長,這世上最難降的妖魔是什么哭懈? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任灾馒,我火速辦了婚禮,結果婚禮上遣总,老公的妹妹穿的比我還像新娘睬罗。我一直安慰自己轨功,他們只是感情好,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布容达。 她就那樣靜靜地躺著古涧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪花盐。 梳的紋絲不亂的頭發(fā)上羡滑,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機與錄音算芯,去河邊找鬼柒昏。 笑死,一個胖子當著我的面吹牛熙揍,可吹牛的內容都是我干的职祷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼届囚,長吁一口氣:“原來是場噩夢啊……” “哼有梆!你這毒婦竟也來了?” 一聲冷哼從身側響起奖亚,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤淳梦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后昔字,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爆袍,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年作郭,在試婚紗的時候發(fā)現(xiàn)自己被綠了陨囊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡夹攒,死狀恐怖蜘醋,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情咏尝,我是刑警寧澤压语,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站编检,受9級特大地震影響胎食,放射性物質發(fā)生泄漏。R本人自食惡果不足惜允懂,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一厕怜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦粥航、人聲如沸琅捏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柄延。三九已至,卻和暖如春映之,著一層夾襖步出監(jiān)牢的瞬間拦焚,已是汗流浹背蜡坊。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工杠输, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秕衙。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓蠢甲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親据忘。 傳聞我的和親對象是個殘疾皇子鹦牛,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內容