1с сценарное тестирование 3.0 10 начало работы. Инструменты тестирования для тех, кому жалко тратить свое время на рутину

В статье рассмотрен новый механизм автоматизированного тестирования, который впервые появился в платформе в редакции 8.3. Изучив материал статьи, вы узнаете:

  • Что представляет из себя автоматизированное тестирование в платформе?
  • Как и когда им пользоваться?
  • Что и где нужно настроить, чтобы его запустить?
  • Как написать сценарий автоматизированного тестирования?

Применимость

В статье рассматривается платформа «1С:Предприятие» редакции 8.3.4.465. В актуальной версии платформы возможности механизма автоматического тестирования существенным образом расширены, однако на актуальность материала статьи это не повлияло. Он по прежнему актуален.

Автоматизированное тестирование в «1С:Предприятие 8.3»

В платформе «1С:Предприятие 8.3» появился новый механизм, предназначенный для имитации интерактивных действий пользователей системы – автоматизированное тестирование.

Автоматизированное тестирование не поддерживает работу с обычным интерфейсом, а только с управляемым.

При тестировании используются два вида клиентских приложений – менеджер тестирования и клиент тестирования. Менеджер тестирования устанавливает связь с клиентом тестирования и выполняет сценарий тестирования.

Сценарий тестирования – это код на встроенном языке, в котором описывается последовательность выполняемых интерактивных действий.

Для этого во встроенный язык добавлены новые объекты, которые на абстрактном уровне описывают интерфейс приложения (оперируя понятиями окна, формы, элементов управления и т.п.), а также описывают действия пользователей (навигация по конфигурации, ввод данных и т.п.).

Менеджер тестирования может быть толстым или тонким клиентом. Клиент тестирования – толстым, тонким клиентом или веб-клиентом.

Менеджер тестирования может быть подключен к нескольким клиентам тестирования, а клиент тестирования может быть подключен только к одному менеджеру.

Для управления клиентом менеджер устанавливает с ним TCP-соединение. Важно, что для проведения автоматизированного тестирования не требуется вносить изменений в структуру конфигурации.

По сути, клиент и менеджер тестирования – это конфигурации, запущенные с определенными параметрами командной строки, причем менеджер осуществляет управление клиентами, “заставляя” окна и элементы управления вести себя таким образом, как будто с ними взаимодействует пользователь.

Автоматизированное тестирование имеет свои ограничения. Так, например, не поддерживается работа с обычным интерфейсом, а только с управляемым.

Для выполнения автоматизированного тестирования должен быть запущен менеджер и клиент тестирования.

Запуск менеджера может быть выполнен из командной строки с ключом /TESTMANAGER:

“c:\Program Files (x86)\1cv8\8.3.4.437\bin\1cv8c.exe” ENTERPRISE /F “X:\test” /N Администратор /TESTMANAGER

Также менеджер тестирования можно запустить из конфигуратора.

Для этого через меню Сервис – Параметры открываем диалог “Параметры”, в котором на закладке Запуск 1С:Предприятия – Дополнительные отмечаем пункт “Запускать как менеджер тестирования”:

Еще один способ запуска менеджера тестирования – из встроенного языка, при помощи метода ЗапуститьСистему(), в котором следует указать командную строку:

ЗапуститьСистему(“c:\Program Files (x86)\1cv8\8.3.4.437\bin\1cv8c.exe” ENTERPRISE /F X:\test /N Администратор /TESTMANAGER”)

Клиента тестирования также можно запустить из командной строки. Для этого следует воспользоваться ключом параметра командной строки /TESTCLIENT.

При помощи параметра TPort указывается номер порта, через который будет вестись взаимодействие менеджера и клиента тестирования. Если этот параметр не указан в командной строке, то будет использован порт 1538.

“c:\Program Files (x86)\1cv8\8.3.4.437\bin\1cv8c.exe” ENTERPRISE /F “X:\Platform8Demo” /N Администратор /TESTCLIENT -TPort 1539

Клиент тестирования можно запустить из конфигуратора. Для этого через меню Сервис – Параметры открываем диалог “Параметры”, в котором на закладке Запуск 1С:Предприятия – Дополнительные отмечаем пункт “Запускать как клиент тестирования”. При этом надо будет указать номер используемого порта.

Обратите внимание, что для подключения к клиенту тестирования необходимо знать два параметра: IP-адрес (или имя) компьютера, на котором запущен клиент тестирования, и номер TCP-порта, с помощью которого будет выполняться взаимодействие.

