Есть ли способы проверить структуру ответа JSON в тестах Postman? - PullRequest
1 голос
/ 13 апреля 2019

Я написал несколько тестов в Postman на основе примеров кодов фрагментов, приведенных в графическом интерфейсе Postman на рабочем столе Windows.

Главным образом, я хочу проверить наличие параметров в ответе (точно в тех случаях, когда мне нужно проверить конкретные значения параметров), и я хочу знать, есть ли лучший способ сделать это, чем способ Я занимаюсь сейчас.

Следующий тест показывает один такой пример, и это лишь малая его часть. Фактическая схема ответа намного больше, поэтому я планировал написать 50-60 строк таких проверок для каждой конечной точки API.

pm.test("Det details of a POI", function () {
    pm.expect(jsonData.code).to.eql(0);
    pm.expect(jsonData.data[0].provider).to.eql("google");
    pm.expect(jsonData.data[0]).to.have.property("id");
    pm.expect(jsonData.data[0].location).to.have.property("position");
    pm.expect(jsonData.data[0].location.address).to.have.property("text");
    pm.expect(jsonData.data[0].location.address).to.have.property("house");
    pm.expect(jsonData.data[0].location.address).to.have.property("street");
    pm.expect(jsonData.data[0].location.address).to.have.property("postalCode");
    pm.expect(jsonData.data[0].location.address).to.have.property("city");
    pm.expect(jsonData.data[0].location.address).to.have.property("county");
    pm.expect(jsonData.data[0].location.address).to.have.property("state");
    pm.expect(jsonData.data[0].location.address.country).to.eql("United Kingdom");
    pm.expect(jsonData.data[0].location.address).to.have.property("countryCode");
    pm.expect(jsonData.data[0].contacts).to.have.property("phone");
    pm.expect(jsonData.data[0].contacts.website.value).to.include("www.google.com");
    pm.expect(jsonData.data[0].contacts.website).to.have.property("label");
    pm.expect(jsonData.data[0].categories[0]).to.have.property("id");
    pm.expect(jsonData.data[0].categories[0]).to.have.property("title");
    pm.expect(jsonData.data[0].categories[0]).to.have.property("type");
    pm.expect(jsonData.data[0].categories[0]).to.have.property("system");
)};

Любые советы и улучшения будут с благодарностью.

1 Ответ

0 голосов
/ 15 апреля 2019

По сути, вы спрашиваете так же, как эти два сообщения о переполнении стека:

Ответ. В Postman встроена система проверки формата json, в которой используется проект Tiny Validator для проверки схемы в тестовых сценариях после запроса. Изучите документацию Почтальона ( 1 , 2 ), чтобы найти примеры ее использования.

...