接口自動(dòng)化測試環(huán)境搭建

平時(shí)在服務(wù)端測試時(shí),我們需要涉及2方面的內(nèi)容:

  1. 基于JAVA白盒的單元測試;
  2. 基于Jmeter黑盒的接口測試&性能測試;

不管是黑盒還是白盒,我們一旦實(shí)現(xiàn)代碼或腳本的測試,就可以做到可持續(xù)集成,這在接口的日常回歸和冒煙測試中非常的高效。

下面開始介紹如何實(shí)現(xiàn)以上2個(gè)方面的可持續(xù)集成環(huán)境搭建。

1. Jenkins+Ant+Jmeter框架

1.1 環(huán)境搭建

環(huán)境配置(僅代表本文作者搭建環(huán)境時(shí)相關(guān)配置):
JDK:jdk1.8.0_144
Ant:apache-ant-1.9.9
Jmeter: apache-jmeter-3.0
Jenkins: jenkins-2.60.2

1.1.1 Jenkins環(huán)境搭建

  1. 下載最新的版本(一個(gè) WAR 文件)。Jenkins官方網(wǎng)址: http://Jenkins-ci.org/

  2. 運(yùn)行 Java -jar jenkins.war
    注意:Jenkins 需要運(yùn)行 Java 5以及以上的版本。
    還有一種安裝方式就是將下載的war包文件部署到 servlet 容器,然后啟動(dòng)容器,在瀏覽器的URL地址欄中輸入類似http://localhost:8080/jenkins/這樣的地址即可。下圖是安裝成功后的界面(使用的是Linux+Tomcat6+Java6環(huán)境):

  3. Jenkins配置
    寫在配置前的一些話:Jenkins的配置不可能全部都說到的,大部分配置是有英文說明的,點(diǎn)擊輸入框后面的問號(hào)就可以看見了。英文不會(huì)用翻譯工具,連蒙帶猜的,多測試幾次,你就懂了。

  4. Jenkins服務(wù)默認(rèn)端口為8080,如與其他服務(wù)沖突,可在..\Jenkins\jenkins.xml中修改默認(rèn)端口,如我這里修改為--httpPort=8081;


另外一種修改端口號(hào)方式:

  1. 安裝Jenkins時(shí)運(yùn)行“Java -jar jenkins.war” 命令,出現(xiàn)下列問題
    點(diǎn)擊查看大圖

    只是因?yàn)?080端口已經(jīng)有程序占用了,需要修改端口號(hào)。
    解決方法是:
    運(yùn)行“java -jar jenkins.war --ajp13Port=-1 --httpPort=8089”命令。
    8089是新的端口號(hào),可以換成任何你想要的,但是不要和其他程序沖突哦。
    OK啦。
    2、安裝jenkins服務(wù),這樣每次不用每次敲命令,開機(jī)自啟動(dòng)
    (Jenkins->Manage Jenkins->Installing Jenkins as Windows service, 安裝到你指定目錄D:\jenkins)
    關(guān)掉啟動(dòng)的窗口,試著啟動(dòng)安裝的服務(wù)
    控制面板->管理工具->服務(wù), 可以看到j(luò)enkins, 右擊啟動(dòng)

Jenkins服務(wù)默認(rèn)是自動(dòng)啟動(dòng)的,如果想修改為手動(dòng)啟動(dòng),請(qǐng)自行管理->服務(wù),找到Jenkins服務(wù),修改為手動(dòng)啟動(dòng)即可。


打開Jenkins,首次進(jìn)入會(huì)默認(rèn)讓你選擇安裝插件(此處如果完全不清楚自己需要什么插件,建議全選)。插件安裝完成之后,需要設(shè)置登錄用戶,按照自己喜好設(shè)置即可。

1.1.2 Ant環(huán)境搭建

  1. 解壓apache-ant-1.9.7-bin.zip到D:\Progrom Files目錄下;


  2. 配置Ant環(huán)境變量
    新建以下環(huán)境變量:
    ANT_HOME:D:\Progrom Files\apache-ant-1.9.7,此為你的ANT安裝路徑;設(shè)置完成后,點(diǎn)擊"確認(rèn)"來保存。

  3. 在環(huán)境變量PATH的最后面添加一下內(nèi)容:
    ;%ANT_HOME%\bin 注意前面的分號(hào),如果PATH中最后沒有分號(hào)";"的話要加上,有的話就可去除。

  4. 進(jìn)入cmd命令窗口,在CMD窗口中輸入ant -version,敲擊回城鍵,會(huì)顯示出你安裝的ANT版本,如果成功顯示,說明你的配置應(yīng)該是成功了.

  5. 本地調(diào)試使用ant構(gòu)建運(yùn)行Jmeter,并且生成jtl、Html報(bào)告;
    jmeter默認(rèn)保存的是.csv格式的文件,所以我們先要設(shè)置一下bin/jmeter.properties文件內(nèi)容,修改jmeter.properties文件 jmeter.save.saveservice.output_format=xml;
    將apache-jmeter-2.13\extras\ant-jmeter-1.1.1.jar拷貝到apache-ant-1.9.7\lib目錄下;

  6. 在\apache-jmeter-2.13\extras目錄下打開CMD,運(yùn)行"ant.bat -file build.xml -Dtest=Test" . 查看\apache-jmeter-2.13\extras目錄下是否出現(xiàn)Test.jtl、Test.html文件,若有,則構(gòu)建成功。注意:Test.jmx是默認(rèn)存在的Sample腳本文件。
    若構(gòu)建失敗,請(qǐng)分析cmd打印的日志消息,定位問題;

  7. build文件推薦設(shè)置:

