ПРОВЕРКА СХЕМЫ JSON В POSTMAN

ПРОВЕРКА СХЕМЫ JSON В POSTMAN

В предыдущих статьях Postman Tutorial мы рассмотрели «Как отправить токен JWT в качестве заголовка».

В этой статье «Проверка схемы JSON в Postman» я продемонстрирую, как вы можете реализовать эту концепцию и получить четкое представление об этом.

Что такое JSON?

JSON означает нотацию объектов JavaScript. JSON — это облегченный формат для хранения и передачи данных. JSON часто используется, когда данные отправляются с сервера на веб-страницу. JSON — это не язык программирования. Это общий и открытый стандартный формат для хранения и обмена данными. JSON не зависит от языка.

Правила – JSON:

1. Данные находятся в парах ключ/значение: Пара ключ/значение состоит из ключа в двойных кавычках, за которым следует двоеточие, за которым следует значение. В JSON ключи должны быть строками в двойных кавычках, но значения могут быть любого типа, например строка, число, объект (объект JSON), массив, логическое значение, null.

Пример:

1

“name”: “Джон”

2. Данные разделены запятыми: данные разделены запятой в JSON

Пример:

12

});”имя”: “Джон”,<br />”возраст”: 10,<br />”страна”: “США”

3. Объект начинается и заканчивается фигурными скобками {} : объекты JSON заключены в фигурные скобки {}

Пример:

12345

