Нагрузочное тестирование

Petro Bazeliuk —  Июнь 12, 2017 — Оставьте комментарий

Хочу рассмотреть вопросы и подготовку к сертификации. Учить правильные ответы плохой путь, а вот понимать ответы и применять их, вы тем самым становитесь на путь к уровню «1С:Эксперт». По сути это цикл записей с расширенными ответами на несколько вопросов из тестов.

Цель проведения нагрузочного тестирования — гарантировать технологическое качество информационной системы после развертывания информационной системы и обеспечение соответствия заявленным технологическим требованиям в процессе эксплуатации информационной системы. Для проведения этой процедуры существует специальная конфигурация «Тест-центр» и предназначен:

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

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

  • по настройкам или доработкам информационной системы;
  • по выбору и настройке необходимого оборудования,

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

ПРИМЕЧАНИЕ. Под технологическим качеством информационной системы здесь понимаются такие характеристики, как устойчивость, работоспособность, масштабируемость, производительность, доступность и т. п. Соответствие функциональных возможностей и удобства использования информационной системы требованиям пользователей к вопросам технологического качества не относится.

Источники:
• ИТС: Проведение нагрузочного тестирования
• ИТС: Тест-центр


Функциональное тестирование — это тестирование ПО в целях проверки реализуемости функциональных требований, то есть способности ПО в определённых условиях решать задачи, нужные пользователям. Функциональные требования определяют, что именно делает ПО, какие задачи оно решает.
Источники:
• ИТС: Функциональное тестирование


Сценарий тестирования состоит из:
• роль;
• количество пользователей;
• перечень операций;
• интенсивность;
• права пользователей;
• тип клиентского приложения.
Источники:
• ИТС: Сценарий тестирования


С помощью подсистемы «Оценка Производительности» из «Библиотеки стандартных подсистем» можно максимально точно определить частоту выполнения операций в информационной системе.


Если контроль остатков мешает выполняться нагрузочному тесту его надо выполнять, но можно проигнорировать его результаты.


Система для нагрузочного теста должна совпадать с целевой по:
• варианту использования «1С:Предприятия» (файловая или клиент-серверная);
• расположению компонентов системы;
• версиям программных продуктов (в т.ч. СУБД, технологической платформы, конфигураций).
Эталонная система работает на реальном оборудовании, параметры которого известны.


Чтобы более точно посчитать требования к оборудованию для нагрузочного теста необходимо знать:
• сценарий выполнения операций;
• действия пользователей в рамках каждой операции;
• загрузку оборудования при выполнении каждой операции;
• количество пользователей каждой операции.


Рекомендуется считать операцию ключевой при выполнении одного из следующих условий:

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

Источники:
ИТС: Оценка интегральной производительности системы по методике APDEX


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


Подключиться отладчиком к работающему виртуальному рабочему месту (ВРМ) в ходе теста возможно.


Если в регистрах накопления и бухгалтерии выключено разделение итогов и была явно зафиксирована работа с пересекающимися данными и таймауты из-за этого, то при проведении нагрузочного теста:

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

Источники:
• книга «Настольная книга 1С:Эксперта по технологическим вопросам», издание 2, с. 72-73.


Нагрузочный тест позволяет выявлять проблемы параллельной работы.
Источники:
• книга «Настольная книга 1С:Эксперта по технологическим вопросам», издание 2, с. 232.


Агент тест-центра — это клиентское приложение тестируемой информационной базы, которое при выполнении теста управляет работой виртуальных пользователей на том компьютере и в той сессии операционной системы, где оно запущено.
Перед запуском теста нужно обеспечить, чтобы на всех компьютерах, на которых будут работать выполняющие тестовые действия виртуальные пользователи, были запущены агенты тест-центра тестируемой информационной базы.
Источники:
• книга «Настольная книга 1С:Эксперта по технологическим вопросам», издание 2, с. 238.
• ИТС: Агенты Тест-центра


Виртуальное рабочее место (ВРМ) тест-центра можно запустить с ключом /TestManager.


Агенты тест-центра используются для запуска виртуальных рабочих мест (ВРМ) на конкретном сервере в конкретной сессии операционной системы.
Источники:
• книга «Настольная книга 1С:Эксперта по технологическим вопросам», издание 2, с. 238.
• ИТС: Агенты Тест-центра


Номер порта 1540 для управления клиентом тестирования с менеджера тестирования нельзя, если на компьютере установлен сервер «1С:Предприятие 8» с установками по умолчанию.


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


См. пункт 4


Общий индикатор прогресса теста в тест-центре показывает прогресс для прошедшего времени относительно настроек «Ограничений» сценария.


