Перейти к содержимому

Фотография

JMeter Response Assertion ошибка при проверке pattern-а

jmeter regexp Response Assertion

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 DanteSenpai

DanteSenpai

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Станислав

Отправлено 28 марта 2017 - 12:59

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=".*"/> - регулярка не работает
<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 генерируется новый при каждом новом запросе
<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>/

 

Просьба помочь с регулярным выражением, или подсказать другой способ проверки ответа.

Сообщение засылаю одно и то же, в ответе меняется только MSG_ID, собственно его и хотел заткнуть регуляркой.

При всем этом, данный способ работает в других "Response Assertion"-ах(имеют немного другое содержание) в данном тесте: 

...

<ClientDt>.*</ClientDt>

...

 

или

 

...

<RqUID DateTime=".*">37407427745</RqUID>

...


  • 0

#2 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 28 марта 2017 - 14:01

<\?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="\d{11}"\/>
<MSG_ID Value="[A-Z0-9]{32}"\/>
<SYNC Value="N"\/>
<Version Value="\d{1,7}"\/>
<\/SYSTEM>
<DATA>
<PACKAGE_B64>
[A-Za-z0-9+=\n]{1,}
<\/PACKAGE_B64>
<\/DATA>
<\/CIT_REQUEST>

  • 0

#3 DanteSenpai

DanteSenpai

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Станислав

Отправлено 29 марта 2017 - 04:23

Регулярка требуется только в строке с MSG_ID, все остальные строки требуется контролировать по асершену. Отправляю одно и то же сообщение, получаю одинаковые ответы. Меняется только ID сообщения, который задается динамически - его мне контролировать не надо.

Почему то все варианты, и из предложенных выше, и те что пробовал сам - не работают.

 

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>
         ....
        <MAIN_ID Value="37407427745"/>
        <MSG_ID Value="[A-Z0-9]{32}"\/>
        <SYNC Value="N"/>
        ....
 
Решил проблему разбив паттерн на два, один до проблемной строки, другой после.Правило с Contain сменил на Substring. Теперь ищу два куска текста в асершене и контролирую то что мне нужно.
JmMvm.png

  • 0

#4 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 29 марта 2017 - 08:10

потому что надо не substring ставить ,а contains


  • 0

#5 DanteSenpai

DanteSenpai

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Станислав

Отправлено 30 марта 2017 - 06:29

Я в курсе, где и что ставить, substring используется для поиска двух паттернов(как текст) в асершене. В случае изменений в получаемом асершене - выдаем ожидаемую ошибку.  То решение которое я сделал, работает в рамках поставленной задачи.

Теперь больше интересует, почему регулярка не работала. Продублирую настойки:

Apply to: Main sample and sub-samples 

Response Field to Test: Text Response 

Pattern Matching Rules: Contains

 

В данный момент тест работает на двух паттернах, но это как бы обходной маневр. Если есть предположения почему не работала регулярка, с удовольствием выслушаю, и проверю в тесте.


  • 0



Темы с аналогичным тегами jmeter, regexp, Response Assertion

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных