Каратэ. Сравнение двух ответов Webmethod, ожидающих ответа XML, но 1 равно xml, а другое - Json - PullRequest
1 голос
/ 24 марта 2020

Я использую каратэ для проверки xml ответов от двух веб-методов. У нас есть старый веб-метод, который напрямую обращается к источнику данных. Мы добавляем слой над этим источником данных с Webmethod и базой данных, чтобы вернуть те же данные. Ожидается, что старый веб-метод и новый веб-метод будут возвращать те же данные. Я застрял в том, что ответы отображаются в разных форматах, один - JSON, а другой - XML.

My feature file setup.

    Feature: Campare

  Background:
    * configure ssl = true
    * def ddaAccounts = read(<list of test accounts>)
    * configure printEnabled = false

  Scenario Outline: Compare responses
    Given url '<Old webmethod>'
    Given request read('<request body>')
    When method post
    Then status 200
    * xml hogan = response
    * xml hogan = $response /Envelope/Body/AcctTrnInqRs
    Given url '<new webmethod>'
    Given request read('<request body>')
    When method post
    Then status 200
    * xml oracle = response
    * xml oracle = $response /Envelope/Body/AcctTrnInqRs
    * match oracle == hogan

    Examples:
      | ddaAccounts |

Одна вещь, которую мы заметили, это один ответ, который возвращается, поскольку JSON имеет несколько полей учетной записи, где версия XML имеет одно.

Может ли это быть причиной разница в форматировании? Можно ли исправить это поведение?

Буду признателен за любые мысли / помощь.

Спасибо, Джо

1 Ответ

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

ответы отображаются в разных форматах

В зависимости от того, как вы print, вы можете увидеть JSON, а в журналах ошибок может отображаться JSON, даже если это XML. Пожалуйста, прочитайте: https://github.com/intuit/karate#print

Для сравнения 2 полезных нагрузок, где данные могут иметь различную "форму", см. { ссылка }

Также см. этот ответ для обработки XML повторяющихся элементов - если вы пытаетесь преобразовать в JSON: { ссылка }

В противном случае в вашем вопросе недостаточно данных.

...