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

Проверка суммы, скидки и округления в API

Checkcraft — программа для проверки API и логов без кода, есть бесплатная версия. Скачать без регистрации →

Каждая сумма в ответе похожа на правильную, но итог не сходится. Проверка фиксированного total не подходит, когда состав заказа меняется.

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

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

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

В учебном тесте сумма items[*].amount вычисляется и сравнивается с total. Для значений 100 и 200 итог 301 даёт ошибку, а 300 проходит.

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

Вычислить сумму массива

Добавьте «Вычислить переменную». Имя переменной expectedTotal, выражение приведено ниже. Затем «Поле JSON/источника логов» проверяет total оператором equals со значением %expectedTotal%.

sum("$.items[*].amount")
Настоящий редактор правила сравнения total с вычисленной переменной.
Настоящий редактор правила сравнения total с вычисленной переменной. Полный размер ↗

Проверить скидку

Сначала извлеките исходные значения в отдельные переменные. Если контракт задаёт скидку в процентах от subtotal, ожидаемый итог можно выразить через subtotal и discount. Формула ниже показывает именно такую модель. Она не подходит, если скидка относится только к части позиций или применяется после другого сбора.

round(%subtotal% * (1 - %discount% / 100), 2)

Сравнить два поля

Когда одно поле должно повторять другое, извлеките первое через «Извлечь в переменную» и сравните второе с подстановкой. Не задавайте в проверке случайное значение из одного заказа. Такой тест может проходить только на единственном примере.

Проверить округление по контракту

Заранее установите, на каком шаге округляется сумма и сколько знаков остаётся. Итог суммы округлённых строк может отличаться от округлённой суммы исходных значений. Добавьте примеры на границе округления, нулевую скидку и максимально допустимую скидку. Поддержка функции round не означает автоматического соответствия правилам вашего финансового расчёта.

Проверить не только итог

До формулы проверьте наличие и типы исходных полей. Отдельно определите поведение для пустого массива, отрицательных значений и отсутствующей суммы. Приложенный тест показывает сложение двух позиций; правила скидки нужно настроить под свой контракт и проверить самостоятельно.

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

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

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

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

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

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

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

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

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

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

Скачать FreeКак получить и запустить приложение

Скачивание без регистрации и почты, архив готов за пару минут. Состав бесплатной версии опубликован на странице тарифов.

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

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

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

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

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

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