Каратэ — редактирование xml во время выполнения тестового примера

#karate

#каратэ

Вопрос:

У меня есть следующий xml:

 <?xml version="1.0" encoding="utf-8"?>
<request>
    <head>
        <session-id>none</session-id>
    </head>
    <service name="test">
        <function name="testFunc">
            <guids>
                <guid>#guid#</guid>
                <guid>#guid#</guid>
            </guids>
        </function>
    </service>
</request>
  

У меня есть 2 тестовых примера:

  1. я хочу протестировать с одним идентификатором guid.
  2. Я хочу протестировать с двумя идентификаторами guid.

Я создал 2 отдельных xml для обоих тестовых примеров, и это сработало. Вопрос в том, как я могу использовать обычный xml? Также я пытался использовать remove, но как мне удалить отдельный идентификатор guid из xml?

Ответ №1:

В Karate есть нечто, называемое «встроенные выражения». Прочитайте документы: https://github.com/intuit/karate#embedded-expressions

Пример:

 * def guids = <guids><guid>one</guid><guid>two</guid></guids>
* def body = <root>#(guids)</root>
  

Также обратитесь к этому файлу, в нем есть много других примеров и идей для тестов, основанных на данных XML: xml.feature .