jmeter接口測試實例

Jmeter的運行:打開Jmeter安裝包,進入\bin中,找到「jmeter.bat」,雙擊運行便可。打開界面如圖所示:正則表達式

 

修改簡體中文路徑:option->choose Language->chinese(simplified)json

(1)獲取學生信息-get請求

執行步驟:api

一、添加線程組服務器

二、添加http請求cookie

三、添加查看結果樹session

四、執行dom

五、查看結果函數

 

步驟1,在打開的jmeter界面中,右鍵「test plan」-> 「Threads(user)」->「線程組」,添加線程組。工具

步驟2,右鍵「線程組」->「添加」->「sample」->「HTTP請求」,添加HTTP請求。post

按照http請求接口文檔,填寫http請求信息,包括請求名稱、請求方式、服務器名稱、端口號,請求路徑,參數等。

其中:

(1)參數能夠在「parameters」中填寫,也能夠寫在「路徑」中,如:/api/user/stu_info?stu_name=小黑。

(2)端口號,http默認爲80,能夠省略。

(3)服務器名稱,不須要添加http://,發送請求時,系統會添加。

(4)content encoding 填寫utf-8,不填寫請求返回信息可能亂碼。

步驟3,右鍵「線程組」->「添加」->「監聽器」->「查看結果樹」,查看請求結果。

 

步驟四、點擊「獲取學生信息」,在工具欄點擊綠色運行箭頭,發送請求。

 

步驟五、在步驟4執行後,點擊「查看結果樹」查看請求結果。

點擊工具欄掃帚圖標,可刪除已執行的結果。

 

(2)登陸-post請求

說明:實例(2)「登陸」是實例(1)「獲取學生信息」的基礎上操做。

 

執行步驟:

一、添加http請求

二、執行

三、查看結果

步驟1,右鍵「線程組」->「添加」->「sample」->「HTTP請求」,添加HTTP請求。

 

點擊「登陸」請求,按照http請求接口文檔,填寫post請求信息,包括請求名稱、請求方式、服務器名稱、端口號,請求路徑,參數等。

 

步驟三、點擊「獲取學生信息」,在工具欄點擊綠色運行箭頭,發送請求。

 

 

步驟四、在查看結果樹中,查看執行返回結果。

執行時,可將實例(1)獲取學生信息「禁用」,僅關注實例(2)運行結果。

 

 

(3)添加學生信息-參數爲json類型

說明:實例(3)是實例(1)、(2)的基礎上操做。

 

執行步驟:

一、添加http請求

二、執行

三、查看結果

 

 

步驟1,右鍵「線程組」->「添加」->「sample」->「HTTP請求」,添加HTTP請求。

 

 

在「添加學生信息」界面,填寫http請求信息,以下圖所示。

 

 

步驟二、選擇「添加學生信息」,點擊工具欄綠色三角,發送請求。

 

 

步驟三、點擊「查看結果樹」,查看請求返回結果信息。

 

 

(4)添加金幣充值-發送cookii及身份驗證機制

金幣充值,須要身份驗證,即須要用戶登陸後服務器返回的cookie信息。

知識點:

(1)以「http cookie管理器」的方式發送cookie

(2)以「http信息頭管理器」的方式發送cookie

 

 

Ø  以「http cookie管理器」的方式發送cookie

步驟1,添加http請求,填寫請求信息,以下圖所示。

 

 

步驟2,不添加cookie信息,直接發送請求,則服務器返回「未登陸」提示,以下圖。

 

 

步驟3,以http cookie管理器方式添加cookie。

首先「登陸」,獲取用戶登陸後服務器返回的cookie信息。

 

添加http cookie管理器,添加方法:在「學生金幣充值」上右鍵,選擇「添加」->「配置元件」->「HTTP cookie管理器」,以下圖。

 

 

填寫獲取的cookie信息,填寫內容見下圖。

 

http cookie管理器的弊端,當cookie有多個參數時,要添加多行參數,比較麻煩。

 

執行後,服務器返回操做成功的信息,以下圖所示。

 

 

Ø  以http信息頭管理器的方式添加cookie。

http信息頭管理器的添加方式:在「學生金幣充值」上右鍵,選擇「添加」->「配置元件」->「http信息頭管理器」,以下圖。

 

 

http 信息頭管理器,cookie爲參數,對應的值,即便是多個,也能夠一併拷貝到「值」對應的列,很方便。

 

運行結果以下圖。

 

 

(5)獲取全部學生信息-添加header信息

知識點:http 信息頭管理器的使用

步驟1,添加http請求信息

 

 

添加http信息頭管理器,添加方法:

在「獲取全部學生信息」上右鍵,選擇「添加」->「配置元件」->「http信息頭管理器」

 

 

運行後,查看結果信息,以下圖所示。

 

 

(6)文件上傳

文件上傳http請求以下圖。

 

 

請求執行結果。

 

 

(7)函數助手(_ramdom/_time)-應用實例

應用場景,註冊多個用戶,用戶名不能重複。

