Тестирование: Отлаживаем и тестируем REST интерфейс 1С с помощью SoapUI

03.02.20

Разработка - Тестирование QA

Рассмотрим быстрый и удобный способ облегчения разработки и отладки REST, SOAP веб сервисов, а также создания автоматизированных тестов.

Входные данные:

Конфигурация ERP, программа SoapUI, две REST службы на стороне 1С и внешней системы, конфигурация "Тестирование 3.0".

Проблема:

В процессе интеграции нашей ERP с внешней системой WMS (система складского учета) нам понадобилось выполнить тестирование standalone REST интерфейса без взаимодействия c внешним подрядчиком. 

Задача:

В задачи теста и отладки входит выполнение запроса на сторону внешней WMS, а также получение от них push команд. Взаимодействие через REST интерфейс.
Покрытие участка http интерфейса тестами -  создание теста и подключение в систему тестирования.

Профит/Польза:

В результате в течении 10-15 минут с использованием «бесплатного» внешнего приложения нам удалось построить стенд. Согласитесь, заманчиво и довольно удобно в некоторых случаях.
Сможете создать набор тестов и подключить их в систему тестирования для повышения качества продукта.
Привожу максимально подробно с картинками – режим быстрый старт.

Содержание статьи:

Для решения задач отладки кода в 1С Вас заинтересуют пункты:

1. Подготовка

2. Создаем запросы на получение данных из 1С или другого сервиса с помощью «SoapUI» по REST

3. Создаем MOK REST сервер

4. Осуществление отладки

Создание теста для системы тестирования 

5. Создание теста

6. Добавление в систему тестирования

Дополнительная информация для решения определенных специфических вопросов, ссылки.

7. Дополнительно + видео урок

И так поехали:

 

1.    Подготовка. 

a.    Считаем, что у вас развернуто окружение со стороны 1С: поднят сервер ERP, УТ, КА и т.п., выполнена публикация на веб сервере IIS или Apache. 

b.    Устанавливаем SoapUI. Довольно тривиальная задача. Интерфейс этого инструмента от SmartBear застрял в 2000х годах, но зато в нем есть все что нужно для быстрого решения наших задач.

c.    Устанавливаем конфигурацию «Тестирование 3.0» - требуется, если мы хотим использовать систему автоматизации тестирования.


2.    Создаем запросы на получение данных из 1С или другого сервиса с помощью SoapUI по REST.

Данная последовательность действий позволит нам создать проект и настроить инструмент SoapUI, в рамках которого будем осуществлять тестовые REST запросы на наш проект разработанный на Платформе 1С или другой среде разработки. В качестве примера сделаем REST запрос на службу получения текущего времени в сети интернет.

a.    Создаем новый проект
 
b.    Указываем путь к сервису. В качестве примера возьмем сервис получения времени

 

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


3.    Создаем Mock REST сервер.

Mock сервер позволит нам выполнять тестовые запросы получения данных, который очень удобно использовать для отладки внутреннего функционала программы. Фактически - это сервер заглушка, который на заранее определенные запросы будет выдавать зашитые ответы. Вы можете кончено добавить динамическую обработку в самом SoapUI на Groovy скриптах, но для минимально необходимой имитации поведения это уже излишне. К тому же, тесты должны быть повторяемы, а это обеспечено. 

В качестве примера рассмотрим реализацию xml ответа на запрос по некоторому адресу - http://сервер/hello-world.

a.    Создаем новый REST Mock сервис. 
 
b.    Вводим его имя: «новый REST Mock сервис»
 
c.    Добавляем новое действие заглушку
 
d.    В форме вводим необходимую информацию – метод и путь
 
e.    Добавляем новый ответ 
 
f.    Называем его – «Ответ привет мир»
 
g.    В открывшемся окне редактора добавляем необходимую информацию. Выберем тип «text/xml», необходимые заголовки и краткое тело ответа:
 
h.    Открываем редактор сервиса
 
i.    Далее заходим в настройки и меняем порт (если требуется) у меня был занят в процессе написания статьи.
 
