0

Apply to: Main sample and sub-samples Response Field to Test: Text Response Pattern Matching Rules: Contains

Patterns to test:

<?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>

Response:

<?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 failure message:

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>/

Please help with regexp or another way out.

3 Answers3

1

According to "Response Assertion" chapter of the How to Use JMeter Assertions in Three Easy Steps article

The Pattern can be either be:

  1. a “string” for “Equals” or “Substring” clauses
  2. a “Perl5-style” Regular Expression for “Contains” or “Matches” clauses

So you have 2 options:

  1. If you still want to use "Contains" pattern matching rule you need to escape:

    • .^$*+?()[{\| characters outside character classes
    • ^-]\ characters inside character classes
  2. The easier option will be changing your pattern matching rule to "Equals" or "Substring"

Community
  • 1
  • 1
Dmitri T
  • 159,985
  • 5
  • 83
  • 133
0

For XML assertion best way is to use XML assertion provided by jmeter this will check whole syntax of XML