Как провести нагрузочное тестирование в 1С:Документооборот без использования 1С:КИП?
Перед запуском 1С:Документооборот для средних и крупных внедрений крайне желательно провести нагрузочное тестирование, чтобы проверить корректность и скорость работы системы электронного документооборота в условиях максимальной нагрузки.
Рассмотрим упрощенное нагрузочное тестирование, которое встроено в типовую конфигурацию 1С:Документооборот КОРП или ДГУ. При этом можно не приобретать дополнительно 1С:КИП (корпоративный инструментальный пакет).
Подготовка эталонной базы СЭД для нагрузочного тестирования
Перед проведением нагрузочного тестирования крайне желательно провести аудит базы 1С:Документооборот.
Для проведения нагрузочного тестирования нужно создать эталонную базу СЭД 1С Документооборот 8. В качестве эталонной базы может выступать прототип или копия рабочей базы.
Необходимо установить следующие флажки в настройках программы под Администратором. В настройках по делопроизводству:
- Виды входящих документов,
- Виды исходящих документов,
- Виды внутренних документов,
- Учет по организациям,
- Вопросы деятельности,
- Управление мероприятиями,
- Грифы доступа,
- Категории для документов и файлов,
- настройку "Штрихкодирование документов" отключаем.
В настройках по процессам и задачам:
- Использовать процессы.
В настройках по правам доступа:
- Использовать ограничение прав доступа.
И можно настроить автоматический экспорт замеров производительности.
Нужно обязательно заполнить следующие справочники:
- Виды внутренних документов – для каждого вида документа должны быть установлены настройки "Автоматически вести состав участников рабочей группы" и "Вести учет по корреспондентам" (довольно странное требование, так как в копии рабочей базы или прототипе далеко не всем видам документам нужны такие настройки).
- Виды входящих документов – для каждого вида документа должна быть установлена настройка "Автоматически вести состав участников рабочей группы".
- Виды исходящих документов – для каждого вида документа должна быть установлена настройка "Автоматически вести состав участников рабочей группы".
- Организации.
- Грифы доступа.
- Вопросы деятельности.
- Папки внутренних документов.
- Папки мероприятий.
- Корреспонденты.
Если видов документов много, то указанные настройки быстрее установить с помощью обработки "Групповое изменение реквизитов" в разделе "Настройка и администрирование".
Указываем справочник "Виды внутренних документов".
Выбираем реквизиты и значения, которые хотим изменить и нажимаем кнопку "Изменить реквизиты".
Аналогично поступаем со справочниками "Виды входящих документов" и "Виды исходящих документов".
Сценарии тестирования, входящие в типовую поставку 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 - для роли Пользователь
delo.txt - для роли Делопроизводитель
Проведение нагрузочного тестирования СЭД
Проведем нагрузочное тестирование на 100 одновременных пользователей демо-базы 1С:Документооборот в клиент-серверном варианте. В данном тесте будут 60 обычных пользователей, 10 руководителей и 30 делопроизводителей.
Для запуска виртуального пользователя нужно сформировать bat-ник на каждую роль со строкой:
"C:\Program Files (x86)\1cv8\common\1cestart.exe" /IBConnectionString "<АдресИБ>" /N "<ИмяВходаПользователя>" /P "<ПарольПользователя>" /C "RunHLT;<ИмяФайлаССценариемРоли>.txt" /DisableStartupMessages /ClearCache
Рассмотрим некоторые параметры запуска более подробно:
/C "RunHLT;<ИмяФайлаССценариемРоли>.txt"
Параметр RunHLT означает, что будет проводиться нагрузочное тестирование при запуске 1С:Предприятие. После выполнения всех сценариев тестирования работа 1С:Документооборот будет завершена.
/DisableStartupMessages - подавляет некоторые стартовые сообщения.
/ClearCache - очистка кэша клиент-серверных вызовов.
Например, для роли Делопроизводитель строка запуска будет выглядеть следующим образом:
"C:\Program Files (x86)\1cv8\common\1cestart.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)\1cv8\common\1cestart.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)\1cv8\common\1cestart.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)\1cv8\common\1cestart.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.
Однако ждать пришлось значительно больше :(, т.к. железо, на котором проводилось тестирование не очень оптимальное и использовалось СУБД MS SQL Server Express без настроенных регламентов.
Некоторые сеансы так и не завершили тестирования, так как в них выскакивали разного рода ошибки и предупреждения, как например, следующие:Анализ результатов нагрузочного тестирования СЭД
Открываем "Оценку производительности" в разделе "Настройка и администрирование".
Указываем период и список ключевых операций и нажимаем кнопку "Обновить показатели производительности". В результате по каждой ключевой операции будет выведено значение показателя APPDEX.
Полученные оценки можно интерпретировать следующим образом:
Каждую оценку можно расшифровать двойным кликом и тогда мы увидим сколько по времени выполнялась каждая конкретная операция.
Также полезными для анализа будут отчеты по статистике активности пользователей и по числу событий.
Перед проведением нагрузочного тестирования крайне желательно провести аудит базы 1С:Документооборот.
авторизуйтесь