一、借用函數助手中的隨機函數_ramdom生成某一範圍內的值,參與用戶名的生成。

弊端:由於生成的是給定範圍內的隨機數,兩次請求可能重複,形成請求失敗。

二、借用_time,根據時間戳生成惟一數據。

 

Ø  _ramdom的使用

步驟1,填寫http請求,以下圖。

 

 

步驟2,選擇「選項」->「函數助手對話框」,彈出函數助手窗口。

 

 

 

在函數助手窗口中,選擇隨機函數_random,輸入最小值01,最大值10,點擊【生成】。

 

 

將生成的字符串粘貼至用戶名dinghui後。

 

 

選擇「線程組」,在右側窗口中輸入「3」,即發起3次註冊請求。

 

 

執行後查看結果,以下圖所示,請求一、3註冊成功,請求2提示用戶已註冊,由於請求2產生的隨機數與請求1相同,都爲8.

 

 

 

 

 

 Ø  _time的使用

time參數以當前時間生成隨機數,格式爲YYYYMMddHHmmss,優勢不會重複。

 

 

(7)http請求默認值-應用實例

     該組件能夠爲咱們的http請求設置默認的值。假如,咱們建立一個測試計劃有不少個請求且都是發送到相同的server,這時咱們只需添加一個 Http request defaults組件並設置「Server Name or IP」,而後添加多個http請求且不設置"server name or ip",這些http請求會默認使用Http request defaults組件設置的值。

 

 

補充說明:

一、一個測試計劃中能夠有多個Defaults組件,多個Defaults組件的默認值會疊加,如第一個defaults中定義參數a=1;第二個defaults中第二參數b=2,c=3.有一個請求什麼參數也沒寫,發送請求時,參數爲a=1&b=2&c=3。

(8)用戶自定義變量-應用實例

同一線程組下多個請求都用到的參數,如服務器名,能夠經過添加用戶自定義變量實現。

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

 

 

 

(9)關聯(sessionid)-應用實例

應用場景:學生充值金幣接口請求,須要發送sessionid以驗證身份信息,sessionid爲用戶登陸後服務器返回的信息,須要在返回信息中獲取sessionid信息。

Ø  利用json extractor 組件

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

 

 

sessionid信息的表達式由來:登陸接口的返回信息。

  v   

                             

在學生金幣充值中獲取參數的值。

 

學生金幣充值可執行成功。

Ø  正則表達式提取器

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

根據登陸返回數據中包含sign的字符串,填寫正則表達式。

 

 

應用名稱:變量名

正則表達式:最簡單的辦法是在響應數據中把要提取的目標值左右若干字符包含目標值的一行拷貝出來,粘貼到正則表達式框內,在把目標值用一對小括號替換,括號裏用添上合適的匹配符本例如(.*)或(.+?),左右邊界中若含轉義字符,儘可能避開,或轉義;

 

模板:$1$,匹配數據1表明匹配的第一個值。

缺省:獲取不到值是賦一個默認值。

在請求中填寫cookii信息,提取變量的值。

 

 

3、關於正則表達式的舉例說明:

  一、提取單個字符串:
    假如想匹配Web頁面的以下部分:name = "file" value = "readme.txt">並提取readme.txt。一個合適的正則表達式:name = "file" value = "(.+?)">。
      ():封裝了待返回的匹配字符串。
      .:匹配任何單個字符串。
      +:一次或屢次。
      ?:不要太貪婪,在找到第一個匹配項後中止。

  二、提取多個字符串:
    假如想匹配Web頁面的以下部分:name = "file.name" value = "readme.txt">並提取file.name和readme.txt。一個合適的正則表達式:name = "(.+?)" value = "(.+?)"。這樣就會建立2個組,分別用於$1$和$2$

  好比:

    引用名稱:MYREF
    模板:$1$$2$

   以下變量的值將會被設定:
    MYREF:     file.namereadme.txt
    MYREF_g0:   name = "file.name"value = "readme.txt"
    MYREF_g1:  file.name
    MYREF_g2:  readme.txt

  在須要引用地方能夠經過:${MYREF}, ${MYREF_g1}進行使用。

(10)參數化-應用實例

Ø  CSV 數據文件設置

利用CSV 數據文件設置元件,導入外部參數列表。

以註冊爲例,屢次註冊,每次用不用的用戶名。

右鍵「線程組」->「添加」->「配置元件」->「CVS數據文件設置」

 

 

文件名:瀏覽選擇參數列表。

變量名稱:有幾個變量就寫幾個變量,變量間用分隔符分割,分割符在「分隔符」中定義。

應用方法${username},${password}

分隔符:定義分隔符,這裏定義某個分隔符。

是否容許帶?:選項選爲「true」的時候對全角字符的處理出現亂碼。

參數文件內容:

 

 

參數文件的引用:

 

 

請求參數:

 

 

(11)響應斷言-應用實例

 

 

正確匹配時,結果樹中運行結果狀況以下:

 

 

設置錯誤匹配值,運行狀況以下:

 

相關文章
相關標籤/搜索