Недавно я начал работать над проектами весенней загрузки. Я ищу способ подтвердить весь ответ моего API. Это сделано для того, чтобы сократить время тестирования API.

Найдено несколько решений, упомянутых ниже, но ничего не помогло мне решить проблему.

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});


pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

Когда я помещаю в качестве аргумента все тело ответа, я получаю следующие ошибки.

  1. Незакрытая строка

2. введите описание изображения здесь

3. введите описание изображения здесь

4
Tushar Banne 1 Янв 2018 в 16:21

2 ответа

Лучший ответ

Если вы хотите использовать тот же тип кавычек, который вы определили внутри строки, вы должны их избежать:

  • 'string with "quotes"'
  • "string with 'quotes'"
  • 'string with \'quotes\''
  • "string with \"quotes\""

Вероятно, вы захотите заключить свой json в одинарные кавычки, поскольку они не разрешены самим json.

1
pishpish 1 Янв 2018 в 14:02

Вы можете попробовать установить ответ как переменную, а затем подтвердить это?

var jsonData = pm.response.json()

pm.environment.set('responseData', JSON.stringify(jsonData))

Отсюда вы можете получить данные JSON.parse(pm.enviroment.get('responseData')), а затем использовать их в любом тесте для проверки всех значений.

pm.test("Body is correct", () => {
    var jsonData = pm.response.json()
    pm.expect(jsonData).to.deep.equal(JSON.parse(pm.environment.get('responseData')))
})

Я считаю, что вы все равно пытаетесь утверждать против JSON, но делаете это как обычную текстовую строку.

Или вы можете утверждать значения отдельно, например:

pm.test("Body is correct", () => {
    var jsonData = pm.response.json()
    pm.expect(jsonData[0].employeeName).to.equal("tushar")
    pm.expect(jsonData[0].phNum).to.equal(10101010)
})

В зависимости от структуры JSON вам может не потребоваться доступ к массиву данных, и [0] можно удалить.

0
Danny Dainton 2 Янв 2018 в 09:32