В качестве менеджера и клиента тестирования могут использоваться как разные информационные базы (конфигурация базы менеджера тестирования может не совпадать с конфигурацией клиента тестирования), так и одна и та же информационная база.

Для выполнения автоматизированного тестирования необходимо проделать следующие шаги:

  1. Разработать сценарий тестирования – написать внешнюю или встроенную в конфигурацию обработку, в которой будут последовательно описаны выполняемые шаги.
  2. Запустить менеджер тестирования.
  3. Запустить клиент тестирования (один или несколько).
  4. В менеджере тестирования запустить на исполнение созданную обработку, убедиться в выполнении запрограммированных действий на клиенте.

Тестируемое приложение описывается набором объектов встроенного языка, которые используются для написания сценария:

  • ТестируемоеПриложение;
  • ТестируемоеОкноКлиентскогоПриложения;
  • ТестируемыйКомандныйИнтерфейсОкна;
  • ТестируемаяГруппаКомандногоИнтерфейса;
  • ТестируемаяКнопкаКомандногоИнтерфейса;
  • ТестируемаяФорма;
  • ТестируемоеПолеФормы;
  • ТестируемаяГруппаФормы;
  • ТестируемаяКнопкаФормы;
  • ТестируемаяТаблицаФормы;
  • ТестируемаяДекорацияФормы.

В качестве тестируемой конфигурации будем использовать демонстрационную конфигурацию “Управляемое приложение”.

Создадим внешнюю обработку, добавим новую форму, в которой определим обработчик для новой команды “ЗапуститьТестирование”.

В тесте выполняем следующие действия: создаем новый элемент справочника “Склады”, в поле Наименование вводим строку “Склад тест”, затем нажимаем кнопку “Записать и закрыть”.

Программный код этого теста будет выглядеть следующим образом:

&НаКлиенте
Процедура ЗапуститьТестирование (Команда )
// Подключимся к тестируемому приложению
ТестируемоеПриложение = Новый ТестируемоеПриложение (“localhost” );
// Пытаемся подключаться не более одной минуты
ВремяОкончанияОжидания = ТекущаяДата () + 60 ;
Подключен = Ложь ;
Пока Не ТекущаяДата () >= ВремяОкончанияОжидания Цикл Попытка
ТестируемоеПриложение.УстановитьСоединение ();
Подключен = Истина ;
Прервать ;
Исключение
КонецПопытки ; КонецЦикла ; Если Не Подключен Тогда
// Завершаем работу теста
ТестируемоеПриложение = Неопределено ;
Сообщить (“Не удалось установить соединение!” );
Возврат ;
КонецЕсли ;
// Найдем главное окно
ГлавноеОкноТестируемого
= (Тип ());
ГлавноеОкноТестируемого.Активизировать ();
// Выполним команду создания элемента справочника товаров
ГлавноеОкноТестируемого.ВыполнитьКоманду (“e1cib/command/Справочник.Склады.Создать” );
ТестируемоеПриложение.ОжидатьОтображениеОбъекта (Тип (“ТестируемаяФорма” ), “Склад*” );
ТестируемаяФорма = ТестируемоеПриложение.НайтиОбъект (Тип (“ТестируемаяФорма” ),
“Склад*” );
ТестируемаяФорма.Активизировать ();
// Зададим наименование для нового товара
ЭлементФормы = ТестируемаяФорма.НайтиОбъект (Тип (“ТестируемоеПолеФормы” ),
“Наименование”
);
ЭлементФормы.Активизировать ();
ЭлементФормы.ВвестиТекст (“Склад тест” );
// Запишем элемент
ЭлементФормы = ТестируемаяФорма.НайтиОбъект (Тип (“ТестируемаяКнопкаФормы” ),
“Записать и закрыть”
);
ЭлементФормы.Нажать ();
КонецПроцедуры

В диалоге параметров запуска сначала выбиралось значение “Запустить как менеджер тестирования”, при помощи сочетания клавиш Ctrl+F5 запускался пользовательский сеанс.

Потом в диалоге выбиралось значение “Запустить как клиент тестирования”, при помощи сочетания клавиш Ctrl+F5 запускался второй пользовательский сеанс.

Таким образом мы избежали необходимости вручную указывать требуемые параметры командной строки.

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

Здесь на помощь приходит еще одна новая возможность платформы – запись журнала действий пользователя.

Для этого необходимо запустить приложение в специальном режиме:

