2017-03-28 118 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的整个语法