Версия для печати.   http://trsoft.ru/articles/4/?vprint=Y

Внесистемный способ запуска большого количества виртуальных пользователей для Тест-Центра вер. 1.2

 

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

Проверку производительности конфигураций 1С, разрабатываемых для одновременной работы нескольких десятков пользователей, не следует ограничивать только тестированием однопользовательского режима. При одновременной работе свыше 30 пользователей с высокой вероятностью можно утверждать, что появится конкуренция доступа к информационным ресурсам. Процессы начинают становиться в очередь, ожидая освобождения занятых ресурсов. При определенных условиях могут начать возникать ошибки, связанные либо с превышением допустимого времени ожидания процессом освобождения ресурса (таймаут ожидания), либо с их взаимным блокированием друг друга (взаимоблокировка, deadlock). Частое возникновение этих ошибок сильно мешает пользователям, и, строго говоря, является показателем неудовлетворительной производительности системы. Условия для возникновения подобных ошибок в большинстве случаев закладываются на этапах проектирования и кодирования системы. При однопользовательском тестировании на компьютере разработчика обнаружить их просто невозможно, а организовать многопользовательское тестирование без специальных инструментов – задача не из легких.

Тест-Центр вер. 1.2, входящий в состав продукта 1С:Корпоративный инструментальный пакет 8 – это доступное в освоении и удобное средство автоматизированной проверки производительности конфигураций 1С. Этот инструмент позволяет проводить многопользовательское тестирование на любом количестве пользователей силами одного человека.

Однако сам по себе запуск большого количества пользователей представляет собой достаточно трудоемкий процесс. Количество виртуальных пользователей, которых вообще можно запустить на одном компьютере, ограничено и в первую очередь объемом доступной оперативной памяти. Для платформы 1С:8.1 оно вычисляется из расчета примерно 100-150 МБ на одну пользовательскую сессию в неинтерактивном режиме работы, если нет намеренного получения или кэширования больших объемов данных в сессиях. Количество пользователей, которое можно запустить локально из одной Windows-сессии, может быть меньше, оно ограничено возможностями сервера и настройками Windows. На серверах различной мощности это количество варьировалось от 75 до 240 (максимальное число виртуальных пользователей при этом составляло от 80 до 650). Тест-центр вер. 1.2 содержит средства автоматизированного старта виртуальных пользователей не только локально, но и на удаленных компьютерах. В силу особенностей реализации этого механизма запускать клиентские приложения на удаленном компьютере можно порциями, но не более чем по 15 за один раз. Новую порцию можно стартовать только после полного запуска предыдущей. В результате запуск даже 500 пользователей становится довольно длительным процессом, требующим постоянных действий оператора.

Следует отметить, что в Тест-Центре вер.2 проблема запуска виртуальных пользователей решена штатными средствами по-другому, и там такой проблемы уже не стоит. Однако на текущий момент в Тест-Центр вер.2 работает только с управляемыми формами на платформе 8.2, а распространенность этих форм в данный момент не слишком высока, хотя со временем это, конечно же, изменится.

В ходе тестирования 1С:Управление производственным предприятие на 1000 пользователей, нам удалось найти удобный внесистемный способ запуска виртуальных пользователей, существенно уменьшивший нагрузку на оператора и суммарное время запуска.

Суть способа в следующем:

Текст обработки запуска приложений на встроенном языке платформы 1С:8.1:

Процедура КнопкаВыполнитьНажатие(Кнопка)
	for ch = 1 to numm do	// numm – сколько приложений запустить, задается на форме
		RunApp("C:\1c\1c.lnk" );	// C:\1c\1c.lnk – это ярлык для запуска 1С, см.ниже
		a = CurrentDate();
		While CurrentDate() < a+5 do	//5 это интервал в сек. между запусками приложений
			d=3;	//пустышка
		EndDo;
	enddo; 
КонецПроцедуры
	

Ярлык C:\1c\1c.lnk для 64-разрядной Windows содержит следующую строку:

"C:\Program Files (x86)\1cv81\bin\1cv8.exe" enterprise /S ИмяСервера\ИмяБазы /N ИмяПольз1С /C VWP

ИмяСервера – имя сервера приложений 1С

ИмяБазы – имя базы, к которой подключен Тест-Центр и производительность в которой тестируем

ИмяПольз1С – имя пользователя, под которым можно войти в тестируемую базу с достаточными правами (пользователь без пароля, лучше сделать его латинскими буквами и без пробелов в имени, например, «1s»).

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


При старте некоторых типовых конфигураций, например 1С:Управление производственным предприятием 8, пользователю выводится один или несколько HTML-страниц с обзором конфигурации, дополнительными материалами и т.п. Снятие галочек «Показывать при запуске» может не дать эффекта, потому что постоянно идет работа под разными учетными записями, а быстрому запуску пользователей вывод этих страниц, безусловно, мешает. Поэтому, например, в 1С:Управление производственным предприятием 8 имеет смысл закомментировать в модуле приложения вызов обработок «ОбзорКонфигурации» и «Дополнительнаяинформация».

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

 
ГК Трейд Софт, Москва
Автор: Филиппов Е.В.
Дата публикации: 10.01.2010 г.