j.    Запускаем службу
 
k.    Открываем браузер и убеждаемся в его работе:

4.    Выполняем отладку в процессе разработки.

Используем стандартный подход. Заходим в конфигуратор, ставим точку отладки в тех позициях, где требуется. А далее выполняем запуск запроса или обращаемся к mock серверу.


5.    Добавляем тест.

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


a.    Выбираем запрос и через контекстное меню создаем новый тестовый случай.
 
b.    Вводим имя пакета тестов «Проверка запроса данных»
 
c.    Вводим имя текущего тестового случая «Получить текущее время»
 
d.    Далее имя запроса и жмем «ок»
 
e.    Открываем вкладку Assertions и добавляем проверки
 
f.    Добавим проверку того, что статус вернулся «200 ок».
 
g.    Добавим еще одну проверку, того что в коде содержится определенная информация «time»

h.    Проверяем. Жмем кнопку проверки.

i.    Смотрим результаты и радуемся или печалимся


6.    Подключаем тест к системе тестирования.

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


a.    Открываем конфигурацию «Тестирование 3.0» и переходим в подсистему «Тестирование» и выбираем журнал «Тесты»

 
b. Смело жмем "создать" новый тест.
 
c. Заполняем все необходимые поля в карточке теста и сохраняем его:
-Наименование "проверка запроса данных"; 
-Тип теста – юнит тест;
- Серьезность дефекта;
-Вариант хранения – (оптимально использовать в GIT, допустим общий каталог, но если вы на сервере, то можете указать путь к файлу)
- Путь к файлу теста.


 
d.    Теперь создаем новое задание, которое позволит запускать в автоматическом режиме. Переходим в подсистему «Планировщик» и открываем журнал «Задания»

 
e.    Создаем новое задание с помощью конструктора

 
f.    Выбираем вариант «Тест веб-сервисов (Soap UI)» и жмем кнопку «начать создание задания по шаблону»
 
g.    Далее следуем указаниям конструктора и выполняем необходимую последовательность действий

 
h.    Указываем обязательно ссылку на справочник теста «REST пример»  и путь к серверу 1С в формате http://сервер/имя_базы (в этом случае мы можем переопределить имя сервера где должен выполняться тест, который указывали в конструкторе SoapUI)
 
i.    После у нас появится новое задание, которое будет выполнят запуск юнит-теста проверки выб сервиса, с помощью SopaUI. Приложение SoapUI должно быть обязательно установлено на сервере и указано в настройках для пользователя под которым будет выполняться запуск.
Проверим это и переходим в администрирование и настройку «Настройки работы пользователя на рабочем месте»

 
j.    В настройках пользователя обязательно должно быть указан путь к SoapUI исполняемому файлу относительно сервера.

 
k.    Когда у вас будет много тестов, тогда вам необходимо будет создать задание с типом «проверка». В рамках этого задания вы сможете выполнить полноценную проверку своего приложения. Более подробно про создание задания проверки и настройку конфигурации «Тестирование 3.0» смотрите в статье и видео-уроке (Запуск и контроль выполнения автоматизированных тестов из 1С – Jenkins Skin). 

В результате вы сможете получить результат-отчет о выполненных тестах в удобном формате, как на картинке ниже:

 

7.    Дополнительно.


1)    Авторизация.
a)    Для добавления авторизации в форме запроса выбираем и нажимаем на вкладку «Auth»
 
b)    Далее раскрываем и добавляем новый вид авторизации
 
c)    Выбираем Windows авторизацию вариант «NTLM»
 
d)    Вбиваем данные логин, пароль и домен

2)    Проблема с отправкой русской кодировки решаем так:

В bin-директории soapUI открываем файл SoapUI-x.x.x.vmoptions (где x.x.x. - номер версии soapUI) и добавляем туда опцию:
-Dfile.encoding=UTF8

3) У «SoapUI» есть отдельная система запуска тестов и называется «TestRunner», более подробно смотрите справку.


