2017-03-28 115 views
0

適用於:主要樣本和子樣本 響應現場測試:文本響應 模式匹配規則:包含JMeter的響應斷言失敗模式

模式進行測試:

<?xml version="1.0" encoding="ISO-8859-5" standalone="yes"?> 
<CIT_REQUEST> 
    <SYSTEM> 
     <CIT_Version Value="1.0"/> 
     <ERR Value=""/> 
     <FORMAT Value="XML"/> 
     <INTERFACE_RET Value=""/> 
     <MAIN_ID Value="37407427745"/> 
     <MSG_ID Value=".*"/> - regexp not working 
     <SYNC Value="N"/> 
     <Version Value="002"/> 
    </SYSTEM> 
    <DATA> 
     <PACKAGE_B64> 
    PE1zZ0NsaWVudEFkZFJzIHhtbG5zPSJ1cm46c2NoZW1hcy1wc2l0LXJ1OmdwIj48 
UnFVSUQ+Mzc0MDc0Mjc3NDU8L1JxVUlEPjxScVJlc3VsdD48U3RhdHVzPk9rPC9T 
dGF0dXM+PENvbW1lbnQ+TmV3PC9Db21tZW50PgoJCQk8L1JxUmVzdWx0PjxSZXN1 
bHQ+PENsaWVudElkPjc3MzY0NTgyPC9DbGllbnRJZD48SW50ZXJuYWxfQ2xpZW50 
SWQ+MjY3PC9JbnRlcm5hbF9DbGllbnRJZD4KCQkJPC9SZXN1bHQ+CgkJPC9Nc2dD 
bGllbnRBZGRScz4= 

</PACKAGE_B64> 
    </DATA> 
</CIT_REQUEST> 

回覆:

<?xml version="1.0" encoding="ISO-8859-5" standalone="yes"?> 
<CIT_REQUEST> 
    <SYSTEM> 
     <CIT_Version Value="1.0"/> 
     <ERR Value=""/> 
     <FORMAT Value="XML"/> 
     <INTERFACE_RET Value=""/> 
     <MAIN_ID Value="37407427745"/> 
     <MSG_ID Value="F3C826680F5E45C3AA97DEE4DA51F54B"/> - MSG_ID Value changes for each request 
     <SYNC Value="N"/> 
     <Version Value="002"/> 
    </SYSTEM> 
    <DATA> 
     <PACKAGE_B64> 
    PE1zZ0NsaWVudEFkZFJzIHhtbG5zPSJ1cm46c2NoZW1hcy1wc2l0LXJ1OmdwIj48 
UnFVSUQ+Mzc0MDc0Mjc3NDU8L1JxVUlEPjxScVJlc3VsdD48U3RhdHVzPk9rPC9T 
dGF0dXM+PENvbW1lbnQ+TmV3PC9Db21tZW50PgoJCQk8L1JxUmVzdWx0PjxSZXN1 
bHQ+PENsaWVudElkPjc3MzY0NTgyPC9DbGllbnRJZD48SW50ZXJuYWxfQ2xpZW50 
SWQ+MjY3PC9JbnRlcm5hbF9DbGllbnRJZD4KCQkJPC9SZXN1bHQ+CgkJPC9Nc2dD 
bGllbnRBZGRScz4= 

</PACKAGE_B64> 
    </DATA> 
</CIT_REQUEST> 

斷言失敗消息:

Assertion error: false 
Assertion failure: true 
Assertion failure message: Test failed: text expected to contain /<?xml version="1.0" encoding="ISO-8859-5" standalone="yes"?> 
<CIT_REQUEST> 
    <SYSTEM> 
     <CIT_Version Value="1.0"/> 
     <ERR Value=""/> 
     <FORMAT Value="XML"/> 
     <INTERFACE_RET Value=""/> 
     <MAIN_ID Value="37407427745"/> 
     <MSG_ID Value=".*"/> 
     <SYNC Value="N"/> 
     <Version Value="002"/> 
    </SYSTEM> 
    <DATA> 
     <PACKAGE_B64> 
    PE1zZ0NsaWVudEFkZFJzIHhtbG5zPSJ1cm46c2NoZW1hcy1wc2l0LXJ1OmdwIj48 
UnFVSUQ+Mzc0MDc0Mjc3NDU8L1JxVUlEPjxScVJlc3VsdD48U3RhdHVzPk9rPC9T 
dGF0dXM+PENvbW1lbnQ+TmV3PC9Db21tZW50PgoJCQk8L1JxUmVzdWx0PjxSZXN1 
bHQ+PENsaWVudElkPjc3MzY0NTgyPC9DbGllbnRJZD48SW50ZXJuYWxfQ2xpZW50 
SWQ+MjY3PC9JbnRlcm5hbF9DbGllbnRJZD4KCQkJPC9SZXN1bHQ+CgkJPC9Nc2dD 
bGllbnRBZGRScz4= 

</PACKAGE_B64> 
    </DATA> 
</CIT_REQUEST>/ 

請正則表達式或其他出路幫助。

回答

0

按照How to Use JMeter Assertions in Three Easy Steps製品的「響應斷言」一章

該模式可以是是:

  1. 一個「串」爲「等於」或「串」子句
  2. 「包含」或「匹配」子句的「Perl5風格」正則表達式

所以,你有2種選擇:

  1. 如果你仍然想使用 「包含」 你的模式匹配規則need to escape:字符類之外

    • .^$*+?()[{\|字符的字符類
    • ^-]\字符
  2. 更簡單的選項將陳詹姆士你的模式匹配規則爲「等於」或「串」

+0

它的工作原理在。*沒有任何逃脫。我不明白這種情況下我需要什麼類型的正則表達式。 – DanteSenpai

0

對於XML斷言最好的方法是使用由JMeter的提供XML斷言這將檢查XML的整個語法