學習總結——JMeter做http介面功能測試

來源:互聯網
上載者:User

標籤:get   key   多個   strong   總結   提取   files   conf   如何   

JMeter對各種類型介面的測試

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

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

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

e.g. 擷取使用者資訊

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

 

 2. 以Json串傳參的post請求

e.g. 擷取使用者餘額

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

 

 

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. 關聯傳參

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

  • ?用Regex關聯

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

在需要被提取響應資料的請求下添加Regex提取器,右擊添加->後置處理器->Regex提取器;

 

在Regex提取器中填寫 引用名稱,不說也知道用途;Regex,最簡單的辦法是在響應資料中把要提取的目標值左右若干字元包含目標值的一行拷貝出來,粘貼到Regex框內,在把目標值用一對小括弧替換,括弧裡用添上合適的匹配符本例如(.*); 注意在響應資料中拷貝時盡量避開需要轉義的字元如果不能避開,請轉義;模板通常固定填$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介面功能測試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.