К содержанию
Checkcraft
Практика в Checkcraft

Автотесты JSON для типов, null и вложенных полей

Поможем с первой проверкой →

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

Подготовлено командой Checkcraft · Обновлено

Что получится

В учебном контракте amount должен быть целым числом не меньше нуля. Строка oops не проходит, а дополнительное поле debug обнаруживается белым списком.

amount пришёл строкой вместо целого числа, debug отсутствует среди разрешённых полей. Настоящий подробный отчёт HTTP-прогона с правилами рядом со значениями. По нажатию откроется полный экран прогона.
amount пришёл строкой вместо целого числа, debug отсутствует среди разрешённых полей. Настоящий подробный отчёт HTTP-прогона с правилами рядом со значениями. По нажатию откроется полный экран прогона.

Выбрать источник и путь

«JSON поле ответа» работает с ответом HTTP-запроса. «Поле JSON/источника логов» удобно для текущего разобранного JSON и вставленных данных. Для вложенного объекта путь может выглядеть как payment.orderId. Для всех элементов массива нужен обход, а не путь к нулевому элементу.

Различать число и строку

Тип is_integer подходит целым числам, is_float используется для соответствующей числовой проверки, is_string для строки, is_boolean для JSON true и false, is_uuid для UUID. Выбирайте тип из требований своего поля. Значения 100 и "100" не следует молча считать одним контрактом.

{"amount":100,"active":true,"payment":{"orderId":"ORDER-42"}}

Различать null и отсутствующее поле

Отсутствующий ключ, null, пустая строка и пустой массив имеют разный смысл в контракте. Явно опишите, какой вариант разрешён. Не превращайте null в строку "null". Проверка notEmpty отвечает на вопрос о заполненности и не является универсальной проверкой различия всех этих случаев. При генерации из одного примера AI не узнает, какие варианты допустимы, если этого нет в требованиях.

Сопоставить связанные поля

В приложенном примере переменных шаг «Извлечь в переменную» берёт order.id в orderId. Следующий шаг сверяет payment.orderId с %orderId%. Так проверяется связь внутри ответа без жёстко заданного номера заказа.

В заказе id равен ORDER-42, а платёж ссылается на ORDER-99. Настоящий подробный отчёт HTTP-прогона с правилами рядом со значениями. По нажатию откроется полный экран прогона.
В заказе id равен ORDER-42, а платёж ссылается на ORDER-99. Настоящий подробный отчёт HTTP-прогона с правилами рядом со значениями. По нажатию откроется полный экран прогона.

Если API возвращает XML

Для XML есть отдельные шаги тегов, обхода узлов и XML Whitelist. JSONPath нельзя механически перенести в XML-проверку. Отдельное руководство по XML содержит собственные данные и тест-кейс.

Повторить на готовых данных

Быстрый опыт ниже выполняется в редакторе тест-кейса. На снимках показан подробный отчёт из HTTP-прогона или Log-прогона. Для HTTP-прогона верните учебный JSON или XML из локального мока, выполните импортированный тест-кейс и откройте «Анализ результатов», «Детально», «Со структурами». Для Log-прогона загрузите учебные данные в источник логов, включите «Без запроса», выполните проверку и откройте «Детально», «Подробно».

Здесь лежит учебный тест-кейс для Checkcraft, правильный JSON и вариант с намеренной ошибкой. Файлы доступны без регистрации. Это данные для упражнения, а не доступ к чужому API.

Если приложение уже открыто

Создайте коллекцию, конструктор проверки и тест-кейс через контекстное меню дерева. В редакторе нажмите «Импорт» и выберите файл тест-кейса. Откройте добавленный тест. Скопируйте содержимое правильного JSON и нажмите «Вставить данные для анализа». Затем «Запустить тест-кейс» и вкладку «Результат».

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

Сверить с полученными при подготовке страницы отчётами можно по файлам успешного прогона и прогона с ошибкой. Примеры проверены 14 сентября 2026 года на текущем исходном коде приложения.

От примера к своей проверке

Посмотреть, как это работает на ваших данных

Можно начать с учебного файла на этой странице, увидеть найденную ошибку и затем заменить данные своим обезличенным примером. Для Windows и Linux доступна Free (beta) без ограничения срока.

Получить Free (beta)Как получить и запустить приложение

Для получения сборки нужен аккаунт и подтверждение email. Состав бесплатной версии опубликован на странице тарифов.

Можно спросить человека

Поможем с первой проверкой

Расскажите, что хотите проверить или на каком шаге остановились. Поможем запустить Checkcraft, подобрать пример и разобраться с первым прогоном. Можно написать до скачивания.

Telegram-группа открытая: не публикуйте пароли, токены и конфиденциальные рабочие данные. Для первого вопроса достаточно описания задачи.

Можно написать напрямую support@checkcraft.ru

Без регистрации. Ответим по email. Это обращение в поддержку, а не подписка на рассылку.