Каратэ, похоже, не сохраняет формат xml в нескольких сценариях - PullRequest
1 голос
/ 08 марта 2020

Я попробовал следующее:

def isJson = false
xml payload_xml = read(some.xml)
json payload_json = read(some.json)
def payload = isJson == true ? payload_json : payload_xml

Given url someURL
Given request payload
When method post

оказалось, что полезная нагрузка теперь - payload_ xml, но в формате json.

Также, когда я использую одну xml полезную нагрузку для последовательного вызова той же абстрактной функции, которая имеет

Given url someURL
Given request payload
When method post

, вторая полезная нагрузка находится в формате json.

Есть проблемы или я что-то не так делаю?

1 Ответ

0 голосов
/ 08 марта 2020

Эта строка будет всегда возвращать JSON, потому что каратэ по умолчанию оценивает JS следующим образом:

* def payload = isJson == true ? payload_json : payload_xml

Так что придумайте другой подход. Я чувствую, что вы слишком усложняете свой тест, и я рекомендую разбить его на 2 сценария ios. Пожалуйста, прочитайте этот ответ: { ссылка }

Нет способа условно привести JSON к XML. Вы можете обойти, вызвав вторую функцию. Если вы все еще видите проблемы, выполните этот процесс: https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

РЕДАКТИРОВАТЬ: возможно, все, что вам нужно сделать, это:

* def payload == isJson == true ? read('some.json') : read('some.xml')
...