本文記錄了使用JMeter來模擬用戶登錄或粮,并從登錄接口返回的JSON數(shù)據(jù)提取Token供其它線程組使用律歼。
主要內容:
- 1.登錄提取token設置全局變量
- 2.使用全局token進行接口壓測
1.下載
http://jmeter.apache.org/download_jmeter.cgi
2.新建測試計劃
2.1.新建 HTTP請求默認值
HTTP請求默認值
用來統(tǒng)一管理待測試的服務器地址和端口
image.png
這里將測試服務器地址設置為 http://127.0.0.1:9999
2.2 新建 setUp線程組
setUp線程組
這里的線程組來模擬登錄使用只需要執(zhí)行一次即可停局,所以單獨用一個線程組。
在這個線程組下新建 HTTP請求來模擬登錄
HTTP請求
配置登錄接口
我這里登錄是用的JSON格式闽烙,所以下面設置登錄請求頭為Content-Type:application/json
HTTP信息頭管理器
設置請求頭為JSON
測試是否登錄成功潭枣,新建 查看結果樹
查看結果樹
運行測試計劃
運行測試計劃
可以看到登錄已經(jīng)成果返回了
{
"data": {
"token": "OGMwYTkzMzA1MDc3NDBiOGJjYjQyNDdkMjkwYmU2ZmQ6MTExMzAwMzEyNDA5MzYxNjEyOQ",
"user": {
"id": "1113003124093616129",
"username": "admin",
"truename": "管理員"
}
},
"message": "操作成功!",
"resultCode": "00000"
}
2.3.提取登錄返回數(shù)據(jù)中的token并設置全局變量
1.提取token
新建 JSON提取器
新建 JSON提取器
JSON提取器 配置
這里 $
就是返回的JSON對象 $.data.token
就是獲取token 然后賦值給 token 變量
2.將token賦值全局變量
新建 Bean shell 后置處理程序
image.png
設置全局的Token
${__setProperty(Token,${token},)}
將token賦值給Token
2.4.使用全局的Token
類似于登錄宾毒,我們新建一個線程組來測試業(yè)務接口
新建 線程組
線程組示例
在線程組下有個HTTP信息頭管理器驼修,我們可以設置獲取全局Token
獲取全局Token
${__P(Token,)}
獲取Token
這樣設置后線程組下面的所有業(yè)務接口都能復用第一次登錄的token了。
3.對登錄一次對線程組里的業(yè)務接口進行壓力測試
前面我們已經(jīng)獲取到全局的Token現(xiàn)在只需要給線程組設置規(guī)則就好了
50個線程循環(huán)50次
新建 聚合報告
聚合報告
運行诈铛,并查看報告
聚合報告