Последующие тесты можно усложнять, используя навыки, приобретенные при выполнении этого простейшего теста. Для организации любого теста нужно научиться делать еще ряд вещей:
Как это делать, объясняется ниже.
Организация замеров времени выполнения операций и их хранения
Тест-центр содержит средства, позволяющие хранить информацию о результатах теста.
Для этого процедура должна содержать код:
Компонента = КипВнешнийКомпонент.ПолучитьИнструменты();
ВремяНачала = КипВнешнийКомпонент.ЗначениеТаймера(Компонента);
// выполнение действия
//...
ВремяОкончания = КипВнешнийКомпонент.ЗначениеТаймера(Компонента);
ВремяВсего = (ВремяОкончания – ВремяНачала) / 1000;
ТЦЗаписатьПоказатель("ВремяВсего", ВремяВсего);
Иллюстрация этого будет приведена ниже, когда дело дойдет до примера теста.
Однако на практике иногда требуется сразу оценивать результаты по методике APDEX. Тогда быстрее и проще организовать это по-другому, с помощью подсистемы «Оценка производительности» из состава БСП. Кроме того, она уже может быть встроена в конфигурацию. Как проверить, встроена ли она и как ее встроить, см. раздел .

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

Рис. 4.21.3. Организация записи в протокол
Процедура ТЦОбщий.ЗаписатьВЖурнал() имеет также возможности по записи сообщений с выделенным уровнем «Ошибка» или «Предупреждение». Как этим пользоваться, см. саму процедуру.
Внимание!
Протокол, записанный таким способом, использует журнал регистрации. Это означает, что при переносе базы, например, через dt, он перенесен не будет.
Организация повторов выполнения действий и пауз между ними
Будем считать, что тест не должен длиться дольше определенного времени, а между повторами действий будут одинаковые паузы.
Для этого добавим нашей обработке ТЦУниверсальная два реквизита – ДлительностьРаботы и Пауза (оба с типом Число 10,0) и разместим их на форме (см. рис. 4.21.4). Для определенности будем считать, что речь идет о секундах. Теперь если в режиме исполнения зайти в настройку тестовой обработки через справочник Роли и ввести значения этим реквизитам, они сохранятся системой.
 
Рис. 4.21.4. Созданные реквизиты и их размещение на форме
Количество повторов при таком подходе можно примерно вычислить, разделив значение реквизита ДлительностьРаботы на сумму среднего времени выполнения нашего действия (записи платежки) и реквизита Пауза.
Возвращаемся в процедуру ТЦВыполнить() и дописываем код, обеспечивающий этот функционал (см. рис. 4.21.5).

Рис. 4.21.5. Код организации повторов и пауз
Организация сбора статистики об ошибках
Можно собирать статистику ошибок средствами Тест-центра, однако иногда на практике удобнее это делать просто включив технологический журнал сервера «1С» на событие EXCP, как описано в разделе , и вести классификацию и подсчет ошибок по нему.
Блокировка мешающего функционала
Во-первых, через процедуру ПередЗавершениемРаботыСистемы() или ПриЗавершенииРаботыСистемы() в модуле приложения (обычного или управляемого) надо найти вызов формы вопроса о завершении работы и заглушить его, чтобы это подтверждение никогда не запрашивалось. Установки флажка Больше не спрашивать может быть недостаточно, а подтверждать завершение работы для большого количества сеансов при выгрузке виртуальных пользователей – занятие утомительное.
Во-вторых, через процедуры ПередНачаломРаботыСистемы() и ПриНачалеРаботыСистемы() надо найти и заглушить вызов информационных (например, проверки актуальности релиза конфигурации) и рекламных окон, чтобы эти окна никогда не появлялись. Установки флажков Больше не спрашивать, снятия флажков Показывать при начале работы и пр. может быть недостаточно. Даже если эти окна не запрашивают никакого подтверждения от пользователя, их вызов тратит время и ресурсы сервера. Если же запрашивают, тратят еще и силы оператора.
Проверка внесенных изменений
Дальше, чтобы проверить, насколько правильно нами все организовано, нужно повторить простой тест, описанный выше.
Необходимо не забыть установить константу ВыполнятьЗамерыПроизводительности в Истину (для чего, например, написать обработку) и настроить длительность выполнения и паузы для обработки в роли «Первая роль».
В процедуру ТЦВыполнить() внесем еще код, иллюстрирующий методику замеров и хранения показателей средствами Тест-центра, а также получение номера рабочего места ТЦНомерВРМ().

Рис. 4.21.6. Итоговый код процедуры «ТЦВыполнить()»
Описанный тест по сути является шаблоном полноформатного теста, поскольку для выполнения реальной работы в нем может быть достаточно заменить создание и запись платежного поручения на действия, необходимые в вашей исследуемой базе, а большинство необходимых вещей в нем уже есть.
Результат записи показателей и протокол будут показаны в документе Результат теста, форма которого откроется после завершения теста автоматически (см. рис. 4.21.7).
 
Рис. 4.21.7. Показатели и протокол теста
Настроив справочник Ключевые операции, можно пользоваться обработкой Оценка производительности для оценки результатов замера по методике APDEX (см. рис. 4.21.8).

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