Для увеличения нажмите на изображение.

В заголовке программы появляется несколько кнопок:

Кнопки предназначены для:

  • начала/приостановки записи;
  • прекращения записи;
  • завершения записи.

После завершения записи на экране открывается текстовый документ, который представляет собой последовательность действий пользователя, сохраненную в XML-файл.

Для увеличения нажмите на изображение.

Записанный журнал можно преобразовать в программный код, который затем использовать в сценарии тестирования.

Для этого предназначена обработка “Преобразование журнала действий пользователя” (UILogToScript.epf), которую можно получить с сайта ИТС .

Для увеличения нажмите на изображение.

В результате работы обработки мы получаем сгенерированный код на встроенном языке. Этот код следует вставить в модуль формы обработки тестирования.

Обратите внимание, что в сгенерированном коде числа, большие 999 или меньшие –999, будут выводиться с использованием неразрывного пробела в качестве разделителя групп (например, «1 234» вместо «1234»).

Этот символ необходимо удалить из полученного кода вручную.

Участок кода с подключением к клиенту обработка сформировала автоматически.

В нашем примере получился следующий код:

&НаКлиенте
Процедура ЗапуститьТестирование (Команда )
ТестовыйСценарий_23_03_2014 ();
КонецПроцедуры &НаКлиенте
Процедура ТестовыйСценарий_23_03_2014 () ТестовоеПриложение = Новый ТестируемоеПриложение ();
ВремяОкончанияОжидания = ТекущаяДата () + 60 ;
Подключен = Ложь ;
ОписаниеОшибкиСоединения = “” ;
Пока Не ТекущаяДата () >= ВремяОкончанияОжидания Цикл
Попытка
ТестовоеПриложение.УстановитьСоединение ();
Подключен = Истина ;
Прервать ;
Исключение
ОписаниеОшибкиСоединения = ОписаниеОшибки ();
КонецПопытки ;
КонецЦикла ;
Если Не Подключен Тогда
ТестовоеПриложение = Неопределено ;
Сообщить (+ Символы.ПС + ОписаниеОшибкиСоединения );
Возврат ;
КонецЕсли ; (ТестовоеПриложение );
(ТестовоеПриложение ); КонецПроцедуры &НаКлиенте
Процедура ОкноПриложенияКонтрагентыКнопкаСоздатьНажать (ТестовоеПриложение )
ОкноПриложенияКонтрагенты = (Тип (
“ТестируемоеОкноКлиентскогоПриложения” ), “Контрагенты” , , 30 );
ОкноПриложенияКонтрагентыФормаКонтрагенты = ОкноПриложенияКонтрагенты.НайтиОбъект (Тип (
“ТестируемаяФорма” ), “Контрагенты” );
КнопкаСоздать = ОкноПриложенияКонтрагентыФормаКонтрагенты.НайтиОбъект (Тип (
“ТестируемаяКнопкаФормы” ), “Создать” );
КнопкаСоздать.Нажать (); КонецПроцедуры &НаКлиенте
Процедура ОкноПриложенияКонтрагентСозданиеКнопкаЗаписатьИЗакрытьНажать (ТестовоеПриложение ) ОкноПриложенияКонтрагентСоздание = ТестовоеПриложение.НайтиОбъект (Тип (
“ТестируемоеОкноКлиентскогоПриложения” ), “Контрагент (создание)” , , 30 );
ОкноПриложенияКонтрагентСозданиеФормаКонтрагентСоздание =
ОкноПриложенияКонтрагентСоздание.НайтиОбъект (Тип (“ТестируемаяФорма” ),
“Контрагент (создание)” );
ПолеНаименование =
(Тип (
“ТестируемоеПолеФормы” ), “Наименование” );
ПолеНаименование.ВвестиТекст (“Новый” ); ПолеВидЦен = ОкноПриложенияКонтрагентСозданиеФормаКонтрагентСоздание.НайтиОбъект (Тип (
“ТестируемоеПолеФормы” ), “Вид цен” );
ПолеВидЦен.Активизировать (); ПолеВидЦен.Выбрать (); ПолеВидЦен.ОжидатьФормированияВыпадающегоСписка (); ПолеВидЦен.ВыполнитьВыборИзСпискаВыбора (“Закупочная” ); КнопкаЗаписатьИЗакрыть =
ОкноПриложенияКонтрагентСозданиеФормаКонтрагентСоздание.НайтиОбъект (Тип (
“ТестируемаяКнопкаФормы” ), “Записать и закрыть” );
КнопкаЗаписатьИЗакрыть.Нажать (); КонецПроцедуры

