Jmeter接口測試實例講解 頂 原 薦

    一、測試需求描述

   1、 本次測試的接口爲http服務端接口

   2、 接口的主要分成兩類,一類提供給查詢功能接口,一類提供保存數據功能接口,這裏我們舉例2個保存數據的接口,因爲這兩個接口有關聯性,比較有代表性;

    3、接口描述:

        保存信用卡賬戶信息接口

            傳入參數:   

                args={

                    "clientNo":"434343556",

                    "alias": "**信用卡2",

                    "cardName": "長城*****卡2",

                     "cardNo": "25622356788251",

                    }

            傳出參數:

                    保存成功:{"returnCode":"0","returnMsg":"保存成功"}

                    保存失敗:{"returnCode":"1","returnMsg":"保存失敗"}

            保存邏輯:數據傳入進來,驗證通過,保存到信用卡賬戶表中

        

        保存信用卡賬單接口:

            傳入參數:

                args={

                    "clientNo":"434343556",

                    "accountName": "測試",

                    "billDate": "08",

                    "billMonth": "201509",

                     "cardNo": "25622356788251",

                    "currentPayment": "欠款459.80",

                    "paymentDate": "2015-09-25 09:00:00", 

                    }

            傳出參數: 

                    保存成功:{"returnCode":"0","returnMsg":"保存成功"}

                    保存失敗:{"returnCode":"1","returnMsg":"保存失敗"}

                     保存邏輯:保存時先去信用卡信息表查看clientNo對應的表是否存在,如存在則數據校驗通過,

                                       將數據保存進入信用卡賬單表

 

:這個保存邏輯在接口開發設計文檔中可能沒有寫或寫的不詳細,這時要與開發接口人員或產品人員多多溝通去熟悉接口邏輯

 

二、測試分析

    1、邏輯分析

        1)、從保存邏輯上來看,這兩個接口明顯是有依賴關係的,所以我們測試信用卡賬戶信息接口,再測試保存信用卡賬單接口

 

        2)、接口傳入的數據,最終是保存到數據庫中,所以當接口返回保存成功的時候,我們也要去對應的數據庫表中核對相應的數據(這裏可以用jmeter鏈接數據庫進行操作代理手工)

        3)、當出現保存失敗的情況時,我們需要查看系統的日誌,所以我們也要準備好查看日誌的權限和地址

        

    2、測試工具的準備

        1)、單個接口測試,我們使用火狐的插件poster

        2)、多個接口測試,我們使用Jmeter進行測試

 

三、使用工具測試

    1、Poster工具的使用方法見

            http://note.youdao.com/share/?id=a3efa149d165258710ebf1bd04079f72&type=note

    2、使用Jmeter對接口測試

            首先我們說一下爲什麼用Poster測試後我們還要用Jmeter做接口測試,在用poster測試時候會發現的是一個接口一個接口的測試,我們每次測試成功後的數據,在工具中是無法保存的,再次測試的時候我們還要重新輸入測試的數據,當我們測試一個接口的時候可能感覺不明顯,但是當你測試幾十個接口的時候,你就會發現使用Jmeter的好處,如果按測試階段來說冒煙測試我們用poster,集成測試我們用Jmeter

四、使用Jmeter接口測試

        1、首先郵件添加一個線程組,這裏我們重命名InterfaceTest

        

        

        2、在線程組上添加一個Http默認請求,並配置服務器的IP地址和傳輸編碼

        

        3、在線程組中添加一個HTTP請求,這裏我們重命名“增加信用卡賬戶信息接口”

        

        4、配置接口請求信息,這配置示例如下:

        

        

        5,在保存信用卡賬單接口請求,示例如下:

            

        :由於Jmeter請求線程組內的請求時從第一個開始執行,所以我們將需要最先執行的請求放在前面

        

        6、在線程組上添加監聽器,察看結果樹和聚合報告

        

        7、點擊啓動,運行結束後查看,結果樹和聚合報告

        

        8、去數據庫中核對數據

        

        9、大批量數據製造

            思路:

        1)、可參數化的參數,保存信用卡賬戶信息接口(clientNo,cardNo),保存信用卡賬單接口(clientNo,cardNo,billMonth,paymentDate)

        2)、兩個接口的依賴關係,保存信用卡賬單接口(clientNo,cardNo)要和信用卡賬戶信息接口(clientNo,cardNo)的兩個相同,也就是說這兩個要用一個參數,且還不能重複

        根據上面兩個特點,(clientNo,cardNo)我們選取使用計數器,每循環一次計數器加1,那麼我們將線程組設置循環執行1萬次;billMonth,paymentDate,這兩個日期我們是使用隨機函數${__Random(1,9,)},將月份參數化;

        3)、在線程組上創建計數器,配置如下:

        

        4)、引用計數器和隨機函數

        信用卡賬戶接口傳入參數

                args={

                    "clientNo":"${add}434343556",

                    "alias": "**信用卡2",

                    "cardName": "長城*****卡2",

                     "cardNo": "${add}25622356788251",

                    }

        賬單接口傳入參數

        args={

                    "clientNo":"${add}434343556",

                    "accountName": "測試",

                    "billDate": "08",

                    "billMonth": "20150${__Random(1,9,)}",

                     "cardNo": "${add}25622356788251",

                    "currentPayment": "欠款459.80",

                    "paymentDate": "2015-0${__Random(1,9,)}-25 09:00:00", 

                    }

        5)、設置線程組循環測試,點擊運行,查看運行結果,再去數據庫看看,大批量數據就這樣產生了

        

        

歡迎大家關注微信公衆號進行交流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章