介面自動化測試世界裡的“身份證”—測試工具Jmeter實踐篇
在數字網路世界,“身份資訊”就像我們的身份證一樣,有身份證資訊,我們才可以去辦理個人社保、公積金、銀行卡之類的資訊,同樣的我們要獲取這些資料,都必須使用我們的身份證進行驗證,否則對應的系統伺服器無法識別,是否使用者本人?應該給獲取什麼資料給對應的使用者?
同樣的在介面的世界裡面,不同的客戶端向伺服器請求資訊時,也需要指定的“身份資訊”來告知伺服器該請求是哪個客戶端發起的 。伺服器根據介面對應的“身份資訊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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 試著使用 jmeter 實現介面自動化測試JMeter
- 介面自動化測試工程實踐分享
- Jmeter+Ant+Python 介面自動化測試JMeterPython
- 介面自動化測試的最佳工程實踐(ApiTestEngine)API
- JMeter 介面自動化測試(手工轉自動化指令碼)JMeter指令碼
- 自動化測試:Monkey工具實踐應用~
- Docker與自動化測試及其測試實踐Docker
- 自動化測試的最佳實踐
- API自動化測試實踐API
- 測試開發之效能篇-JMeter介面測試JMeter
- 介面自動化測試
- 求助帖:JMeter 介面自動化測試——資料驅動JMeter
- 自動化測試篇
- Jmeter 介面自動化連載 (13) - 自動生成測試報告JMeter測試報告
- Jmeter介面測試+效能測試JMeter
- 實用測試技能分享:jmeter+Jenkins效能測試自動化搭建JMeterJenkins
- 測試開發之介面篇-使用K6完成介面自動化測試
- 前端自動化混沌測試實踐前端
- UI自動化測試工程實踐UI
- 自動化測試實踐總結
- Jmeter+Ant+Jenkins介面自動化測試框架搭建for WindowsJMeterJenkins框架Windows
- 介面測試(apipost、jmeter和python指令碼)——測試工具APIJMeterPython指令碼
- Python 介面自動化測試Python
- 介面測試工具 Postman 使用實踐Postman
- Jmeter介面測試JMeter
- jmeter介面測試教程以及介面測試流程JMeter
- postman實現介面的自動化測試Postman
- jenkins+ant+jmeter介面自動化的持續整合測試框架JenkinsJMeter框架
- 測試自動化中遵循的最佳實踐
- Jmeter測試工具的實際專案測試案例JMeter
- Jmeter實現 Dubbo介面測試JMeter
- 基於LangChain手工測試用例轉介面自動化測試生成工具LangChain
- 2021年軟體測試工具大全(自動化、介面、效能、安全、測試管理)
- 自動化測試工具QTPQT
- 2019測試員必備武器:世界排名前5的自動化測試工具
- 測試開發之自動化篇-自動化測試框架設計框架
- 介面自動化測試 - RobotFramework RESTinstanceFrameworkREST
- 二、介面自動化測試(2)