У меня есть исполняемый XML-файл, который имеет предопределенный формат и создается в рабочей области Jenkins.Я просто хочу проанализировать полезную нагрузку XML с помощью сценария оболочки.
Пример полезной нагрузки:
<test-results>
<test-method status="FAIL" name="flowVISA" duration-ms="843329" data-provider="533w43werwer" finished-at="2018-11-01T23:30:48Z">
<params>
<param index="0">
<value>
<![CDATA[ account_number:22988419 ]]>
</value>
</param>
<param index="1">
<value>
<![CDATA[ txn_id:6wdadfsad2134330L ]]>
</value>
</param>
<param index="2">
<value>
<![CDATA[ amount:1100 ]]>
</value>
</param>
<param index="3">
<value>
<![CDATA[ currency:USD ]]>
</value>
</param>
<param index="4">
<value>
<![CDATA[Id:11a09 ]]>
</value>
</param>
<param index="5">
<value>
<![CDATA[Name:Consumer [testId=AS1-TC2, description=Txn amount; wallet -Bal, BA,CC,VISA Credit; Consumer - CC;No other preference set]]]>
</value>
</param>
</params>
</test-method>
<test-method status="PASS" name="flowVISA" duration-ms="843329" data-provider="533w43werwer" finished-at="2018-11-01T23:30:48Z">
<params>
<param index="0">
<value>
<![CDATA[ account_number:22988419 ]]>
</value>
</param>
<param index="1">
<value>
<![CDATA[ txn_id:6wdadfsad2134330L ]]>
</value>
</param>
</params>
</test-method>
<test-method status="FAIL" name="flowVISA" duration-ms="843329" data-provider="533w43werwer" finished-at="2018-11-01T23:30:48Z">
<params>
<param index="0">
<value>
<![CDATA[ account_number:22988419 ]]>
</value>
</param>
<param index="1">
<value>
<![CDATA[Name:Consumer [testId=AS1-TC3, description=Txn amount; wallet -Bal, BA,CC,VISA Credit; Consumer - CC;No other preference set]]]>
</value>
</param>
</params>
</test-method>
</test-results>
Приведенная выше полезная нагрузка, я должен прочитать состояние test-method, если это «FAIL», тоМне нужно получить значение "testId" из этого конкретного метода тестирования.Приведенная выше полезная нагрузка У меня есть 3 метода тестирования, только два из которых имеют статус Сбой. Мне нужно получить оба идентификатора теста и назначить переменную, как показано ниже
Ожидаемый результат:
fetchResult = AS1-TC2,AS1-TC3
Мне просто нужно выбрать «testId» неудачных методов тестирования и присвоить его переменной с запятой, разделенной с помощью сценария оболочки.
Я пробовал строки ниже, но он не возвращает целые теги метода тестирования
failedTC=`grep "test-method.*FAIL" results.xml | sed -e 's/^.*test-instance-name="(.*)-----.*/\1/'
Выход:
<test-method status="FAIL" name="flowVISA" duration-ms="843329" data-provider="533w43werwer" finished-at="2018-11-01T23:30:48Z">
Я хочу вернуть все <test-method> ... </test-method>
для статуса = "FAIL"
Любые выводы ....