В полученном сценарии устанавливается подключение к клиенту тестирования, нажимается кнопка создания нового элемента справочника “Контрагенты”, в поле Наименование вводится текст “Новый”, а в выпадающем списке “Вид цен” выбираем значение “Закупочная”, затем нажимается кнопка “Записать и закрыть”.

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

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

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

Рассмотрим подробнее, как будет выглядеть код при использовании двух клиентов тестирования:

Процедура ТестовыйСценарий_23_03_2014_ДваКлиента () //первый клиент
ТестовоеПриложение1 = Новый ТестируемоеПриложение ();
ВремяОкончанияОжидания = ТекущаяДата () + 60 ;
Подключен = Ложь ;
ОписаниеОшибкиСоединения = “” ;
Пока Не ТекущаяДата () >= ВремяОкончанияОжидания Цикл
Попытка
ТестовоеПриложение1.УстановитьСоединение ();
Подключен = Истина ;
Прервать ;
Исключение
ОписаниеОшибкиСоединения = ОписаниеОшибки ();
КонецПопытки ;
КонецЦикла ; //второй клиент
ТестовоеПриложение2 = Новый ТестируемоеПриложение ();
ВремяОкончанияОжидания = ТекущаяДата () + 60 ;
ОписаниеОшибкиСоединения = “” ;
Пока Не ТекущаяДата () >= ВремяОкончанияОжидания Цикл
Попытка
ТестовоеПриложение2.УстановитьСоединение ();
Подключен = Истина ;
Прервать ;
Исключение
ОписаниеОшибкиСоединения = ОписаниеОшибки ();
КонецПопытки ;
КонецЦикла ;
Если Не Подключен Тогда
ТестовоеПриложение1 = Неопределено ;
ТестовоеПриложение2 = Неопределено ;
Сообщить (“Не смогли установить соединение!” + Символы.ПС + ОписаниеОшибкиСоединения );
Возврат ;
КонецЕсли ; //процедуры отдельные для каждого клиента тестирования
ОкноПриложенияКонтрагентыКнопкаСоздатьНажать1 (ТестовоеПриложение1 );
ОкноПриложенияКонтрагентыКнопкаСоздатьНажать2 (ТестовоеПриложение2 );
ОкноПриложенияКонтрагентСозданиеКнопкаЗаписатьИЗакрытьНажать1 (ТестовоеПриложение1 );
ОкноПриложенияКонтрагентСозданиеКнопкаЗаписатьИЗакрытьНажать2 (ТестовоеПриложение2 ); КонецПроцедуры

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

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

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

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

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

Также автоматизированное тестирование может применяться для выявления в конфигурации избыточных блокировок и взаимоблокировок.

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

Здравствуйте, друзья!

Предлагаю вашему вниманию небольшую конфигурацию для сценарного тестирования решений на базе 1С:Предприятие 8.3, управляемые формы.

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

Главные цели Тестера:

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

Используя тестер, вы можете рассчитывать на решение следующих задач:

  1. Высокая степень покрытия функционала. Тестер хорошо сфокусирован на процесс разработки тестов, что положительно сказывается на количестве и качестве создаваемых тестов
  2. Тесты пишутся на языке программирования 1С, что является не только знакомым инструментом, но также позволяет использовать в тестировании весь набор функций платформы, а главное – позволяет управлять ходом тестирования программно, не опираясь на заложенную модель в инструменте тестирования
  3. Из тестов можно делать библиотеки, например, можно создавать тесты, которые по переданным параметрам открывают окно поиска в динамическом списке, или формируют некий отчет. Если вам нужно для своего теста иметь остаток на складе, можно реализовать библиотечный тест, в который вы передадите состав требуемого остатка, и этот остаток будет оприходован
  4. Простая проверка бизнес логики, без сравнения с данными других баз, без прямых запросов к тестируемому приложению, без макетов с сериализованными «в другом месте» данными. Вся информация может быть сохранена в самом тесте, в макете, при необходимости – доработана.
  5. Кроме того, что все тесты хранятся в базе, и любой пользователь Тестера может использовать написанный другим программистом тест, Тестер имеет возможность инкрементальной выгрузки/загрузки тестов в файловую систему. Это может быть полезно для дальнейшей синхронизации тестов с системами контроля версий, например, Git.