{“name” : «Джон», «возраст»: 10, «страна»: «США»

4. Массивы начинаются и заканчиваются квадратными скобками [] : квадратные скобки содержат массивы.

Пример:

1234567891011121314

{“Студенты”: [{“имя”: “Джон”,”возраст”: 10,”страна”: “США” },{“name”: “Mark”,”age”: 12,”country”: “USA”}]}

Что такое путь JSON?

Это конкретное значение или данные в формате JSON. Мы можем создать путь JSON вручную или с помощью таких инструментов, как JSON PathFinder — http://jsonpathfinder.com/

Нам просто нужно скопировать JSON и вставить его в инструмент.

Пример:

1234567891011121314

{“Студенты”: [{“имя”: “Джон”,”возраст”: 10,”страна”: “США”},{“имя”: “Марка”,”возраст “: 12,”country”: “USA”}]}

Пусть полный массив студентов хранится в переменной, например, x.

  • JSON-путь возраста Джона: x. Студенты[0].age
  • Путь имени Марка в формате JSON: x.Students[1].name

Что такое схема JSON?

Схема JSON контракт для документа JSON, который определяет ожидаемые типы данных и формат каждого поля в ответе.

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

ПРОВЕРКА СХЕМЫ JSON В POSTMAN

Почему требуется проверка схемы JSON?

Проверка схемы JSON требуется, потому что:

  1. Мы отслеживаем ответы API и гарантируем, что формат, который мы получаем, совпадает с ожидаемым.
  2. Мы получаем оповещение всякий раз, когда в ответе JSON есть какое-либо критическое изменение.
  3. Мы используем схему JSON для построения модели ответа API. и упрощает проверку того, что API возвращает правильные данные.

Объект JSON:

123456

[{“name”: “John”,”age”: 10}]

Пример схемы JSON:

123456789101112

{“type”: “массив”,”items”:{“type”: “object”,”Properties”:{“name”: {“type”: “string “},”age”: {“type”: “integer”}}}}

Проверка схемы JSON

Схема сама по себе является объектом, который имеет разные свойства. Одним из таких свойств является type. Если мы объявляем тип как объект, это означает, что если мы отправим что-то, что не является объектом, это не сработает. Мы будем использовать другой валидатор схемы JSON (Ajv). Недавно он был встроен в почтальон.

  • Перейдите на https://jsonschema.net/home
  • Добавьте текст JSON слева
  • Нажмите «Отправить».
  • Будет создан схема справа
  • Скопируйте схему и добавьте ее на вкладку “Тесты” в Postman, чтобы выполнить проверку схемы
  • Добавьте этот код для проверки схемы:

123

pm.test(“Проверить схему”, () =>{            pm.response.to.have.jsonSchema(schema);});
  • Мы создали схему JSON из нашего ответа, и теперь мы проверяем ответ JSON с помощью нашей схемы JSON и, если что-то связанные со свойствами этой схемы, и ответ JSON не совпадают, тест не будет выполнен.

ПРОВЕРКА СХЕМЫ JSON В POSTMAN

Мы можем изменить настройки в соответствии с нашими потребностями с помощью значка шестеренки в правом верхнем углу. Мы можем изменить некоторые вещи. Например, в Object я хочу иметь дополнительные свойства и не хочу, чтобы каждое свойство требовалось. Я даже могу выбрать, какое ключевое слово должно быть включено в схему JSON, из параметра видимости ключевого слова. “ПРОВЕРКА СХЕМЫ JSON В POSTMAN” />

Давайте более подробно рассмотрим проверку схемы JSON:

1. Для пустого объекта {} в ответ проверка схемы прошла успешно.

На вкладке “Тесты”

1234567

const schema = {“type”: “object”}; pm.test(“Проверить схему”, () => {pm.response.to.have.jsonSchema(schema);});

2. Чтобы убедиться, что схема действительно действительна, давайте заменим тело на Foo. Мы получим ошибку JSON. Таким образом, схема не будет работать, если тело не в формате JSON.

3. Вместо пустого тела Допустим, у нас есть свойство со строкой в ​​теле ответа:

123

{“code” : “FX002”

Схема будет действительна, поскольку это объект.

Если нам нужно проверить это свойство, нам нужно будет добавить еще одно свойство в схему, и это свойство называется свойствами, и в объекте свойств мы можем определить несколько свойств.

12345678910

const schema = {“type”: ” объект”,”свойства”: {        “код”: { “тип” : “строка” }    }}; pm.test(“Проверить схему”, () => {pm.response.to.have.jsonSchema(schema);});

Когда мы отправим это, схема будет действительной.

4. Если у нас есть целочисленное значение,

123

{“code”: 2}

< p>Проверка схемы завершится ошибкой. В сообщении об ошибке будет указано, что код должен быть строкой.

5. Давайте проверим, что произойдет, если его переименовать в statusCode.

< tr class=crayon-row>

123

    {“statusCode”: 2    }

Когда мы запускаем это, схема по-прежнему будет действительным, даже если мы указали свойство с именем code, которое должно быть строкой. По этой причине нам нужно детально протестировать нашу схему, чтобы убедиться, что все работает.

В этом случае мы можем указать, что это свойство действительно требуется. -size:4;-webkit-размер вкладки:4;размер вкладки:4;размер шрифта:12px!важно;высота строки:15px!важно>const schema = { "тип": "объект", "свойства": { "код": { "тип" : "строка" } }, "обязательно": ["код"] }; pm.test("Проверить схему", () => { pm.response.to.have.jsonSchema(schema); });

1234567891011

const schema = {“type”: “object”,”properties”: {        “code “: { “type” : “string” }    },”required”: [“code”]}; pm.test(“Проверить схему”, () => {pm.response.to.have.jsonSchema(schema);});

Когда мы снова отправим запрос, мы увидим, что проверка теперь верна. Он проверяет код свойства, и в ответе нет кода свойства. Таким образом, тест Validate Schema завершился неудачно. В сообщении об ошибке говорится, что «данные должны иметь обязательное свойство «код»».

6. Чтобы ограничить количество свойств, которые мы получаем из ответа, мы указываем additionalProperties в нашей схеме.

Пример:

1234

{“code”: “FX002″,”error”: {}}

Если мы хотим избежать свойств, о которых мы не знаем, и мы хотим быть проинформированы, если что-то действительно изменится в ответе, тогда мы можем добавить дополнительную конфигурацию в схему. Это называется дополнительные свойства.. Если мы укажем значение false, дополнительные свойства не будут разрешены.

123456789101112

const schema = {“type”: “object”,”properties”: {        “code “: { “type” : “string” }    },”required”: [“code”],”additionalProperties”: false}; pm.test(“Проверить схему”, () => {pm.response.to.have.jsonSchema(schema);});

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

7. Предположим, у нас есть вложенный объект в ответе с именем ошибка, а сама ошибка имеет свойство, называемое сообщением.

Пример:

123456

{“code “: “FX002″,”error”: {“message”: “Что-то пошло не так”}}

Схема будет:

12345678910111213141516171819

const schema = {“type”: “object”,”properties”: {        “code” : { “type” : “string” },         “error”: {  “type”: “object”,”properties”: {    “message”: { “type”: “string”}},”required”: [” сообщение”]}    },”требуется”: [“код”, “ошибка”],”дополнительные свойства”: false}; pm.test(“Проверить схему”, () => {pm.response.to.have.jsonSchema(schema);});

Тест проверки схемы будет пройден.

8. Если в нашем ответе есть массивы,

Пример:

1234567

{“code”: “FX002″,”error”: {“message”: “Что-то пошло не так”},”tags” : [“fatal, “error”]

Схема будет:

123456789101112131415161718192021222324252627

const schema = {“type”: “object”,”properties”: {        “code “: { “тип” : “строка” },         “ошибка”: {  “тип”: “объект”,”свойства”: {    “сообщение”: { “тип”: “строка”}},”обязательно”: [ “message”]},”tags”: {    “type”: “массив”,    “minItems”: 1,    “maxItems”: 3,    “items”: {“type”: “string”}}    }, “обязательно” : [“код”, “ошибка”],”дополнительные свойства”: false}; pm.test(“Проверить схему”, () => {pm.response.to.have.jsonSchema(schema);});

Тест проверки схемы будет пройден. Если мы хотим иметь хотя бы 1 элемент, мы укажем свойство minItems и аналогичным образом мы можем указать maxItems. Чтобы определить типы элементов в массиве, мы используем свойство items.

Следующие шаги:

Изучите «Тестирование на основе данных в Postman». ” в следующем уроке.
TAG: qa

От QA genius

Adblock
detector