Действия на этапе «Инициализация» (тест-центр старше 2.0) выполняются каждым рабочим местом.


Нет необходимости запускать отдельное приложение для запуска агента тест-центра, если все виртуальные рабочие места (ВРМ), в том числе управляющее, запускаются из сеанса одного пользователя.


ВРМ — виртуальные рабочие места.
Источник:
• ИТС: Тест-центр. Основные понятия


Обработка с ИТС, преобразующая записанные платформой 8.3 действия пользователя в код на языке «1С:Предприятие 8», называется UILogToScript.epf.
Источник:
• ИТС: Преобразование журнала действий пользователя


Чтобы настройки тестовой обработки, заданные на форме обработки (по кнопке «Настроить…» справочника «Роли»), оказались сохраненными и применялись при проведении нагрузочного теста, они должны быть реквизитами обработки.


Для проведения нагрузочного тестирования в обычных формах управляющий сеанс обязательно должен быть запущен в управляемых формах. Агент должен быть запущен в любом режиме.


Один менеджер тестирования 8.3 может управлять несколькими клиентами тестирования, каждым — через свой отдельный порт.
Источники:
• книга «Настольная книга 1С:Эксперта по технологическим вопросам», издание 2, с. 251-253.


Если менеджер тестирования 8.3 управляет несколькими клиентами тестирования, и в каждом из клиентов он «нажимает» ровно одну кнопку на форме, начинающую длительную транзакцию (строки, вызывающие «нажатия», идут подряд друг за другом), то кнопки «будут нажаты» без задержек друг за другом, транзакции будут выполняться почти параллельно.
Источники:
• книга «Настольная книга 1С:Эксперта по технологическим вопросам», издание 2, с. 247.


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

  1. Начать замер на клиенте и автоматически завершить замер на клиенте. Кроме того, до момента завершения замера можно программно доопределить имя ключевой операции и комментарий замера времени (если они еще не были известны на момент начала замера).
  2. Начать замер на сервере и явно завершить его на сервере (по усмотрению разработчика).
  3. Начать замер на клиенте и явно завершить его на клиенте (по усмотрению разработчика). Кроме того, до момента завершения замера можно программно доопределить имя ключевой операции и комментарий замера времени (если они еще не были известны на момент начала замера).

Для выполнения замеров ключевой операции по сценариям № 1 и № 3 необходимо вызвать функцию НачатьЗамерВремени(Истина, Неопределено) общего модуля ОценкаПроизводительностиКлиент, которая вернет уникальный идентификатор замера.

Если параметр функции АвтоЗавершение = Истина, то замер времени завершится автоматически.

Если же параметр функции АвтоЗавершение = Ложь, то для завершения замера времени необходимо вызвать процедуру ЗавершитьЗамерВремени(УИДЗамера) общего модуля ОценкаПроизводительностиКлиент, где УИДЗамера – уникальный идентификатор, который вернула функция НачатьЗамерВремени.

В случае если КлючеваяОперация = Неопределено, необходимо до автозавершения замера установить имя ключевой операции вызовом процедуры УстановитьКлючевуюОперациюЗамера(УИДЗамера, КлючеваяОперация) общего модуля ОценкаПроизводительностиКлиент.

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

Для выполнения замеров ключевой операции по сценарию № 2 необходимо вызвать функцию НачатьЗамерВремени общего модуля ОценкаПроизводительности. Затем для завершения замера времени вызывать функцию ЗакончитьЗамерВремени общего модуля ОценкаПроизводительности.

Источники:
• ИТС: Оценка производительности


Если в ходе нагрузочного теста ключевая операция проведения документа начинается и заканчивается на клиенте, после чего выполнение тестовой обработки продолжается, начатый замер времени надо принудительно завершить методом ОценкаПроизводительностиКлиентСервер.ЗакончитьРучнойЗамерВремени(Идентификатор), который нужно вызвать из обработчика ожидания в тестовой обработке.

Petro Bazeliuk

Записи

Опыт работы с «1С:Предприятие 8» — более 10 лет, за это время реализовано 30 успешных проектов по итеративным методологиям Scrum и Kanban. Оптимальные решения для высоконагруженных ИБ с онлайном от 400 человек. Занимаюсь продвижением в массы системы контроля версий — git и методики git-flow, TDD, BDD, а также проработкой паттерна минимальной модификации конфигурации и внесением изменений без обновления базы данных. Время от времени участвую в проекте xUnitFor1C.

Комментариев нет

Be the first to start the conversation!

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

w

Connecting to %s