Тег соответствия Tsung: как сопоставить определенный тег xml (ответ сервера - XML)

Я использую tsung для тестирования веб-приложения. при запросе сервер отвечает XML.

Что я пытаюсь сделать: используйте тег соответствия tsung в запросе для регистрации ошибки.

Если возникает ошибка, ответ xml выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8" ?>
 <toto:root xmlns:toto="toto_url" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <toto:header>
  <toto:trace-id>Testing</toto:trace-id>
  <toto:timestamp>1420441279107</toto:timestamp>
  <toto:command>MyServiceName</toto:command>
  <toto:version>2.4</toto:version>
  <toto:operation-id/>
  <toto:calling-user>Tester</toto:calling-user>
  <toto:calling-application>Tester</toto:calling-application>
  <toto:calling-channel/>
  <toto:locale-code>en</toto:locale-code>
  <toto:country-code>EN</toto:country-code>
  <toto:error>
   <toto:applicative>
     <toto:code>002</toto:code>
     <toto:message>No record found</toto:message>
   </toto:applicative>
  </toto:error>
 </toto:header>
 <app:data xmlns:app="url_toto_service">
  <app:totoNullPayload>
    <app:result>OK</app:result>
  </app:totoNullPayload>
</app:data>

I need to log in match.log specific name for the error code value 002 and other error code value.

пока у меня это работает. Он регистрируется в журнале совпадений, когда я получаю значение 002 внутри ответа. проблема в том, что оно соответствует значению 002, даже если оно не находится внутри тега. Поэтому иногда он соответствует обычному ответу xml, который содержит это значение. 002 008

Мой вопрос: как мне сопоставить значение ошибки и тот факт, что оно находится внутри тега?

часть запроса tsung:

   <request subst="true">
            <match name="Norecord" do="log" when="match" skip_headers="http" subst="true">002</match>
    <match name="Request Error" do="log" when="match" skip_headers="http" subst="true">008</match>
   <http url="/myApp/XmlHttpInbound" method="POST" version="1.1"
     content_type="application/xml"
     contents_from_file="/tmp/query.xml">
   </http>

person Xarouma    schedule 05.01.2015    source источник


Ответы (1)


Обновлено:

Планы тестирования Tsung указаны в виде файла xml, поэтому вам следует избегать символов xml, которые вы ожидаете в ответ. Чтобы сопоставить коды ошибок 002 и 008 внутри тегов, вы можете использовать:

<request subst="true">
    <match do="log" when="match" skip_headers="http" subst="true">&lt;toto:code&gt;002&lt;/toto:code&gt;</match>
    <match do="log" when="match" skip_headers="http" subst="true">&lt;toto:code&gt;008&lt;/toto:code&gt;</match>
    <http url="/myApp/XmlHttpInbound" method="POST" version="1.1"
        content_type="application/xml"
        contents_from_file="/tmp/query.xml">
    </http>
</request>
person Sabik    schedule 13.05.2015
comment
Пожалуйста, попробуйте уточнить свои ответы, а не просто опубликовать фрагмент кода. Объясните, почему этот код работает и почему вы выбрали это решение. - person Avi; 14.05.2015