對於測試腳本,可能換多個環境進行測試,如果每次換環境都要給每一個請求配置ip和端口有些多余,於是可以通過配置全局變量,解決該問題,實現一次修改即可。
創建Bean Shell Sampler:
配置全局變量:${__setProperty(url,192.168.4.98,)}
完成全局變量的配置后,使用${__property(url)}
進行引用
接下來是token的動態獲取配置,在此之前有一個坑:在請求token時要為其加一個HTTP Header,配置媒體格式,不然請求會報media error。
訪問登錄校驗的接口,獲得token:
在結果樹中可以看到返回的token信息:
{"token":"eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsInVzZXJJZCI6IjAiLCJuYW1lIjoi566h55CG5ZGYIiwicm9sZXMiOiJbMSwgMiwgM10iLCJleHAiOjE1Njg4OTExODl9.i95Z3T4Z8yfqWAvllmfi1-kypQOJkCd-BVvKzDvhsrAupy1F_tiQNqu53NB_1O2AXfPIgxxEtLNoovN6MYZV1ILGUy2lCAWH3nL3Iz8AApY8jgGxdII8Ap9RlE0O5lViXITSGZctcEosn0_kHGd6Ls-xIVHMB1b06_V0PMmKwfc"}
添加一個Regular Expression Extractor 使用正則表達式獲取token:
再為之后要執行的請求加一個同級的HTTP Header即可,通過${token}
獲得token
jmeter設置全局變量與正則表達式提取器
接口測試中,很多接口都要帶上登錄后的token才能正常發送請求,這里記錄一下登錄獲取token設置為全局變量供其他接口使用
登錄后返回信息信息中會有一個token值,添加后置處理器中的正則表達式提取token,然后用后置處理器中的BeanShell PostProcessor設置token為全局變量
1、獲取token值:
1.1、用fiddler抓包
1.2、F12查看接口信息
1.3、用jmeter登錄查看
2、正則表達式提取token:
3、BeanShell PostProcessor設置token為全局變量:
4、其他接口使用該全局變量:
添加http信息頭管理器
正則表達式提取器提取多個值
下一個接口的參數中需要用到前面某一接口返回數據中的值,因此通過正則表達式提取器來取得該值
$1$,$2$,$3$ 表示同時匹配第一個,第二個和第三個模板的數據
匹配數字:這里填寫1,表示每個模板值獲取第一個匹配的數據
${id_g1}獲取第一個模板匹配到的數據
${id_g2}獲取第二個模板匹配到的數據
${id_g3}獲取第三個模板匹配到的數據