Нагрузочное тестирование 1С:Документооборот

































Перед запуском 1С:Документооборот для средних и крупных внедрений крайне желательно провести нагрузочное тестирование, чтобы проверить корректность и скорость работы системы электронного документооборота в условиях максимальной нагрузки.
В данной статье пойдет речь о том, как провести нагрузочное тестирование в 1С:Документооборот без использования 1С:КИП.

Рассмотрим упрощенное нагрузочное тестирование, которое встроено в типовую конфигурацию 1С:Документооборот КОРП или ДГУ. При этом можно не приобретать дополнительно 1С:КИП (корпоративный инструментальный пакет).

Подготовка эталонной базы СЭД для нагрузочного тестирования

Для проведения нагрузочного тестирования нужно создать эталонную базу СЭД 1С Документооборот. В качестве эталонной базы может выступать прототип или копия рабочей базы.
Необходимо установить следующие флажки в настройках программы под Администратором. В настройках по делопроизводству:

  • Виды входящих документов,
  • Виды исходящих документов,
  • Виды внутренних документов,
  • Учет по организациям,
  • Вопросы деятельности,
  • Управление мероприятиями,
  • Грифы доступа,
  • Категории для документов и файлов,
  • настройку «Штрихкодирование документов» отключаем.

 настройки делопроизводства

 

В настройках по процессам и задачам:

  • Использовать процессы.

 

В настройках по правам доступа:

  • Использовать ограничение прав доступа.

 

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

И можно настроить автоматический экспорт замеров производительности.

Нужно обязательно заполнить следующие справочники:

  • Виды внутренних документов – для каждого вида документа должны быть установлены настройки «Автоматически вести состав участников рабочей группы» и «Вести учет по корреспондентам» (довольно странное требование, так как в копии рабочей базы или прототипе далеко не всем видам документам нужны такие настройки).
  • Виды входящих документов – для каждого вида документа должна быть установлена настройка «Автоматически вести состав участников рабочей группы».
  • Виды исходящих документов – для каждого вида документа должна быть установлена настройка «Автоматически вести состав участников рабочей группы».
  • Организации.
  • Грифы доступа.
  • Вопросы деятельности.
  • Папки внутренних документов.
  • Папки мероприятий.
  • Корреспонденты.

Если видов документов много, то указанные настройки быстрее установить с помощью обработки «Групповое изменение реквизитов» в разделе «Настройка и администрирование».

Указываем справочник «Виды внутренних документов».

Выбираем реквизиты и значения, которые хотим изменить и нажимаем кнопку «Изменить реквизиты».

Аналогично поступаем со справочниками «Виды входящих документов» и «Виды исходящих документов».

Сценарии тестирования, входящие в типовую поставку 1С:Документооборот

Откроем конфигуратор 1С:Документооборот. И в конфигурации установим отбор по подсистемеНагрузочноеТестирование.

В общем модуле НагрузочноеТестированиеСценарииСтандартные указаны типовые сценарии.

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

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

Функция СозданиеВнутреннегоДокумента()
// Сценарий создания внутреннего документа.
// Шаги сценария:
//  1. Открытие списка внутренних документов, если он еще не открыт (пауза 5с).
//  2. Переключение режима просмотра на случайное (пауза 5с).
//  3. Если режим просмотра «По папкам», тогда переход к папке (пауза 5с).
//  4. Выполнение команды «Создать документ» в списке (пауза 5с).
//  5. Выбор шаблона создаваемого документа в форме выбора шаблона (пауза от 20с до 30с).
//  6. Выполнение команды «Создать по шаблону» в форме выбора шаблона (пауза 5с).
//  7. Заполнение реквизитов документа в форме документа (пауза от 60с до 180с).
//  8. Выполнение команды «Записать» в форме документа (пауза 5с).
//  9. Закрытие формы документа (пауза 5с).

