Как провести нагрузочное тестирование в 1С:Документооборот без использования 1С:КИП?
Перед запуском 1С:Документооборот для средних и крупных внедрений крайне желательно провести нагрузочное тестирование, чтобы проверить корректность и скорость работы системы электронного документооборота в условиях максимальной нагрузки.
Рассмотрим упрощенное нагрузочное тестирование, которое встроено в типовую конфигурацию 1С:Документооборот КОРП или ДГУ. При этом можно не приобретать дополнительно 1С:КИП (корпоративный инструментальный пакет).
Подготовка эталонной базы СЭД для нагрузочного тестирования
Перед проведением нагрузочного тестирования крайне желательно провести аудит базы 1С:Документооборот.
Для проведения нагрузочного тестирования нужно создать эталонную базу СЭД 1С Документооборот 8. В качестве эталонной базы может выступать прототип или копия рабочей базы.
Необходимо установить следующие флажки в настройках программы под Администратором. В настройках по делопроизводству:
- Виды входящих документов,
- Виды исходящих документов,
- Виды внутренних документов,
- Учет по организациям,
- Вопросы деятельности,
- Управление мероприятиями,
- Грифы доступа,
- Категории для документов и файлов,
- настройку "Штрихкодирование документов" отключаем.
![](http://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/11055796c76a7d6c4cdc8158af271275.jpg/s/s1200x/a/101008/sc/58)
В настройках по процессам и задачам:
- Использовать процессы.
![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/516d7046f4bae3ce4cf2e86393b91af8.jpg/s/s1200x/a/101008/sc/250)
В настройках по правам доступа:
- Использовать ограничение прав доступа.
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/f53858e40e67d1ad684d85a4d7acf29a.jpg/s/s1200x/a/101008/sc/257)
![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/c809ccc96c5d198381c9a0e5fe27c4dd.jpg/s/s1200x/a/101008/sc/304)
И можно настроить автоматический экспорт замеров производительности.
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/2165c41ae5ba76d7783567406894a7ea.jpg/s/s1200x/a/101008/sc/61)
Нужно обязательно заполнить следующие справочники:
- Виды внутренних документов – для каждого вида документа должны быть установлены настройки "Автоматически вести состав участников рабочей группы" и "Вести учет по корреспондентам" (довольно странное требование, так как в копии рабочей базы или прототипе далеко не всем видам документам нужны такие настройки).
![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/77ebb8c2bb9d81fc0731d76493f92549.jpg/s/s1200x/a/101008/sc/166)
- Виды входящих документов – для каждого вида документа должна быть установлена настройка "Автоматически вести состав участников рабочей группы".
- Виды исходящих документов – для каждого вида документа должна быть установлена настройка "Автоматически вести состав участников рабочей группы".
- Организации.
- Грифы доступа.
- Вопросы деятельности.
- Папки внутренних документов.
- Папки мероприятий.
- Корреспонденты.
Если видов документов много, то указанные настройки быстрее установить с помощью обработки "Групповое изменение реквизитов" в разделе "Настройка и администрирование".
![](http://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/d6a8c7814008bceb32ee370065791f2f.jpg/s/s1200x/a/101008/sc/145)
Указываем справочник "Виды внутренних документов".
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/45ef7bad228f81d7c958b44de64afe6f.jpg/s/s1200x/a/101008/sc/358)
Выбираем реквизиты и значения, которые хотим изменить и нажимаем кнопку "Изменить реквизиты".
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/b9ff0f68279a31fba3cf20148f3db56c.jpg/s/s1200x/a/101008/sc/291)
Аналогично поступаем со справочниками "Виды входящих документов" и "Виды исходящих документов".
Сценарии тестирования, входящие в типовую поставку 1С:Документооборот
![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/889b3c8fdb96efd20fcfb053a1290728.jpg/s/s1200x/a/101008/sc/252)
В общем модуле НагрузочноеТестированиеСценарииСтандартные указаны типовые сценарии.
![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/2b25798e76bb59a6087e2a03ec5be9e1.jpg/s/s1200x/a/101008/sc/203)
В общем модуле НагрузочноеТестированиеСценарии содержится код пользовательских сценариев. В этом модуле основные сценарии вызывают стандартные сценарии из модуля НагрузочноеТестированиеСценарииСтандартные.
![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/5536296901ae5ef43b29533dacac0495.jpg/s/s1200x/a/101008/sc/97)
В комментариях перед каждой функцией можно посмотреть из каких шагов состоит каждый сценарий. Также полезным будет оценить среднее время на выполнение сценария.
Функция СозданиеВнутреннегоДокумента()
// Сценарий создания внутреннего документа.
// Шаги сценария:
// 1. Открытие списка внутренних документов, если он еще не открыт (пауза 5с).
// 2. Переключение режима просмотра на случайное (пауза 5с).
// 3. Если режим просмотра "По папкам", тогда переход к папке (пауза 5с).
// 4. Выполнение команды "Создать документ" в списке (пауза 5с).
// 5. Выбор шаблона создаваемого документа в форме выбора шаблона (пауза от 20с до 30с).
// 6. Выполнение команды "Создать по шаблону" в форме выбора шаблона (пауза 5с).
// 7. Заполнение реквизитов документа в форме документа (пауза от 60с до 180с).
// 8. Выполнение команды "Записать" в форме документа (пауза 5с).
// 9. Закрытие формы документа (пауза 5с).
![](http://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/69ce06e7250041e2d6dd5e1beeac819a.jpg/s/s1200x/a/101008/sc/284)
Функция СозданиеВходящегоДокумента()
// Сценарий создания входящего документа.
// Шаги сценария:
// 1. Открытие списка входящих документов, если он еще не открыт (пауза 5с).
// 2. Выполнение команды "Создать документ" в списке (пауза 5с).
// 3. Выбор шаблона создаваемого документа в форме выбора шаблона (пауза от 20с до 30с).
// 4. Выполнение команды "Создать по шаблону" в форме выбора шаблона (пауза 5с).
// 5. Заполнение реквизитов документа в форме документа (пауза от 60с до 180с).
// 6. Выполнение команды "Записать" в форме документа (пауза 5с).
// 7. Закрытие формы документа (пауза 5с).
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/d030d033482d14ed32e98ec66b4cea5c.jpg/s/s1200x/a/101008/sc/231)
Функция СозданиеИсходящегоДокумента()
// Сценарий создания исходящего документа.
// Шаги сценария:
// 1. Открытие списка исходящих документов, если он еще не открыт (пауза 5с).
// 2. Выполнение команды "Создать документ" в списке (пауза 5с).
// 3. Выбор шаблона создаваемого документа в форме выбора шаблона (пауза от 20с до 30с).
// 4. Выполнение команды "Создать по шаблону" в форме выбора шаблона (пауза 5с).
// 5. Заполнение реквизитов документа в форме документа (пауза от 60с до 180с).
// 6. Выполнение команды "Записать" в форме документа (пауза 5с).
// 7. Закрытие формы документа (пауза 5с).
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/ccff31886243a3e12293169344d05e6c.jpg/s/s1200x/a/101008/sc/49)
Функция СозданиеПроцесса()
// Сценарий создания процесса по внутреннему документу.
// Случайным образом выполняется один из сценариев:
// - СозданиеПроцессаИсполнение
// - СозданиеПроцессаОзнакомление
// - СозданиеПроцессаПоручение
// - СозданиеПроцессаПриглашение
// - СозданиеПроцессаРассмотрение
// - СозданиеПроцессаРегистрация
// - СозданиеПроцессаСогласование
// - СозданиеПроцессаУтверждение
![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/986afeb7cd10a7dbd75b13a0c5c84c76.jpg/s/s1200x/a/101008/sc/336)
Функция ВыполнениеЗадачи()
// Сценарий выполнения задачи.
// Случайным образом выполняется один из сценариев:
// - ВыполнениеЗадачиИсполнение
// - ВыполнениеЗадачиОзнакомление
// - ВыполнениеЗадачиПоручение
// - ВыполнениеЗадачиПриглашение
// - ВыполнениеЗадачиРассмотрение
// - ВыполнениеЗадачиРегистрация
// - ВыполнениеЗадачиСогласование
// - ВыполнениеЗадачиУтверждение
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/d9c2dfb8704486b4dc4b5774d70db3fe.jpg/s/s1200x/a/101008/sc/300)
Чтобы добавлять свои сценарии или изменять стандартные сценарии нужно в модуле НагрузочноеТестированиеСценарии вызывать из модуля НагрузочноеТестированиеСценарииСтандартные функции и изменять параметры необходимых действий.
Подготовка ролей для нагрузочного тестирования СЭД
Перед началом проведения нагрузочного тестирования в 1С:Документообороте надо определиться с количеством виртуальных ролей, которые будут принимать участие в тестировании, так как разные пользователи создают разную нагрузку на систему.
Для каждой роли нужно будет создать отдельный текстовый файл с описанием действий, которые последовательно будет выполнять виртуальный пользователь.
Делаем следующие текстовые файлы:
![](http://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/ada546d6e8ac4682ce5a2cce6cb280b6.jpg/s/s1200x/a/101008/sc/380)
Будем делать нагрузочный тест в течение 30 минут. Исходя из этого подберем сценарии нагрузочного тестирования для каждой роли.
user.txt - для роли Пользователь
![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/194f6b7a6bac5608258b21122bb929a5.jpg/s/s1200x/a/101008/sc/90)
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/861ad7468ccb1e68d6503e87a259bb8e.jpg/s/s1200x/a/101008/sc/209)
delo.txt - для роли Делопроизводитель
![](http://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/9ccf91f63843d1975c05075f7b92ccb9.jpg/s/s1200x/a/101008/sc/166)
Проведение нагрузочного тестирования СЭД
Проведем нагрузочное тестирование на 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С:Документооборот будет завершена.
![](http://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/358c07c632af9328ed9b95e6a8fff803.jpg/s/s1200x/a/101008/sc/216)
/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.
![](http://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/520491864da76850f20f2df00c06a47f.jpg/s/s1200x/a/101008/sc/43)
Однако ждать пришлось значительно больше :(, т.к. железо, на котором проводилось тестирование не очень оптимальное и использовалось СУБД MS SQL Server Express без настроенных регламентов.
Некоторые сеансы так и не завершили тестирования, так как в них выскакивали разного рода ошибки и предупреждения, как например, следующие:![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/16398a8c929e12d6f90656031820b942.jpg/s/s1200x/a/101008/sc/428)
![](http://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/77480d913ba4a3b89137722c56d59941.jpg/s/s1200x/a/101008/sc/477)
![](http://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/3f8822b3f66f275c64cdef5e1d2afca7.jpg/s/s1200x/a/101008/sc/346)
Анализ результатов нагрузочного тестирования СЭД
Открываем "Оценку производительности" в разделе "Настройка и администрирование".
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/70b4e1628f3ab8cae0ffad484535ba30.jpg/s/s1200x/a/101008/sc/276)
Указываем период и список ключевых операций и нажимаем кнопку "Обновить показатели производительности". В результате по каждой ключевой операции будет выведено значение показателя APPDEX.
![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/8485f9d6a68bba32bdc5dd49f283adb1.jpg/s/s1200x/a/101008/sc/345)
Полученные оценки можно интерпретировать следующим образом:
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/4166843c8560743c43acbb1c654b5e63.jpg/s/s1200x/a/101008/sc/46)
Каждую оценку можно расшифровать двойным кликом и тогда мы увидим сколько по времени выполнялась каждая конкретная операция.
![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/040d1ee8e956dff920608cd813113cda.jpg/s/s1200x/a/101008/sc/189)
Также полезными для анализа будут отчеты по статистике активности пользователей и по числу событий.
![](http://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/0651aae9ae8d432ebabff280cef96c81.jpg/s/s1200x/a/101008/sc/384)
![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/4615049c6a7073d5139cc63e266f219b.jpg/s/s1200x/a/101008/sc/4)
Перед проведением нагрузочного тестирования крайне желательно провести аудит базы 1С:Документооборот.
авторизуйтесь