Shiva software

  • Возможности
  • Документация
  • Возможности
  • Быстрый старт
  • Документация
    • Проекты
    • Окружение проекта
    • Тестовые наборы
    • Тестовые сценарии
    • Тестовые шаги
      • HTTP
        • Отправка HTTP-запроса
        • Валидация HTTP-ответа
        • Валидация JSON-объекта
      • База данных
        • Получение сущности базы данных по фильтру
        • Изменение сущности базы данных
        • Валидация сущности базы данных
    • Фикстуры
      • Генераторы
        • Генератор случайных имен
        • Генератор случайных адресов
        • Генератор случайных строк по маске
        • Генератор случайных чисел по маске
        • Генератор UUID v4
      • Кодирование строк
        • Base64 кодирование
        • Base64 декодирование
        • Base64 urlsafe кодирование
        • Base64 urlsafe декодирование
      • Хеширование строк
        • MD5
        • SHA256
      • Дата и время
        • Текущее время
        • Изменение года
        • Изменение месяца
        • Изменение дня
        • Изменение часа
        • Изменение минуты
        • Изменение секунды
        • Добавление дней
        • Добавление часов
        • Добавление минут
        • Добавление секунд
      • Создание подключения к базе данных
    • Тестовые запуски
    • Выражения в тестовых сценариях
    • Интеграция

Валидация JSON-объекта

Категория Системная
Применение Сценарий

Валидирует свойства JSON-объекта, полученного в любом предыдущем шаге сценария

Для доступа к свойствам JSON-объекта испозуется JSONPath

Синтаксис JSONPath

JSONPath — это язык получения значений из JSON-объекта

Есть JSON-объект, из которого необходимо получить данные:

Copied!
{ "store": { "name": "Online store", "books": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ] } }

Для доступа к значениям объекта воспользуемся JSONPath

Синтаксис Комментарий
. Доступ к дочернему элементу

Использование:
$.store.name // получаем имя магазина

Результат:
["Online store"]
.. Рекурсивный доступ к дочернему элементу

Использование:
$..title // получаем все названия книг

Результат:
[
 
 "Sayings of the Century",
 
 "Sword of Honour",
 
 "Moby Dick",
 
 "The Lord of the Rings"
]
@ Доступ к текущему элементу

Использование:
$..books[(@.length-1)] // получаем кол-во книг через @.length, затем берем последнюю

Результат:
[
  {

     "category": "fiction",
   
  "author": "J. R. R. Tolkien",
    "title": "The Lord of the Rings",
    "isbn": "0-395-19395-8",
    "price": 22.99
  }
]
* Доступ к любому элементу массива

Использование:
$..books[*].author // получаем всех авторов

Результат:
[
  "Nigel Rees",
  "Evelyn Waugh",
  "Herman Melville",
  "J. R. R. Tolkien"
]
[] Доступ к одному элементу массива по индексу

Использование:
$..books[0].author // получаем первого автора

Результат:
[
  "Nigel Rees"
]
[,] Доступ к нескольким элементам массива по индексу

Использование:
$..books[0,1].author // получаем первого и второго автора

Результат:
[
  "Nigel Rees",
  "Evelyn Waugh"
]
[start_index:end_index:step] Доступ к группе элементов массива

Использование:
$..books[1:3].author // сначала получаем вторую и третью книгу, затем получаем их авторов автора

Результат:
[
  "Evelyn Waugh",
  "Herman Melville"
]
?() Доступ к элементам массива по фильтру

Использование:
$..books[?(@.price<10)] // получаем книги с ценой меньше 10

Результат:
[
  {
    "category": "reference",
    "author": "Nigel Rees",
    "title": "Sayings of the Century",
    "price": 8.95
  },
  {
    "category": "fiction",
    "author": "Herman Melville",
    "title": "Moby Dick",
    "isbn": "0-553-21311-3",
    "price": 8.99
  }
]

Параметры

Параметр Комментарий
Валидируемый JSON-объект
Обязательный
JSON-объект, полученный в любом предыдущем шаге сценария

Пример:
— api_session
Свойства JSON-объекта
Обязательный
Список
Список валидируемых свойств JSON-объекта

Параметры списка:
— Свойство объекта:
  * Обязательный
  * JSONPath-выражение
— Операция:
  * Обязательный
— Значение:
  * Обязательный
  * Строка
  * Число
  * Число с плавающей точкой
  * Булевое значение
  * Переменная окружения
  * Фикстур
  * Переменная

Пример:
— uuid == 83bd75cc-5d1f-4e89-933d-1709f95f399e
— items[0].uuid == {{ random_uuid }}

Shiva software

Платформа для тестирования микросервисов и веб-приложений

Документация

Возможности

Быстрый старт

Интеграция

© 2025・

Shiva software

・Все права защищены