Автоматизация тестирования в крупных холдингах и при сопровождении сложных конфигураций — это не роскошь, а производственная необходимость. Разберем накопленный опыт использования инструментов от фирмы «1С» и выясним, почему профессиональное сообщество все чаще делает выбор в пользу open-source решений. В этой статье мы проанализируем возможности «1С:Тестировщик», «1С:Сценарное тестирование» и причины перехода на Vanessa Automation.
Для начала проанализируем, в чем разница между базовыми инструментами. «1С:Тестировщик» — это облегченная версия, предназначенная для быстрого формирования простых тестов. Она идеально подходит для записи действий пользователя «на лету», но имеет ряд ограничений:
Важно понимать, что сценарии этих двух инструментов полностью совместимы. Если вы начали в «Тестировщике», вы сможете перенести наработки в полноценное «Сценарное тестирование 3.0» без потери данных.
Рассмотрим конкретные технические проблемы, с которыми сталкиваются специалисты при использовании этих инструментов «из коробки», и найдем способы их решения. Проанализируем две наиболее критичные ошибки поиска:
1. Поиск в поле ввода из иерархического справочника
Часто стандартный механизм записи не может корректно выбрать значение, если справочник имеет сложную иерархию. Выясним причину: инструмент пытается имитировать клики, которые сбиваются при открытии новых уровней дерева.
Решение: заменим интерактивный поиск на прямой ввод кода справочника с последующим нажатием Enter. Это гарантирует однозначную идентификацию объекта вне зависимости от визуального состояния дерева справочника.
2. Поиск строк в табличных частях
При поиске конкретной строки в большой таблице тест может «промахнуться». Рассмотрим надежный обходной путь: использование механизма «Процедура на встроенном языке». В форме настройки шага мы можем включить запись действий, а затем отредактировать полученный код 1С.
Вместо стандартного клика по строке, пропишем поиск программно:
// Пример программного поиска строки в табличной части
ПараметрыОтбора = Новый Структура("Номенклатура", СсылкаНаТовар);
НайденныеСтроки = Объект.Товары.НайтиСтроки(ПараметрыОтбора);
Если НайденныеСтроки.Количество() > 0 Тогда
// Выполняем действия с найденной строкой
КонецЕсли;
Разберем критически важный аспект повторяемости тестов. Если мы проводим тестирование на копии рабочей базы, тесты часто падают из-за индивидуальных настроек пользователей. Проанализируем ситуацию: у одного пользователя скрыта колонка, у другого установлен фильтр в списке, и тест, рассчитанный на стандартный вид, ломается.
Правило: перед запуском сценарного теста необходимо очищать настройки пользователя. Это можно сделать через ХранилищеОбщихНастроек. Также рекомендуется программно устанавливать рабочую дату тестирования, чтобы документы создавались в нужном периоде.
Не обязательно писать все тесты с нуля. Проанализируем наличие готовых наработок для популярных решений 1С:
Для «1С:Бухгалтерия 3.0 (КОРП)»:
Существуют готовые наборы сценариев (например, в релизе 3.0.45.20 и выше), которые включают:
Для «1С:Зарплата и Управление Персоналом 3.1»:
Рассмотрим пример нагрузочного или функционального теста, который должен включать цепочку действий:
Прием на работу.Отпуск, Больничный лист.Табель.Начисление зарплаты и взносов.Выясним причину, почему многие команды в итоге отказываются от стандартных инструментов «1С». Основная сложность — стабильный ночной запуск пакетом. При автоматизации через планировщик задач часто возникают проблемы с отрисовкой GUI в сеансе пользователя, если он заблокирован. Инструмент «1С:Сценарное тестирование» крайне чувствителен к наличию активного графического окна.
Почему выбирают Vanessa Automation:
.feature, что позволяет полноценно использовать системы контроля версий.Посмотрим на пример простейшего сценария в формате Gherkin:
Функционал: Создание документа Поступление товаров
Сценарий: Проверка заполнения цены из карточки номенклатуры
Дано: Я открываю основное окно
И Я открываю список документов "Поступление товаров и услуг"
Когда Я нажимаю кнопку "Создать"
И Я выбираю в поле "Контрагент" значение "Основной поставщик"
И Я добавляю строку в таблицу "Товары"
И Я выбираю в текущей строке значение "Стол" в колонке "Номенклатура"
Тогда поле "Цена" в текущей строке должно быть заполнено значением 1500
Подведем итог нашему анализу. Если ваша задача — быстро проверить небольшую доработку «здесь и сейчас», используйте «1С:Тестировщик». Для стабильной работы с иерархией и сложными таблицами обязательно переходите к редактированию шагов на встроенном языке.
Однако, если вы планируете выстраивать полноценный процесс обеспечения качества (QA) в холдинге с ночными прогонами и хранением истории тестов в Git, мы рекомендуем сразу рассматривать Vanessa Automation. Это сэкономит время, которое в противном случае будет потрачено на борьбу с ограничениями закрытых инструментов тестирования.