學習總結——JMeter做http接口功能測試 學習總結——JMeter做http接口功能測試

JMeter對各種類型接口的測試

默認做接口測試前,已經給出明確的接口文檔(如,http://test.nnzhp.cn/wiki/index.php?doc-view-59);本地配好了JMeter 3.x的運行環境;

打開JMeter,添加一個線程組和該線程組的查看結果樹。以下的幾種接口請求我們都在這個線程組中添加和運行。

如果你的JMeter返回數據是亂碼,解決辦法是,在JMeter安裝路徑的bin目錄下,打開文件jmeter.properties,把Sampleresult.default.encoding的值改爲 utf-8 即可。

1. 普通的以key-value傳參的get請求

e.g. 獲取用戶信息

添加http請求;填寫服務器域名或IP;方法選GET;填寫路徑;添加參數;運行並查看結果。

 

 2. 以Json串傳參的post請求

e.g. 獲取用戶餘額

添加http請求;填寫服務器域名或IP;方法選POST;填寫路徑;在參數區域選Body Data標籤;寫入Json串參數,注意Json格式;運行並查看結果。

 

 *注意:

Json傳參時,往往參數相對複雜,規模較大,很多時候是Json串再嵌套Json串,在寫入body的時候如果哪裏格式不對會影響傳參,而JMeter本身是不能對Json進行格式校驗的(Postman可以進行簡單的Json校驗),我們可以藉助這個網站來校驗你的Json串的格式,www.bejson.com 再把確保格式正確的Json串填入body。

 

3.  請求時需要http權限驗證

e.g. 修改用戶餘額

添加http請求;填寫服務器域名或IP;方法選POST;填寫路徑;填寫參數;

 

添加授權管理器,右擊線程組->添加->配置元件->HTTP授權管理器;

 

打開HTTP授權管理器,在基礎URL添加路徑;填寫用戶名、密碼(接口文檔會給出);添加域即請求的服務器域名或IP;其他默認;

 

運行請求並查看結果。(該接口暫時有問題請求返回500,只要掌握需要權限驗證的接口如何做就好)

 

4.  請求時需要添加請求標頭

e.g. 獲取用戶信息2

添加http請求;填寫服務器域名或IP;方法選POST;填寫路徑;填寫參數;

 

添加HTTP信息頭管理器,右擊線程組->添加->配置元件->HTTP信息頭管理器;

 

打開HTTP信息頭管理器,參照接口文檔填寫好header信息;

 

運行請求並查看結果。

 

5.  請求時需要添加Cookie

e.g. 修改用戶餘額2

添加http請求;填寫服務器域名或IP;方法選POST;填寫路徑;填寫參數;

 

添加HTTP Cookie管理器,右擊線程組->添加->配置元件->HTTP Cookie管理器;

 

打開Cookie管理器,參照接口文檔填寫好Cookie信息;

 

 發送請求並查看結果。

 

6.  請求通過某個接口上傳文件

    e.g.上傳文件

    添加http請求;填寫服務器域名或IP;方法選POST;填寫路徑;在參數區域選Files Upload標籤,添加文件全名(包含絕對路徑,也可以點擊瀏覽按鈕添加),寫入參數名;發送請求並查看結果。

 

 

 

JMeter的參數化

1. 指定參數值

這種方法常用來解決線程組中多個請求共用相同的數據,比如我們以上所有請求都有相同的IP地址,當地址改變時可以一改全改。

添加用戶定義的變量,右擊線程組->添加->配置元件->用戶定義的變量;

 

打開用戶定義的變量,添加變量,寫好名稱和值;

 

腳本中用到該值的所有地方都可以引用這個變量名了,引用變量的格式爲 ${變量名};

 

2. 藉助函數生成參數

測試過程中,有時候數據不適合被指定,可選擇藉助函數來生成,以下是最常用的幾種。

  • ž     用函數生成隨機數:(__Random)

在Jmeter中點擊 選項->函數助手對話框;

 

在彈出的對話框中選__Random,填寫隨機數的範圍,點擊生成按鈕,就看到你需要的字符串了;

 

嘗試在請求中使用生成的隨機數,把剛拷貝的字符串粘貼到請求的參數裏;

 

發送請求,查看請求中參數值的情況,參數生效了。

 

 

  • ž    用函數生成當前時間:(__time)

 

 

  • ž    用函數生成通用的唯一識別碼:(__UUID)

 

 

 

3. 文件傳參

用於讀取在文件中維護的參數,如參數文件內容如下;

 

注意,Jmeter讀取文件總的參數是從第一行就開始了的,千萬不要犯下面的錯誤。

 

在Jmeter中右擊線程組->添加->配置元件->CSV Data Set Config;

 

打開設置窗口,寫入參數文件的全名(含絕對路徑),變量名,Delimiter就用默認的逗號,表示在準備參數文件時參數表的列之間用逗號隔開;

 

在請求中引用參數時應該是醬紫的:${username}  ${pwd},用它們來頂替對應的參數值。

 

4. 關聯傳參

在線程組內,當你想用一個請求的響應結果作爲另一個請求的入參時就需要用到關聯。

  • ž用正則表達式關聯

思路是先從某個請求的響應數據中提取你需要的值,在把這個值在另一個請求中入參,操作如下:

在需要被提取響應數據的請求下添加正則表達式提取器,右擊添加->後置處理器->正則表達式提取器;

 

在正則表達式提取器中填寫 引用名稱,不說也知道用途;正則表達式,最簡單的辦法是在響應數據中把要提取的目標值左右若干字符包含目標值的一行拷貝出來,粘貼到正則表達式框內,在把目標值用一對小括號替換,括號裏用添上合適的匹配符本例如(.*); 注意在響應數據中拷貝時儘量避開需要轉義的字符如果不能避開,請轉義;模板通常固定填$1$;匹配數字1代表區匹配的第一個值;缺省值是在匹配失敗時取得的值,通常用來檢查匹配是否成功;

 

用${age}入參給另一個請求,查看結果傳參成功。

 

 

 

  • ž用Json Path Extractor 插件關聯

只針對Json格式的Response 取值,右擊請求添加->後置處理器->JSON Path Extractor;

 

在JSON Path Extractor中填入引用名和JSONPath Expression;

 

在另一個請求中入參,也和上面的結果一樣轉參成功。

注意,JSON Path Extractor這個插件只能在Jmeter3.x以上的版本安裝。

 

Jmeter添加斷言檢查結果

右擊請求添加->斷言->響應斷言;

 

 

添加並寫入希望在響應結果中看到的內容;

 

發送請求,查看結果;

 

 Jmeter操作Mysql

測試計劃添加.jar包 mysql-connector-java-5.1.7-bin.jar用於使Jmeter可以讀取Mysql;

 

 線程組添加 JDBC Connection Configuration (添加->配置元件-> JDBC Connection Configuration)用於配置Jmeter和Mysql的連接;

 

JDBC Driver class是固定的,Jmeter操作各類數據的Driver參考下圖;

 

線程組添加JDBC Request(添加->Sampler-> JDBC Request) 用於寫sql來操作Mysql;

 

發送請求,成功訪問Msql。

 

學習總結——JMeter做http接口功能測試z

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