步驟一:在需要獲取token的接口上,添加正則表達式提取器
說明:
(1) Apply to:應用范圍
Main sample and sub-samples:匹配范圍包括當前父取樣器並覆蓋至子取樣器
Main sample only:匹配范圍為當前父取樣器
Sub-samples only:僅匹配子取樣器
JMeter Variable:支持對JMeter變量進行匹配
(2)要檢查的響應字段:針對響應數據的不同部分進行匹配
主體:響應數據的主體部分,排除Header部分;Http協議返回請求的主體部分就是Body
Body:針對替換了轉義碼的Body部分
Body as a Document:返回內容作為一個文檔進行匹配
信息頭:只匹配信息頭部分的內容
URL:只匹配URL鏈接
響應代碼:匹配響應代碼,比如HTTP協議返回碼200代表成功
響應信息:匹配響應信息,比如處理成功返回"成功"字樣,或者"OK"字樣
(3)引用名稱:下一個請求要引用的參數名稱,如填寫title,則可用${title}引用它。
(4)正則表達式:
():括起來的部分就是要提取的。
(5)模板:正則表達式可以設置多個模板進行匹配,在此只可指定運用哪個模板,模板自動編號,$1$指第一個模板,$2$代表第2個模板,依此類推。$0$代表全文匹配
(6)匹配數字:在匹配時往往會出現多個值匹配的情況,0代表隨機取值;不同模板可能會匹配一組值,那么可以用匹配數字來確定取這一組值中哪一個;負數取所有值,通常情況下填0
(7)缺省值:如果沒有匹配到,那可以指定一個默認值
步驟二:使用獲取到的token值。添加HTTP Cookie管理器
說明:
- 名稱:對該 Cookie管理器的自定義概述
- 注釋:對該 Cookie管理器的詳細描述
- 每次反復清除Cookies?:選擇后,則每次線程組運行時,都會清除 cookie。PS:若是手動添加的cookie,則不會被清除。
- Implementation:履行的協議。
- Cookie Policy:Cookie的管理策略。有如下幾種可選項:
- compatibility:推薦選擇此種策略。這種兼容性設計要求是適應盡可能多的不同的服務器,盡管不是完全按照標准來實現的。如果你遇到了解析 Cookies 的問題,你就可能要用到這一個規范。有太多的web站點是用CGI腳本去實現的,而導致只有將所有的 Cookies 都放入 Request header 才可以正常的工作。這種情況下最好設置 http.protocol.single-cookie-header 參數為 true。
- rfc2109:是HttpClient使用的默認Cookies協議。
- rfc2965:定義了版本2並且嘗試去彌補在版本1中 Cookie 的 RFC2109 標准的缺點。規定 RFC2965 最終取代 RFC2109 發送 RFC2965 標准 Cookies 的服務端,將會使用 Set-Cookie2 header 添加到 Set-Cookie Header 信心中,RFC2965 Cookies 是區分端口的。
- ignorecookies:此規格忽略所有 Cookie。被用來防止 HttpClient 接受和發送的 Cookie。
- netscape:是最原始的 Cookies 規范,同時也是 RFC2109 的基礎。盡管如此,還是在很多重要的方面與 RFC2109 不同,可能需要特定服務器才可以兼容。
- default:默認。
6.存儲在Cookie管理器中的Cookie
名稱:參數的名稱,如本例中名稱是 _security_token
值:參數的值,如本例中值是從步驟一的正則表達式中的${token}
域:使用到該cookie的域名,如本例中則是多圖模板這個接口的域名
運行結果:
實踐過程中遇到的問題:
1、
2、token的值拿到了,但是線程執行失敗,把請求方法由Get改成Post就成功了
3、token的值拿到了,請求方法也是正確的,線程執行失敗,把代理去掉就成功了