Jmeter 接口測試

Jmeter 接口測試知識

參考資料

* [jmeter](http://jmeter.apache.org/)
* [manual]( http://jmeter.apache.org/usermanual/index.html )

jmeter簡介

jmeter 是一款 java 開源的測試工具. 
    1. 多協(xié)議支持 ,http,https ,soap/rest, ftp ,jdbc ...
    2. 多線程并發(fā)
    3. GUI界面
    4. more...

名詞解釋

* test-plan : 
    測試計劃 , 測試計劃中有一個函數(shù)測試模式, 選中該選項后則從服務(wù)器請求的結(jié)果會保存到指定位置, 一般不選擇,因為影響性能.,
    
* thread-group : 
    線程組 ,所有的samples,controllers 比需在thread group下面創(chuàng)建.顧名思義,線程組用來控制所有測試執(zhí)行的線程
    
* Controllers : 
    控制器 ,兩種分類,
    一種是samplers(樣板),主要負責(zé)請求處理,比如http request Sampler 講發(fā)送一個http請求;
    一種是邏輯控制器.主要負責(zé)定制請求邏輯,比如,交替控制器 ,可以交替的處理兩個樣板
     
* Samplers :
    樣本(采集器), 主要用于處理jmeter的請求和響應(yīng).提供多種協(xié)議支持的樣本
    
* Listeners :
    監(jiān)聽器, 主要監(jiān)控請求和響應(yīng)的數(shù)據(jù)
   
* Timers :
    定時器 , 線程組執(zhí)行樣本如果不設(shè)置延遲,則瞬間壓力非常大
   
* Assertions: 
    斷言 , 驗證響應(yīng)結(jié)果.
    
* Pre-Processor:
    前置處理器,顧名思義,請求前的處理
    
* Post-Processor:
    后置處理器,顧名思義, 響應(yīng)后的處理

請求順序

0. Configuration elements 
1. Pre-Processors
2. Timers
3. Sampler
4. Post-Processors (unless SampleResult is null)
5. Assertions (unless SampleResult is null)
6. Listeners (unless SampleResult is null)

Web 接口測試demo

jmeter 可以測試接口的功能和性能.
通過jmeter自帶的tempalte 我們可以了解一些jmeter 大致的流程. 那么 ,我們假設(shè)一個場景: 用戶登錄,登錄之后獲取到我的信息.
這個場景主要需要,用戶請求登錄,登錄之后返回用戶token, 獲取到用戶token 訪問用戶信息接口,查詢用戶信息.首先,我們來實現(xiàn)功能測試.

流程介紹

1. 創(chuàng)建一個線程組 ,默認(rèn)線程數(shù)1 ,循環(huán)2
2. 創(chuàng)建"用戶定義的變量" 來設(shè)置一些公共的變量
3. 創(chuàng)建一個默認(rèn)的 "http請求默認(rèn)值"(所謂請求默認(rèn)值,顧名思義,如果下面不指定,則這個就是標(biāo)配)
4. 正常的流程,我們需要測試用戶登錄之后的一系列操作, 所以這里,我們創(chuàng)建邏輯控制器 "僅一次控制器" 來確定無論多少次循環(huán)都執(zhí)行一次登錄
5. 鑒于我們的登錄需要傳遞一個json 的請求參數(shù),這里需要創(chuàng)建一個自己使用的"http信息頭管理器" ,設(shè)置content-Type 為 application/json
6. 創(chuàng)建一個sampler ,"http請求" 命名為 登錄.Post ,Body-Data 傳遞一個json 的用戶名和密碼
7. 創(chuàng)建一個屬于登錄自己的斷言, 判斷成功必須包含一個assess_token
8. 創(chuàng)建一個屬于登錄自己的監(jiān)聽 "結(jié)果樹"
9. 我們需要獲取到token的值,所以,創(chuàng)建一個后置處理器 "正則表達式提取器",別忘了apply to: 指定main sample and sub-samples (我們的樣板
        不在一個層級)
10. 創(chuàng)建一個"Http信息頭管理器" (這個頭信息默認(rèn)為下面的功能提供默認(rèn)攜帶token)
11. 創(chuàng)建另一個功能接口,"http請求" ...巴拉巴拉,按照以上順序創(chuàng)建斷言,結(jié)果樹



**總結(jié)**
    我們在使用過程中測試了scope , 一個請求的范圍,默認(rèn)值得范圍 ,最后我們看到,jmeter是有作用域的,雖然 官方文檔中介紹了作用域,但是寫一個demo
    才感受到有了作用域的強大.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容