介面自動化測試世界裡的“身份證”—測試工具Jmeter實踐篇

博為峰網校發表於2021-04-01

在數字網路世界,“身份資訊”就像我們的身份證一樣,有身份證資訊,我們才可以去辦理個人社保、公積金、銀行卡之類的資訊,同樣的我們要獲取這些資料,都必須使用我們的身份證進行驗證,否則對應的系統伺服器無法識別,是否使用者本人?應該給獲取什麼資料給對應的使用者?

同樣的在介面的世界裡面,不同的客戶端向伺服器請求資訊時,也需要指定的“身份資訊”來告知伺服器該請求是哪個客戶端發起的 。伺服器根據介面對應的“身份資訊cookie”來識別發起請求的是誰,應該給其什麼資料,且該資料是別人無法獲取的。加我VX:atstudy-js 回覆“測試”,同時領取限量軟體測試學習資料哦~~

Jmeter是一個常見的介面自動化測試工具,其提供了HTTP Cookie Manager來管理介面需要的“身份資訊”。

基礎概念

在cookie管理器之前需要了解以下兩個概念:

Cookie

Cookie是遠端服務端返回的識別使用者身份資訊,該資訊儲存在客戶端,客戶端每次進行操作時,會透過HTTP協議和伺服器端進行Cookie的互動,驗證身份資訊正確才可互動成功(大多數需要登入後操作的介面上面會比較常見)。

Set-Cookie

設定HTTP Cookie,用來儲存一些使用者資訊以便讓伺服器辨別使用者身份的,一般是服務端返回的使用者身份資訊(大多數需要登入的介面上面會比較常見)。

Cookie和set-cookie之間的呼叫關係如下圖:

獲取身份資訊

使用者登入成功後,伺服器會透過登入請求的響應資訊頭(Response Headers)返回對應的“身份資訊”,該資訊儲存在set-cookie中。

身份資訊

我們可根據開發提供的介面文件找到身份資訊指定的欄位是哪一個,本文示例以XXX系統為例。

Response-headers下的set-cookie的第一個欄位就是我們需要的“身份資訊”:

Set-Cookie: ***_TOKEN=A73D75CE267E489EB61547BA1C5E89B0

具體如下圖:

提取身份資訊

新增Regular Expression Extractor,透過正規表示式的方式從response headers中提取“身份資訊” ,如下圖:

1.選擇要檢察的響應資訊欄位:此處選擇Response Headers;加我VX:atstudy-js 回覆“測試”,同時領取限量軟體測試學習資料哦~~

2.定義變數:下一個請求要引用的引數名稱,用於儲存正規表示式獲取的結果;

3.正規表示式:其中()括起來的部分就是要提取的字串(關於正規表示式的規則,可自行學習)。

使用cookie

選單路徑

新增cookie

登入介面的提取到的cookie資訊:

在登入介面裡面透過正規表示式獲取到的cookie有多個,形成list型別的資料,此時需要透過對應的變數名來獲取指定的有效cookie資訊,例如本文中,有效的cookie對應的變數名為:cookie_g1=D5062B16CBA04005AA845CBB2E643B5D,如下圖:

1.Name:定義cookie的名稱,介面中定義的cookie所在欄位的名稱;

2.Value:Cookie變數值的引用,從上一個請求中提取的cookie的變數名稱:${cookie_g1};

3.Domain:定義cookie生效的域名,若不定義則請求時不會引用該cookie資訊。

指令碼

本文示範的請求只有一個,所以直接在該請求下新增cookie管理器,如下圖:

執行結果

登入後未設定對應的cookie管理器,或者cookie管理器的域名設定錯誤,則進行其他介面請求時,request內容會顯示no cookies,則介面請求會報錯401,如下圖:

登入後的其他介面請求,會自動獲取cookie管理器內的資訊,作為cookie data進行身份資訊驗證:

常見狀態碼

以下為個人在進行介面測試過程中常見的狀態碼:

其他常見狀態碼可自行百度學習,在進行介面自動化測試過程中,掌握基礎的常見HTTP狀態碼,有利於我們快讀判斷介面錯誤的原因。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2766221/,如需轉載,請註明出處,否則將追究法律責任。

相關文章