**[html]** [view plain](http://blog.csdn.net/qi_lin7/article/details/52045713#) [copy](http://blog.csdn.net/qi_lin7/article/details/52045713#)

<!-- 這個(gè)是推薦build,至于原理,大家可以查看ant-jmeter-1.1.1.jar源碼 -->    

**[html]** [view plain](http://blog.csdn.net/qi_lin7/article/details/52045713#) [copy](http://blog.csdn.net/qi_lin7/article/details/52045713#)
<?xml version="1.0" encoding="UTF-8"?>  
  
<project name="ant-jmeter-test" default="run" basedir=".">  
      
    <tstamp>  
        <format property="time" pattern="yyyyMMddhhmm" />  
    </tstamp>  
    <property name="basedirectory" value="D:\Program Files\apache-jmeter-3.1\extras" />  
    <!-- 需要改成自己本地的 Jmeter 目錄-->    
    <property name="jmeter.home" value="D:\Program Files\apache-jmeter-3.1" />  
    <!-- jmeter生成jtl格式的結(jié)果報(bào)告的路徑-->   
    <property name="jmeter.result.jtl.dir" value="${basedirectory}" />  
    <!-- jmeter生成html格式的結(jié)果報(bào)告的路徑-->  
    <property name="jmeter.result.html.dir" value="${basedirectory}" />  
    <!-- Name of test (without .jmx) -->  
    <property name="test" value="Test"/>  
    <!-- 生成的報(bào)告的前綴-->    
    <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}">  
             <!-- 聲明要運(yùn)行的腳本。"*.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>  

1.1.3 Jmeter環(huán)境搭建

  1. 解壓apache-jmeter-2.13.zip到D:\Progrom Files目錄下。


  2. Jmeter插件的安裝。解壓JMeterPlugins-Extras-1.3.0.zip、JMeterPlugins-Standard-1.3.0.zip,將對(duì)應(yīng)ext目錄下的文件拷貝到D:\Progrom Files\apache-jmeter-2.13\lib\ext目錄下;


  3. 配置jmeter環(huán)境變量:

  • 設(shè)置環(huán)境變量,新建系統(tǒng)變量在變量名中輸入:JMETER_HOME,變量值中輸入:D:\Progrom Files\apache-jmeter-2.13,點(diǎn)擊確定即可。
  • 在環(huán)境變量CLASSPATH中添加%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;
    在環(huán)境變量Path中添加%JMETER_HOME%\bin3) 檢驗(yàn)是否配置成功 運(yùn)行cmd 輸入 jmeter -v (jmeter和 -v 之間有空格)
    若如圖所示 顯示版本信息 則說明安裝和配置成功。


1.2 項(xiàng)目實(shí)戰(zhàn)

步驟1:

Jmeter腳本設(shè)計(jì),包括性能測試腳本和接口測試腳本test.jmx

步驟2:

將Jmeter腳本放在文件夾 *D:\apache-jmeter-3.0\extras *;

步驟3:

本地登陸http://121.40.190.131:1080/ ,構(gòu)建測試環(huán)境,可復(fù)制已經(jīng)搭建好的test例子(項(xiàng)目路徑:http://121.40.190.131:1080/job/test), 然后進(jìn)入配置更改以下2項(xiàng)即可:

image.png
image.png

如上圖,紅色框內(nèi)的信息需要跟你的腳本名稱一致,這樣可易于識(shí)別不同的腳本,不同的結(jié)果。如我們的腳本為test.jmx,那么我們只需更改紅框內(nèi)信息為 test.jtl、test.html,其他無需更改,點(diǎn)擊構(gòu)建即可;

步驟4:

查看測試結(jié)果,如圖:

image.png

同時(shí),可以可以點(diǎn)擊進(jìn)入每次構(gòu)建的Performance Report,查看具體的jtl文件信息,如下圖:

image.png

如上圖,可以查看本次構(gòu)建,線程數(shù)、響應(yīng)時(shí)間、錯(cuò)誤率與上次相比,增減量。

2. Jenkins+Java+Maven+Junit+Git框架

2.1 環(huán)境搭建

//

2.2 項(xiàng)目實(shí)戰(zhàn)

步驟1:

Java單元測試——基于主干拉取autotest分支,然后基于autotest代碼進(jìn)行白盒測試。在每次新項(xiàng)目提測時(shí),將新代碼合并至autotest分支即可,不會(huì)覆蓋我們的單測代碼;同時(shí),也可以用于每日的業(yè)務(wù)回歸測試。

步驟2:

提交本地代碼至autotest分支,復(fù)制已經(jīng)搭建好的 jingqi_center項(xiàng)目(http://test.cxjc.youzibuy.com/jenkins/view/%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96/job/jingqi_center/), 只需修改git的路徑和分支號(hào)即可,如下圖:

image.png

步驟3:

構(gòu)建完成后,可查看測試結(jié)果及歷來構(gòu)建的趨勢,如下圖:

image.png

同時(shí),點(diǎn)擊最新測試結(jié)果,可查看具體信息:

image.png

如上圖,會(huì)列出Failed Tests的接口,點(diǎn)擊 + ,可展示具體信息:

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,247評(píng)論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,520評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,362評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,805評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,541評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,896評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,887評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,062評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,608評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,356評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,555評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,077評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,769評(píng)論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,175評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,489評(píng)論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,289評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,516評(píng)論 2 379

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