ubl_invoiceEInvoice

Mock Jutsu HOW-TO | RU

В современной разработке систем электронного документооборота и финтех-решений критически важно иметь качественные и структурно верные тестовые данные. Функция ubl_invoice, представленная в библиотеке mock-jutsu, специально разработана для генерации реалистичных XML-инвойсов, соответствующих международному стандарту OASIS UBL 2.1. Данное решение ориентировано на разработчиков и инженеров по автоматизации тестирования, которым необходимо имитировать поток электронных счетов, в частности, для турецкого формата e-fatura (GIB), где строгое соблюдение схемы и математическая точность полей являются обязательными условиями успешной валидации.

Алгоритм, по которому работает ubl_invoice, гарантирует полную согласованность финансовых показателей. Каждый сгенерированный документ содержит от одной до пяти товарных позиций, при этом библиотека mock-jutsu автоматически вычисляет итоговые значения: сумма чистой стоимости (net) и налога (tax) всегда в сумме дают верный валовый результат (gross). Идентификаторы документов генерируются согласно паттерну INV-YYYY-NNNNN, а UUID создаются в верхнем регистре, что соответствует требованиям большинства государственных налоговых шлюзов. Сформированный XML-пакет включает в себя все ключевые узлы, такие как TaxTotal и LegalMonetaryTotal, обеспечивая бесшовную интеграцию с существующими парсерами и бухгалтерскими системами.

Эти мок-данные находят широкое применение в сценариях интеграционного и нагрузочного тестирования ERP-платформ. Используя ubl_invoice, команды могут проверять логику распределения налогов, корректность обработки различных валют (например, турецкой лиры TRY) и устойчивость системы к обработке сложных вложенных структур в XML. Благодаря поддержке вызова функции через Python-код, интерфейс командной строки (CLI) или плагин для JMeter, подготовка окружения для тестирования производительности шлюзов e-fatura становится тривиальной задачей, не требующей ручного составления громоздких файлов.

Главное преимущество использования mock-jutsu заключается в возможности быстро получать валидные тестовые данные, которые невозможно отличить от реальных документов по структуре. Это избавляет разработчиков от необходимости использовать конфиденциальную информацию в тестовых средах, обеспечивая при этом полное покрытие функционала обработки инвойсов. Внедрение ubl_invoice в цикл CI/CD позволяет значительно сократить время на отладку и повысить общую надежность финансового программного обеспечения, гарантируя корректную работу с электронными счетами на всех этапах жизненного цикла продукта.

Использование CLI
mockjutsu generate ubl_invoicemockjutsu bulk ubl_invoice --count 10mockjutsu export ubl_invoice --count 10 --format jsonmockjutsu export ubl_invoice --count 10 --format csvmockjutsu export ubl_invoice --count 10 --format sql
Python API
from mockjutsu import jutsujutsu.generate('ubl_invoice')jutsu.bulk('ubl_invoice', count=10)jutsu.template(['ubl_invoice'], count=5)
JMeter
${__mockjutsu_ubl(ubl_invoice)}# JMeter Function: __mockjutsu_ubl# Parameter 1: ubl_invoice# Parameter 2: (not required for this function)
REST API
GET /generate/ubl_invoice# → {"type":"ubl_invoice","result":"...","status":"ok"}GET /bulk/ubl_invoice?count=10POST /template {"types":["ubl_invoice"],"count":1}

Примеры вывода

{"xml": "\n\n 2.1\n TR1.2\n INV-2026-16157\n false\n B27F9558-FA7E-4554-8093-097AA409139B\n 2026-06-27\n 23:22:04\n TEVKIFAT\n GBP\n 4\n \n \n \n 0056982123\n VAT\n \n \n \n \n \n \n 62539930105\n \n \n \n \n 0.00\n \n 281394.95\n 0.00\n \n 0\n KDV\n \n \n \n \n 281394.95\n 281394.95\n 281394.95\n 281394.95\n \n \n 1\n 6\n 11869.86\n Yazilim Lisansi\n 1978.31\n \n \n 2\n 28\n 54836.60\n Bulut Depolama\n 1958.45\n \n \n 3\n 6\n 4729.32\n Teknik Destek\n 788.22\n \n \n 4\n 59\n 209959.17\n Proje Yonetimi\n 3558.63\n \n", "invoice_id": "INV-2026-16157", "uuid": "B27F9558-FA7E-4554-8093-097AA409139B", "issue_date": "2026-06-27", "currency": "GBP", "invoice_type": "TEVKIFAT", "tax_rate": 0, "net_amount": 281394.95, "tax_amount": 0.0, "gross_amount": 281394.95, "line_count": 4, "ubl_version": "2.1"}

Правила валидации

Другие языки