В демонстрационной базе разработана небольшая инфраструктура взаимосвязанных тестов, которая может быть взята на вооружение при разработке ваших собственных тестов. Также, в базе есть пример создания документа Заказ поставщику для ERP2 (демо).

Для конфигурации ERP2 (демо), был создан репозиторий https://github.com/grumagargler/ERP2
Туда я выгрузил демонстрационные тесты. Надеюсь, это начинание не останется без внимания энтузиастов, и тесты будут пополняться.

Наиболее исчерпывающую информацию по Тестеру вы найдете в справке, она будет на рабочем столе, при запуске системы. В справке есть раздел Быстрый старт, я рекомендую с ним ознакомиться.

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

Спасибо за проявленный интерес к системе и удачных вам тестов друзья!

Обновление 1.3.2.7

Добавлена процедура LogError (ЗаписатьОшибку), используется для программного добавления сообщений в журнал ошибок из кода сценария без остановки выполнения сценария

Все функции по работе с полями теперь умеют производить навигацию по табличной части, например, так можно проверить в пятой строке сумму начисления: Проверить ("#Начисления / Результат [ 5 ]", 1000);

Функция Check (Проверить) пытается проверять числовые значения без учета разделителя триад и дробной части

Добавлен Журнал запуска, где регистрируются события выполнения сценариев

Добавлен переход из сценария в Журнал запуска и Журнал ошибок

Добавлен помощник в дерево выбора полей

В помощник добавлена онлайн-справка по встроенным методам тестера

Добавлены версии приложений. Версии могут задаваться как для приложения в целом, так и отдельно для каждого пользователя

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



Отчеты реализованы в виде отдельных прав, для их добавления пользователям-не-администраторам, нужно произвести соответствующие настройки в их профилях

Оптимизирована выгрузка сценариев в файлы. Выгружаемые файлы формируются в формате bsl

Порядок перехода:

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

Внимание! Конфигурация выложена на базе версии 8.3.10, но работа ранних версий также поддерживается. Для этого, необходимо под версией 8.3.10 установить необходимый конфигурации режим совместимости, сохранить конфигурацию в файл и использовать его в качестве обновления.

Карточка решения 1С:Сценарное тестирование 8

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

Купить 1С:Сценарное тестирование 8

4601546061393 42 000

Лицензирование 1С:Сценарное тестирование 8

Продукт "1С:Сценарное тестирование 8" предназначен для использования с клиентскими лицензиями "1С:Предприятия 8" , увеличивающими количество рабочих мест.В комплект поставки продукта входит дистрибутив, книга "1С:Сценарное тестирование 8. Руководство по использованию" и лицензионное соглашение.

Для использования продукта необходимо наличие любой основной поставки (версии ПРОФ) системы 1С:Предприятие 8. Продукт не предназначен для использования с базовыми версиями 1С:Предприятия 8. 1С:Сценарное тестирование 8 правомерно использовать на рабочих местах локальной сети организации, обеспеченных клиентской лицензией 1С:Предприятия 8. 1С:Сценарное тестирование 8 включено в поставку 1С:Корпоративный инструментальный пакет 8

Поддержка и обновление 1С:Сценарное тестирование 8

Поддержка и сервисное обслуживание зарегистрированных пользователей осуществляется в рамках Информационно-технологического сопровождения (1С:ИТС ) - 1С:ИТС Техно или 1С:ИТС Проф. Период бесплатной подписки при покупке программы составляет 3 месяца. По истечении срока бесплатной подписки для получения услуг по поддержке продукта необходимо оформить платную подписку на любую основную поставку системы "1С:Предприятие 8"

Скачать обновления зарегистрированные пользователи могут с сайта users.v8.1c.ru и с диска ИТС.

Функциональные возможности 1С:Сценарное тестирование 8

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

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

  • создание шаблонов для заполнения форм разных объектов конфигурации (их можно настроить и использовать для разных тестов одной конфигурации);
  • анализ связи объектов эталонной базы конфигурации и шагов теста;
  • анализ корректности записанного теста до его выполнения;
  • возможность при выполнении автоматизированного теста обойти обнаруженную ошибку вручную и продолжить выполнение теста в автоматическом режиме;
  • автоматическое сравнение движений документов с данными эталонной базы;
  • пореквизитное сравнение созданных тестом объектов с данными эталонной базы;
  • возможность выполнения отладки шагов при записи теста;
  • анализ покрытия тестом объектов конфигурации.

