2017-05-08 336 views
0

我試圖對包含特殊字符的響應執行響應消息斷言。Jmeter響應消息斷言與特殊字符

我看了看這個問題:

Adding/at the start and end of the asserted string in Response Assertion in JMeter

但我仍然不能得到它相匹配的斷言,當它包含特殊字符。我嘗試了文本響應/包含,子串和響應消息/包含,子串,但沒有一個匹配。

我到測試模式是:

「v1.Accounts.Accounts.UpdateAccount失敗,原因是驗證錯誤:移動電話號碼]字段移動電話號碼必須是字符串或陣列型與‘20’的最大長度。 「

+0

你可以請張貼你的斷言模式? –

回答

0

作爲每How to Use JMeter Assertions in Three Easy Steps文章:

模式可以是是:

  • 一個「串」爲「等於」或「串」子句
  • 一個「Perl5-樣式「正則表達式」包含「或」匹配「子句

如果是子字符串它應該非常簡單:只需將整個「模式」放入「模式測試」字段中,並且如果響應包含該模式,斷言將會通過。

如果是包含 JMeter使用Perl5Matcher.contains() method在引擎蓋下,因此將「模式」視爲正則表達式。因此,您需要與像反斜槓逃脫特殊字符:

v1.Accounts.Accounts.UpdateAccount failed due to validation errors:\[MobileNumber\] The field MobileNumber must be a string or array type with a maximum length of '20'. 

以防萬一,當談到Perl-Compatible Regular Expressions你需要躲避以下字符:字符類之外

  • .^$*+?()[{\|字符
  • ^-]\字符類中的字符

還要記住,正則表達式非常脆弱,所以任何額外的空間,新行,製表符,任何會破壞它們,所以如果上述建議無法幫助請用至少部分(更好的完整)響應來更新您的問題並指定你需要檢查什麼部分,它可能是這樣的情況下XPath Assertion

+0

感謝您的幫助,這是造成問題的響應中的一條新線。 – ChrisG29