前言
在接口測試的時候,很多接口都需要用戶先登錄,才有訪問接口的權限。在測試的時候,我們的關注點其實是當前測試的接口,登錄只是一個前置操作。
像 python 的 unittest 和 pytest 框架都有 setUp 的概念,前置操作用來准備測試數據,jmeter 里面也有個 setUp 線程組可以實現前置准備工作。
setUp線程組
我們需要測試的是查詢用戶個人信息接口:/api/v1/userinfo,但是查詢接口需要有用戶登錄的token才有權限去訪問。
那么我們的前置操作就是先登錄,取出token,后面的接口拿着這個token就有權限訪問了
在測試計划里面,新增 setUp 線程組
在 setUp 線程組前面加HTTP請求默認值添加環境配置,新增HTTP信息頭管理器添加POST接口請求類型Content-Type: application/json
(具體參考前面文章)
新增HTTP請求,添加登錄接口的相關信息
運行后查看結果樹,可以看到登錄后返回的token
返回的完整json內容
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/
{
"code": 0,
"msg": "login success!",
"username": "test",
"token": "b6b3545d53881d5e95430572bb43a5c995e462ce"
}
提取token
添加后置處理器-JSON提取器,把token提取出來,設置變量名稱:token
這里提取的變量,只在當前線程組能引用到,下面我們需把token設置為系統的全局變量,添加BeanShell 后置處理程序
把提取的${token}
參數設置為全局屬性,設置屬性名稱:token_global
${__setProperty(token_global,${token},)}
線程組引用全局屬性
新增一個測試的線程組,添加頭部管理器,在頭部添加token,引用屬性使用${__P(屬性名稱,)}
${__P(token_global,)}
接着添加我們需要測試的個人信息接口的訪問路徑
運行后查看結果樹請求頭部,可以看到已經關聯成功
還有個tearDown線程組,用於測試完成后數據清理的操作
原文地址https://www.cnblogs.com/yoyoketang/,轉載請注明出處!