Для выполнения теста не требуется специальной подготовки тестируемой конфигурации.

В одном и том же тесте можно создавать шаги для тестирования разных хозяйственных операций. Логика теста описывается правилами отражения хозяйственных операций в программе согласно пользовательской документации. Таким образом, инструмент можно применять для сценарного или функционального тестирования конфигураций.

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

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

Инструментарий 1С:Сценарное тестирование 8 состоит из двух внешних обработок (одна обработка предназначена для записи теста, вторая - для его выполнения), а также набора тестов (файлов в формате xml) для типовых конфигураций 1С:Предприятия 8.

Могут использовать:

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

1С Тест-центр 8 — специализированный программный продукт фирмы 1С, который позволяет оценить производительность системы и изучить узкие места информационной системы.

Ранее мы рассмотрели на произвольную конфигурацию. Теперь же научимся создавать сценарии многопользовательского тестирования конфигурации пользователями и запускать само тестирование.

Сценарий тестирования в 1С Тест-центр пишется внутри специально созданной обработки. Шаблон такой находится внутри конфигурации, он имеет название «ТЦШаблонТестовойОбработки». Для создания собственного сценария теста необходимо скопировать данный шаблон и на основании него создать свой, новый, назовём его «Перепроведение поступления товаров»:

Добавим в обработку новый реквизит и выведем его на форму — «ДокументДляКопирования», это тот документ, который мы будем копировать.

Рассмотрим подробнее модуль формы. В нем можно использовать три процедуры — ТЦИнициализировать(), ТЦВыполнить(), Удалить().

  • ТЦИнициализировать — используется для начального заполнения настроек информационной базы, например, заполнение учетной политики.
  • ТЦВыполнить — основной модуль, в котором прописывается непосредственно сценарий тестирования.
  • ТЦУдалитьДанные — модуль, в котором описывается удаление объектов, созданных в процессе тестирования.

Напишем в процедуру ТЦВыполнить() простейший код, который будет 5 раз подряд копировать выбранный документ и замерять копирование и проведение каждого документа:

Для й=1 По 5 Цикл

Инструменты = КипВнешнийКомпонент.ПолучитьИнструменты();
ВремяНачала = КипВнешнийКомпонент.ЗначениеТаймера(Инструменты);

Получите 267 видеоуроков по 1С бесплатно:

СоздатьДокументы();

ВремяОкончания = КипВнешнийКомпонент.ЗначениеТаймера(Инструменты);
ДлительностьВыполнения = (ВремяОкончания — ВремяНачала) / 1000;

ТЦЗаписатьПоказатель(«ВремяВыполнения», ДлительностьВыполнения);

КонецЦикла;

Возврат ТЦРезультатВыполненияУспешно();

Процедура СоздатьДокументы() будет выполнятся на сервере:

Процедура СоздатьДокументы()

НовыйДокумент = ТЦОбъект.ДокументДляКопирования.Скопировать();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);

КонецПроцедуры

На этом подготовка сценария закончена, перейдем к Тест-центра для проведения нагрузочного тестирования.

Настройка 1С Тест-центр 8.3

После написания тестирования приступим к настройке самого Тест-центра. Для настройки необходимо заполнить ряд справочников:

  • Обработки — справочник, содержащий список обработок, подключенных к тестированию. Обработка может быть как внутренней, так и внешней.
  • Роли — справочник для хранения связки обработка-настройки обработки. Настройки — это данные, которые индивидуальны для каждого тестирования (количество итераций, копируемый документ и т.д.).
  • Пользователи — список пользователей и их паролей.
  • Компьютеры — список компьютеров, на которых будет выполнятся тест.
  • Клиенты — настройка того, где, от кого и в каком режиме будет запускаться нагрузочное тестирование.

Сценарии тестирования

Основной справочник, который консолидирует в себе все настройки: сколько раз, каким пользователем, от какого имени будет выполняться нагрузочное тестирование.

Также на вкладке «Параметры» есть возможность настройки сценария тестирования технического характера:

После настройки сценария осталось только произвести его запуск.

Запуск тестирования в 1С: Тест-центр

Когда всё готово, останется только запустить работу тестирования.

Для этого необходим запуск минимум двух сеансов программы: первый — в роли т.н. «агента», а второй в роли инициатора запуска сценария.

Запуск агента:

Запуск сценария:

Для запуска достаточно выбрать из списка нужный сценарий и нажать на кнопку Выполнить.

Loading...Loading...