4) Для легкой интеграции в свою команду системы тестирования используйте Фреймворк «Тестирование 3.0» https://github.com/ivanov660/TestingTool-3.  У разработаны удобные инструменты, есть обширные возможности и большой потенциал + все бесплатно + методология + видео уроки + документация.


5) Больше примеров и видео-уроков про конфигурацию тестирование на ресурсе (Видео уроки)
 
6) Аналогично можно создать проект для проверки интерфейса SOAP, примеры можно легко найти на текущем сайте.

7) Для тех кто хочет запускать тесты из иной системы CI приведу шаблон код для  запуска теста. Этот шаблон используется в нашем конструкторе. В итоговой строке не должно быть переносов.

"%ПутьККаталогуSoapUI%\bin\testrunner.bat" "%ПутьКФайлуТеста%" -f  "%ПутьККаталогуОтчетовВыполненияТестов%" -I -j -r 
-e %АдресВебСервиса% 

8) Если Вы заинтересовались тестированием, тогда обратите внимание на создание сценарных тестов и статью по данной тематике - Тестирование: пример создания сценарного UI теста для платформы 1С

Видео-урок

Вступайте в нашу телеграмм-группу Инфостарт

TDD Тестирование 3.0 Автоматизация тестирования SoapUI

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Нейросети DevOps и автоматизация разработки Тестирование QA Разработчик 1С 8.3 Бесплатно (free)

Открытый набор правил и скриптов на GitHub для ИИ-агента (агента искусственного интеллекта: Claude Code, Codex и других). Агент сам снимает опись машины, предлагает путь проверки кода: плагин Unica или BSL Language Server со справкой платформы. С вашего «да» ставит недостающее, затем выгружает внешнюю обработку, заводит git и доводит её до зелёного теста YAxUnit. Оба пути проверены с нуля свежим агентом на копии демобазы «Управление торговлей» 11.5, платформа 8.3.27. Новая часть: для задач по данным базы агент выгружает конфигурацию в XML, строит карту объектов и пишет запросы только по именам, найденным в выгрузке. Внутри гайд «Unica на Windows» с известными ошибками и проверенными обходами.

10.11.2026    493    Iliaelagin    0    

1

Тестирование QA Разработчик 1С:Предприятие 8 Бесплатно (free)

Когда полная сборка автотестов занимает полчаса, даже небольшая автоматизация может изменить рабочий процесс. Рассказываю, как Python-утилита Phase Switcher постепенно превратилась в KOT for 1C — open-source расширение для VS Code. KOT 3.0 объединяет в одной рабочей среде библиотеку шагов и сценариев, IntelliSense, поддержку СППР и самостоятельных feature Vanessa Automation, исследователь форм, запись действий и управление выполнением через MCP. В статье — история разработки проекта от небольшой Python-утилиты до расширения для VS Code, практические примеры, неудачные эксперименты и решения, которые помогли инструменту прижиться в нашей команде.

02.11.2026    480    alexiosus    0    

2

Тестирование QA Бесплатно (free)

Резкий рост числа пользователей, консолидация систем или миграция в облако требуют заранее понять, выдержит ли инфраструктура новую нагрузку. Рассказываем, как с помощью LLM команда за 16 недель подготовила и провела нагрузочные тесты для шести баз: автоматизировала анализ технологических журналов и журналов регистрации, формирование реалистичных сценариев и создание обработок для «1С:Тест-центра» и JMeter. Показываем, как оркестратор, AI-агенты и MCP-серверы помогают сократить объем ручной работы, а также объясняем, почему контроль со стороны 1С-эксперта по-прежнему остается обязательным. Разбираем архитектуру решения, уже работающие инструменты и направления дальнейшей автоматизации нагрузочного тестирования.

31.10.2026    534    gabrielyants    0    

5

Инструментарий разработчика Тестирование QA Разработчик Стажер 1С 8.3 Абонемент ($m)

