在數字網絡世界,“身份信息”就像我們的身份證一樣,有身份證信息,我們才可以去辦理個人社保、公積金、銀行卡之類的信息,同樣的我們要獲取這些數據,都必須使用我們的身份證進行驗證,否則對應的系統服務器無法識别,是否用戶本人?應該給獲取什麼數據給對應的用戶?
同樣的在接口的世界裡面,不同的客戶端向服務器請求信息時,也需要指定的“身份信息”來告知服務器該請求是哪個客戶端發起的 。服務器根據接口對應的“身份信息cookie”來識别發起請求的是誰,應該給其什麼數據,且該數據是别人無法獲取的。
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;
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狀态碼,有利于我們快讀判斷接口錯誤的原因。
我是誰?我是一名從事了多年軟件測試的老測試員,今年年初我花了一個月整理了一份最适合2020年學習的軟件測試學習幹貨,可以送給每一位對軟件測試感興趣的小夥伴,想要獲取的可以關注我的頭條号 私信:【測試】,即可免費獲取。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!