Jmeter-正則表達式提取器獲取token-小實例

步驟一:在須要獲取token的接口上,添加正則表達式提取器web

 說明:正則表達式

    (1) Apply to:應用範圍服務器

        Main sample and sub-samples:匹配範圍包括當前父取樣器並覆蓋至子取樣器cookie

        Main sample only:匹配範圍爲當前父取樣器線程

        Sub-samples only:僅匹配子取樣器設計

        JMeter Variable:支持對JMeter變量進行匹配代理

 

   (2)要檢查的響應字段:針對響應數據的不一樣部分進行匹配blog

        主體:響應數據的主體部分,排除Header部分;Http協議返回請求的主體部分就是Bodytoken

        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管理器

 

 說明:

  1. 名稱:對該 Cookie管理器的自定義概述
  2. 註釋:對該 Cookie管理器的詳細描述
  3. 每次反覆清除Cookies?:選擇後,則每次線程組運行時,都會清除 cookie。PS:如果手動添加的cookie,則不會被清除。
  4. Implementation:履行的協議。
  5. 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的域名,如本例中則是多圖模板這個接口的域名

 

運行結果:

 

實踐過程當中遇到的問題:

一、

 

二、token的值拿到了,可是線程執行失敗,把請求方法由Get改爲Post就成功了

三、token的值拿到了,請求方法也是正確的,線程執行失敗,把代理去掉就成功了

相關文章
相關標籤/搜索