Проверила пять пакетных команд платформы 8.3.27 на контрольном расширении Нано-УТ: они обнаружили 4 из 28 заложенных пунктов. В набор входят ошибки применимости, предупреждения и сведения для ручного разбора. Проверка XML-выгрузки отметила все 28 пунктов и 15 из 15 на похожем слепом наборе. Показываю журналы, ограничения и сценарий обновления основной конфигурации. Прилагаются инструмент с 69 тестами и материалы опыта.

7 стартмани

28.10.2026    397    Ninel_S    2    

2

Инструментарий разработчика Мобильная разработка Тестирование QA Разработчик 1С 8.3 Абонемент ($m)

Скрипт form_diff_mobile.py сравнивает две выгрузки конфигурации 1С и показывает, что в формах удалено и переименовано, где на это ещё ссылаются и какой код попадает в мобильные контексты. На «Нано-УТ 2.0» сделано 13 изменений форм: платформа 8.3.27.2130 отметила 7, в остальных шести промолчала, и в четырёх из них скрипт нашёл обращение к удалённому элементу, строку с прежним именем формы, смену директивы или выход формы из мобильной области. На чистой УТ 11.5 сравнение с копией дало 0 находок, а с копией с пятью правками ровно семь. В архивах скрипт, 74 теста, стенд, чек-лист выпуска, журнал выпуска и скрипты опытов на платформе.

7 стартмани

27.10.2026    353    Ninel_S    0    

1

Тестирование QA Разработчик 1С 8.3 Абонемент ($m)

Прогнала через 1С 8.3.27 и валидатор .NET 21 файл XML по одной схеме: базовый пример и типичные отклонения. Вердикты совпали в 20 случаях (у .NET включены предупреждения), дата без времени дала расхождение. В архиве - схема, тесты, закреплённая версия учебной базы и исправленный сценарий проверки, включая выгрузку и обратное чтение 30 продаж.

1 стартмани

26.10.2026    344    Ninel_S    0    

1

Рефакторинг и качество кода Тестирование QA Системный администратор Разработчик 1С 8.3 Абонемент ($m)

В базе 1С на PostgreSQL копятся индексы, которыми никто не пользуется: их создаёт флажок «Индексировать» у реквизитов или их добавляют вручную. Каждый такой индекс замедляет запись: в опыте на тестовой таблице восемь лишних индексов сделали вставку 300 000 строк в четыре-шесть раз дольше. Скрипт на Python смотрит статистику PostgreSQL и показывает, какие индексы ни разу не использовались и какой реквизит 1С их создал. На нашей конфигурации «Нано-УТ» он нашёл четыре ненужных индекса документа и один дубль, добавленный вручную. После того как я сняла флажки и обновила конфигурацию, индексов стало 227 вместо 234, данные не пострадали. В архиве скрипт, запросы и примеры.

5 стартмани

23.10.2026    510    Ninel_S    4    

1

Рефакторинг и качество кода Тестирование QA Разработчик 1С 8.3 Абонемент ($m)

Скрипт, который должен был проверять код 1С в Docker, на деле проверял только, что файл не пустой: из 11 модулей с ошибками он пропустил все. Я переписала проверку и сравнила её с самой 1С на тех же 11 модулях из нашей конфигурации «Нано-УТ». Новый скрипт нашёл незакрытые «Если», процедуры и скобки в 10 случаях из 11. Вызов несуществующей процедуры находит только сама 1С. В архиве скрипт, файлы для Docker, примеры с ошибками и журналы проверки.

5 стартмани

23.10.2026    499    Ninel_S    4    

0
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. skv_79 393 03.02.20 11:54 Сейчас в теме
2. o.nikolaev 219 03.02.20 18:10 Сейчас в теме
Корректно назвать статью "Отладка и тестирование REST интерфейса 1С с помощью SoapUI"
3. YA_87357589 15.04.21 14:32 Сейчас в теме
Добрый день.
Владимир, нужна помощь с соап.
Может сможете помочь? Я бы в каком-нибудь мессенджере описала проблему, например скайп.
4. ivanov660 4989 15.04.21 14:53 Сейчас в теме
(3) Можете тут написать. Или на инфостарте есть чатик. Его не хватит?
Для отправки сообщения требуется регистрация/авторизация