Jmeter Regular Expression Extractor находит ItemID в xml

Я новичок в jmeter; Надеюсь, что смогу достаточно хорошо описать вам свою проблему.

Я пытаюсь использовать регулярное выражение для извлечения атрибута ItemID из элемента xml. Который я затем использую в другом запросе. Это XML-ответ, из которого я пытаюсь извлечь ItemID:

<?xml version="1.0" encoding="UTF-8"?>
<Promise >
 <SuggestedOption>
      <Option TotalShipments="1">
           <PromiseLines TotalNumberOfRecords="1">
                <PromiseLine ItemID="Col_001" >
                     <Assignments>
                          <Assignment InteractionNo="1" >
                          </Assignment>
                     </Assignments>
                </PromiseLine>
           </PromiseLines>
     </Option>
 </SuggestedOption>
</Promise>

У меня есть средство извлечения регулярных выражений, настроенное следующим образом:

Reference Name: item
Regular Expression: .?ItemID=(.+?)*
Template: $1$
Match No.: 1

Во втором запросе я установил ItemID следующим образом ... ItemID = $ {item} ...

Я знаю, что когда я использую значение по умолчанию, установленное на «Col_001», он работает нормально. Так что, очевидно, проблема с моим выражением.


person Explicitsoul    schedule 05.11.2012    source источник


Ответы (3)


Попробуйте это выражение:

\bItemID\s*=\s*"([^"]*)"

Объяснение

NODE                     EXPLANATION
--------------------------------------------------------------------------------
  \b                       the boundary between a word char (\w) and
                           something that is not a word char
--------------------------------------------------------------------------------
  ItemID                   'ItemID'
--------------------------------------------------------------------------------
  \s*                      whitespace (\n, \r, \t, \f, and " ") (0 or
                           more times (matching the most amount
                           possible))
--------------------------------------------------------------------------------
  =                        '='
--------------------------------------------------------------------------------
  \s*                      whitespace (\n, \r, \t, \f, and " ") (0 or
                           more times (matching the most amount
                           possible))
--------------------------------------------------------------------------------
  "                        '"'
--------------------------------------------------------------------------------
  (                        group and capture to \1:
--------------------------------------------------------------------------------
    [^"]*                    any character except: '"' (0 or more
                             times (matching the most amount
                             possible))
--------------------------------------------------------------------------------
  )                        end of \1
--------------------------------------------------------------------------------
  "                        '"'
person ohaal    schedule 05.11.2012

Другой вариант - использовать для этого экстрактор xpath:

person UBIK LOAD PACK    schedule 05.11.2012

Попробуйте следующее регулярное выражение:

ItemID="(.+)"
person Subash Bose    schedule 27.11.2014