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

Публикация № 1182541 03.02.20

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

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

Рассмотрим быстрый и удобный способ облегчения разработки и отладки 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С

Видео-урок

Специальные предложения

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

См. также

Быстрый старт в тестировании на платформе 1С (Vanessa-ADD)

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Если вы давно хотите освоить тестирование в мире 1С. Но не знали, с чего начать. Теперь знаете.

02.02.2023    6867    NikitaIvanchenko    28    

119

Интерактивная справка и помощник первого запуска Vanessa Automation

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Недавно у нас появился помощник первого запуска и интерактивная справка

21.06.2022    2158    fenixnow    0    

44

Как начать писать тесты без регистрации и СМС

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

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

11.05.2022    1554    zeltyr    3    

12

Тестирование - игровое моделирование

HighLoad оптимизация Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Мы рассмотрим подход к тестированию с применением элементов искусственного интеллекта

25.04.2022    1532    ivanov660    0    

15

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Hello world в Vanessa-ADD bddRunner

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Минимальный пример на Vanessa-ADD bddRunner без теории. При написании использовались: 1С 8.3.10.2753, Vanessa add 6.6.5.

24.02.2021    1578    kirinalex    0    

12

Практика применения DevOps. Тестирование

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В третьей части мастер-класса «Практика применения DevOps» на конференции Infostart Event 2019 Inception выступила Светлана Попова. Она рассмотрела возможности использования двух инструментов тестирования от фирмы «1С» – «Сценарного тестирования» и связки СППР и Vanessa Automation, и рассказала про плюсы и минусы каждого из этих вариантов.

11.12.2020    7427    SvVik    0    

49

Тестирование серверного поведения с Vanessa Automation

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Обзор модуля "ИнициаторДанных" (версия VA 1.2.034), пример скрипта

14.09.2020    4286    unichkin    18    

25

Vanessa, видеоинструкции для web-клиента

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Vanessa-Automation. Использование видеоинструкций в web-клиенте.

01.06.2020    4860    SvVik    3    

29

Молчание "best practices": тестовые и эталонные данные, структура и связность, падения и новая функциональность, и другие неудобные вопросы к сценарному тестированию

Рефакторинг и качество кода Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Непонимание некоторых базовых вопросов мешает программистам начать применять инструменты тестирования в процессе разработки для 1С. Как разобраться в терминологии и интегрировать процесс тестирования в разработку 1С-решений на конференции Infostart Event 2019 Inception рассказал руководитель отдела разработки компании C.T.Consultants Решитко Дмитрий.

29.05.2020    6684    grumagargler    14    

48

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

Vanessa Automation + СППР

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Vanessa Automation. Использование автоматизированного тестирования в СППР.

07.11.2019    19896    SvVik    15    

141

Vanessa, улучшаем инструкции

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Vanessa Automation умеет делать хорошие инструкции, давайте посмотрим, какие инструменты для этого есть.

30.10.2019    13148    OPM    12    

86

Vanessa, хочу все и сразу

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Vanessa Automation это инструмент для тестирования прикладных решений на платформе 1С, но он/она может больше, чем только тестирование.

11.10.2019    18946    OPM    36    

154

Интерактивная отладка

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Инструменты не панацея - главное подход эффективный.

13.08.2019    4988    kuzyara    7    

19

Как стать контрибьютором Vanessa Automation?

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Краткая инструкция о том, как помочь проекту VA

15.07.2019    8640    fenixnow    44    

50

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Автоматизация тестирования с помощью WinAutomationUI

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Рассматривается использование инструмента WinAutomationUI для создания автоматизированных сценарных тестов на примере 1 + 1 = 2.

11.12.2018    8046    AlexKo    30    

28

Новичок в TDD

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Краткие итоги первых шагов при разработке в 1С через TDD.

08.10.2018    12789    Alligator84    86    

64

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Тестер: частые вопросы

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Ошибкам бой - тесты норма жизни!

25.07.2018    33330    grumagargler    31    

168

Проблемы с запуском TestClient. "Ошибка сетевого взаимодействия при вызове"

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

При выполнении кода автоматического тестирования появляется ошибка "Ошибка сетевого взаимодействия при вызове"

05.07.2018    6595    chugada    3    

3

Опыт практического применения методики BDD на 1С. Написание сценариев

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Эта статья открывает цикл публикаций, в которых я хочу поделиться опытом использования методики BDD при разработке на 1С. В этой статье речь пойдёт о написании сценариев.

03.07.2016    26880    oleynik.dv    131    

135

Как протестировать неэкспортные процедуры модулей

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

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

17.11.2015    14590    json    30    

19

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

xUnitFor1C - набор инструментов для выполнения тестирования (модульного/юнит, приемочного, сценарного для 1С 8.3, интеграционного) в 1С:Предприятии 8

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

xUnitFor1C - простой и мощный фреймворк для тестирования в 1С. Позволяет тестировать в разных режимах обычное приложение, тонкий и толстый клиент управляемого приложения. Поддерживаются любые платформы 1С - от 8.2.17 до 8.3.5 и выше. Любые наборы тестов могут прогоняться в полностью автоматическом режиме. Автозапуск используется в различных build-серверах в системах Continuous Integration. Также возможно очень простое создание тестовых данных на основании табличных макетов. Эти макеты можно генерировать из реальных боевых данных. Полученные данные в тестах загружаются одной строкой кода. В статье я кратко описал историю продукта + вставил небольшое описание различных возможностей нашего фреймворка + список полезных статей/примеров/видео, обучающих/рассказывающих о практическом применении инструмента

13.11.2015    50425    artbear    53    

215

Автоматизированное тестирование в 8.3

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье будет рассмотрен новый механизм системы "1С:Предприятие 8" поддерживаемый начиная с платформы версии 8.3. Механизм позволяет легко и быстро создавать различные сценарии тестирования, без необходимости написания сложных процедур и функций для имитации действий пользователя.

06.03.2014    73186    M.Shalimov    47    

196

Простая отладка внешних обработок

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Простой способ, упрощающий отладку внешних обработок, печатных форм и тд. ВНИМАНИЕ! Данный метод НЕ работает в режиме работы "Управляемое приложение"! Статья актуальна только для режима "Обычное приложение"

22.10.2013    69917    EvilDoc    69    

71

Неблагодарное это дело – выдавать сообщения об ошибках

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Методика формирования и выдачи сообщений об ошибках. Описывается способ работы над ошибками в данных, прилагается программный код. Приводятся примеры.

28.09.2013    6399    pakill    16    

25

Низкоуровневая отладка веб-клиента 1С

WEB-интеграция Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Метод позволяет заглянуть внутрь веб-клиента 1С вплоть до исходных кодов и запустить отладку кода, написанного программистами 1С. Отладка JavaScriptпомогла разобраться с тем, какие преобразования делает 1С с html-кодом, помещенным в Поле HTML документа.

09.06.2013    23298    Elisy    38    

33

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

TestIB8x - 0003 - Безопасный код - Option Explicit - первая реализация

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Был момент, когда захотелось задвинуть этот тест подальше, т.к. в Платформе 8.х защита от небрежного кодирования проработана хорошо. Достаточно перестать использовать экспортные переменные уровня приложения, внешнего соединения и переменные уровня модуля. После этого можно "клепать" код, даже не вымыв перед этим руки и не промыв мозги Ж-). Спасибо, комментариям на прошлое обсуждение и нескольким письмам на мыло - сподвигли на завершение начатого. Тест получился большой - более 900 строк на JScript, но кое-какие моменты все-таки остались ...

16.01.2008    9764    brix8x    3    

0