Функция СозданиеВходящегоДокумента()
// Сценарий создания входящего документа.
// Шаги сценария:
//  1. Открытие списка входящих документов, если он еще не открыт (пауза 5с).
//  2. Выполнение команды «Создать документ» в списке (пауза 5с).
//  3. Выбор шаблона создаваемого документа в форме выбора шаблона (пауза от 20с до 30с).
//  4. Выполнение команды «Создать по шаблону» в форме выбора шаблона (пауза 5с).
//  5. Заполнение реквизитов документа в форме документа (пауза от 60с до 180с).
//  6. Выполнение команды «Записать» в форме документа (пауза 5с).
//  7. Закрытие формы документа (пауза 5с).


Функция СозданиеИсходящегоДокумента()
// Сценарий создания исходящего документа.
// Шаги сценария:
//  1. Открытие списка исходящих документов, если он еще не открыт (пауза 5с).
//  2. Выполнение команды «Создать документ» в списке (пауза 5с).
//  3. Выбор шаблона создаваемого документа в форме выбора шаблона (пауза от 20с до 30с).
//  4. Выполнение команды «Создать по шаблону» в форме выбора шаблона (пауза 5с).
//  5. Заполнение реквизитов документа в форме документа (пауза от 60с до 180с).
//  6. Выполнение команды «Записать» в форме документа (пауза 5с).

//  7. Закрытие формы документа (пауза 5с).


Функция СозданиеПроцесса()
// Сценарий создания процесса по внутреннему документу.
// Случайным образом выполняется один из сценариев:
//  — СозданиеПроцессаИсполнение
//  — СозданиеПроцессаОзнакомление
//  — СозданиеПроцессаПоручение
//  — СозданиеПроцессаПриглашение
//  — СозданиеПроцессаРассмотрение
//  — СозданиеПроцессаРегистрация
//  — СозданиеПроцессаСогласование

//  — СозданиеПроцессаУтверждение

 

Функция ВыполнениеЗадачи()
// Сценарий выполнения задачи.
// Случайным образом выполняется один из сценариев:
//  — ВыполнениеЗадачиИсполнение
//  — ВыполнениеЗадачиОзнакомление
//  — ВыполнениеЗадачиПоручение
//  — ВыполнениеЗадачиПриглашение
//  — ВыполнениеЗадачиРассмотрение
//  — ВыполнениеЗадачиРегистрация
//  — ВыполнениеЗадачиСогласование
//  — ВыполнениеЗадачиУтверждение
 
Чтобы добавлять свои сценарии или изменять стандартные сценарии нужно в модуле НагрузочноеТестированиеСценарии вызывать из модуля НагрузочноеТестированиеСценарииСтандартные функции и изменять параметры необходимых действий.

Подготовка ролей для нагрузочного тестирования СЭД

Перед началом проведения нагрузочного тестирования в 1С:Документообороте надо определиться с количеством виртуальных ролей, которые будут принимать участие в тестировании, так как разные пользователи создают разную нагрузку на систему.
Для каждой роли нужно будет создать отдельный текстовый файл с описанием действий, которые последовательно будет выполнять виртуальный пользователь.
Делаем следующие текстовые файлы:
Будем делать нагрузочный тест в течение 30 минут. Исходя из этого подберем сценарии нагрузочного тестирования для каждой роли.
 
user.txt — для роли Пользователь
 
 
man.txt — для роли Руководитель
 
delo.txt — для роли Делопроизводитель

Проведение нагрузочного тестирования СЭД

Проведем нагрузочное тестирование на 100 одновременных пользователей демо-базы 1С:Документооборот в клиент-серверном варианте. В данном тесте будут 60 обычных пользователей, 10 руководителей и 30 делопроизводителей.
Для запуска виртуального пользователя нужно сформировать bat-ник на каждую роль со строкой:
«C:Program Files (x86)1cv8common1cestart.exe» /IBConnectionString «<АдресИБ>» /N «<ИмяВходаПользователя>» /P «<ПарольПользователя>» /C «RunHLT;<ИмяФайлаССценариемРоли>.txt» /DisableStartupMessages /ClearCache

