2017-01-03 30 views
0

在應用程序中,我測試的真實性令牌在用戶登錄後發生更改 - 所以我必須提取令牌兩次(登錄後一次,登錄後第二次)。我使用正則表達式提取器。jmeter - 多個令牌提取

第一次(登錄時)它工作正常。

第二次(登錄後)它不提取新的令牌 - 隨後的POST發送給定的引用名稱(來自正則表達式提取器)而不是提取的令牌。

我在兩個提取器中使用不同的引用名稱。這兩個頁面具有相同的源和令牌以同樣的方式定義:

<meta content="authenticity_token" name="csrf-param" /> 
<meta content="g/bsiegqqexUreoJdRbogKSpw6ZJ7O86fEUPESolrpc=" name="csrf token" /> 

於是我就用在這兩種情況下相同的正則表達式:

name="authenticity_token".*value="(.+)" 

但是,正如我所說的,它只能爲第一個標記。

任何幫助表示讚賞,並提前

+0

可以請你共享測試計劃,突出顯示RegExExtractors和問題不明確?以及需要提取令牌的HTTP響應。在問題中,給出的內容和正則表達式不匹配(在競爭網中沒有值字段)。 –

回答

1

簡單don't use regular expressions to parse HTML感謝。響應中的任何輕微標記更改,換行符,空白,屬性順序更改等,您什麼也得不到。

你必須設計爲與HTML響應類型做兩份漂亮的後處理器:

  1. CSS/JQuery Extractor

    相關的配置看起來像:

    • CSS/jQuery表達式:meta[name=csrf token]
    • 屬性名稱:content
  2. XPath Extractor

    • XPath查詢看起來像://meta[@name='csrf token']/@content
    • 如果你的反應是不符合XHTML你可能需要打勾Use Tidy (tolerant parser)
+0

謝謝!看起來像有人不得不讓我看到明顯的事情。 –

相關問題