一、使用正則表達式提取器提取token
查看登錄響應參數找出token。圖中token為 "ticketString": "ccf26b17-a96f-4913-8925-9bbf737bef35"
使用正則表達式提取器提取token
當其他線程組需要使用token時,需要使用BeanShell Sampler設置全部變量,${__setProperty(newtoken,${token})}
在“HTTP信息頭管理器”使用 ${__property(newtoken)} 引用token ,需要注意設置和引用時的區別,name里面的token為我們需要傳入變量名,不是我們提取token時自定義的變量
在結果樹里面,查看引用了token請求的RequestHeaders,若顯示token值則表示token引用成功,若顯示的是 ${__property(newtoken)} 則表示引用失敗,失敗原因從使用正則提取token開始排查
2. 提取cookie:登錄后根據正則表達式提取cookie,cookie位於響應頭中的set-cookie字段。
正則:Set-Cookie: (.*);Path=/;
二、使用json提取器提取token
首先查看登錄響應數據結構
使 $.data.ticketString 提取token,提取后引用方式都相同
查看引用token是否成功
注:利用上面兩種方法基本上可以提取任何響應的數據並將其參數化
三、常見問題
1、在線程組中引用另一個線程組定義的參數時,參數的值未被引用。(已使用json Path Tester或RegExp Tester驗證提取的方法能提取出值)
問題原因:線程組(Thread Group)之間是同級的,在使用Jmeter默認配置時,線程組是無序並行運行的,所以可能會出現線程組1還沒提取出參數的值,線程組2卻已經引用了參數。
解決方法:點擊TestPlan(測試計划) --> 勾選RunThread Groups...,讓線程組按排列順序執行即可。
來源:https://www.cnblogs.com/testlearn/p/10958892.html