Рассмотрим некоторые параметры запуска более подробно:
 
/C «RunHLT;<ИмяФайлаССценариемРоли>.txt»
Параметр RunHLT означает, что будет проводиться нагрузочное тестирование при запуске 1С:Предприятие. После выполнения всех сценариев тестирования работа 1С:Документооборот будет завершена.
 
/DisableStartupMessages — подавляет некоторые стартовые сообщения.
/ClearCache — очистка кэша клиент-серверных вызовов
 
Например, для роли Делопроизводитель строка запуска будет выглядеть следующим образом:
«C:Program Files (x86)1cv8common1cestart.exe» /IBConnectionString «Srvr=»»server1c»»;Ref=»»doc»»;» /N «frolova» /P «» /C «RunHLT;delo.txt» /DisableStartupMessages /ClearCache
 
Однако, если у нас кол-во пользователей с ролью Делопроизводитель много, то вручную запускать этот файл несколько раз не удобно. Поэтому лучше запускать в цикле с паузой.
Для роли Делопроизводитель файл delo.bat для запуска 30 сеансов будет тогда иметь следующий вид:
for /l %%i in (1,1,30) do (
«C:Program Files (x86)1cv8common1cestart.exe» /IBConnectionString «Srvr=»»server1c«»;Ref=»»doc«»;» /N «frolova» /P «» /C «RunHLT;delo.txt» /DisableStartupMessages /ClearCache
ping -n 5 localhost
)
 
Для роли Пользователь файл user.bat для 60 сеансов:
for /l %%i in (1,1,60) do (
«C:Program Files (x86)1cv8common1cestart.exe» /IBConnectionString «Srvr=»»server1c»»;Ref=»»doc»»;» /N «severyaninov» /P «» /C «RunHLT;user.txt» /DisableStartupMessages /ClearCache
ping -n 5 localhost
)
 
Для роли Руководитель файл man.bat для 10 сеансов:
for /l %%i in (1,1,10) do (
«C:Program Files (x86)1cv8common1cestart.exe» /IBConnectionString «Srvr=»»server1c«»;Ref=»»doc»»;» /N «fedorov» /P «» /C «RunHLT;man.txt» /DisableStartupMessages /ClearCache
ping -n 5 localhost
)
 
Теперь осталось рассчитать объем оперативной памяти из расчета 50 Мегабайт на сеанс на тех машинах, где будем запускать bat-ники.
Для запуска bat-файлов потребуется следующий минимальный объем ОЗУ:
  • delo.bat: 30 * 50 MB = 1 500 MB,
  • user.bat: 60 * 50 MB = 3 000 MB,
  • man.bat: 10 * 50 MB= 500 MB,
  • ИТОГО: 5 000 MB.
Одновременно запускаем все bat-файлы на тех машинах, где достаточно ресурсов.
Смотрим, чтобы кол-во активных пользователей превысило 100.
 
Ждем-с 30 минут…

Однако ждать пришлось значительно больше :(, т.к. железо, на котором проводилось тестирование не очень оптимальное и использовалось СУБД MS SQL Server Express без настроенных регламентов.
Некоторые сеансы так и не завершили тестирования, так как в них выскакивали разного рода ошибки и предупреждения, как например, следующие:

Анализ результатов нагрузочного тестирования СЭД

Открываем «Оценку производительности» в разделе «Настройка и администрирование».

Указываем период и список ключевых операций и нажимаем кнопку «Обновить показатели производительности». В результате по каждой ключевой операции будет выведено значение показателя APPDEX.

Полученные оценки можно интерпретировать следующим образом:

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

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

 
Оригинал статьи опубликован в блоге Владимира Лушникова на странице http://www.doc-lvv.ru/2015/12/nagruzochnoe-testirovanie-1s-dokumentooborot.html.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *