Reporter.ReportEvent in UFT/QTP с примером
⚡ Умное резюме
Reporter.ReportEvent in UFT/QTP Отправляет пользовательские сообщения о прохождении, неудаче, предупреждении и информационные сообщения непосредственно в средство просмотра результатов выполнения, используя константы статуса micPass, micFail, micDone и micWarning, предоставляя тестировщикам пошаговую запись того, что фактически сделал автоматизированный скрипт.

Что такое Reporter.ReportEvent в UFT/QTP?
Репортер.ReportEvent является стандартным методом, встроенным в UFT/QTP (теперь продается как OpenText/Микрофокус UFT Один из способов — запись пользовательского, удобочитаемого сообщения непосредственно в окно результатов теста. В отличие от автоматических оценок «пройдено» или «не пройдено», генерируемых встроенными контрольными точками, вызов ReportEvent позволяет тестировщику точно определить, что именно будет записано в лог, когда и как это должно быть обозначено.
Эта HP QTP учебник демонстрирует использование функции Репортер.ReportEvent и Форматирование результатовВ этом руководстве вам предлагается создать небольшой скрипт, и выполнение этого упражнения — самый быстрый способ увидеть, как пользовательские отчеты обновляют дерево результатов в режиме реального времени.
Нажмите здесь если видео недоступно
Вызов Reporter.ReportEvent имеет первостепенное значение в автоматизации, поскольку скрипт обычно выполняется в автоматическом режиме, по расписанию или внутри конвейера CI/CD. Файл результатов выполнения становится единственной записью о произошедшем, поэтому шаг, который завершается с ошибкой без объяснения причин или проходит без объяснения, значительно затрудняет отладку в дальнейшем. Добавление явного вызова ReportEvent после критического действия превращает дерево результатов в читаемый пошаговый журнал аудита, который тестировщик, разработчик или менеджер могут просмотреть, не открывая сам скрипт.
Это отличается от контрольной точки объекта, которая UFT Генерирует отчеты автоматически, используя собственное имя шага по умолчанию. Метод Reporter.ReportEvent позволяет добавлять понятную для бизнеса формулировку, например, «Отображено подтверждение заказа», вместо общего «Контрольная точка пройдена для объекта WebEdit», что гораздо проще для понимания нетехническим заинтересованным лицом в итоговом отчете. Метод работает одинаково независимо от того, нацелен ли скрипт на веб-страницу или на что-либо другое. Windows настольное приложение или терминал мэйнфрейма, поскольку Reporter является глобальным объектом, а не свойством какого-либо отдельного тестового объекта.
Guru99 автора UFT/QTP Этот метод рассматривается сразу после этого. Операторы If, Else и ExistsПотому что большинство вызовов Reporter.ReportEvent находятся внутри условного блока, который определяет, следует ли сообщать о результате как о micPass или micFail.
Синтаксис Reporter.ReportEvent и значения EventStatus
Вы можете использовать Репортер.ReportEvent для сообщения о пользовательских этапах тестирования в Micro Focus UFTДерево результатов тестирования. Метод принимает три обязательных аргумента и один необязательный аргумент в фиксированном порядке, как показано ниже.
Reporter.ReportEvent EventStatus, ReportStepName, Details [, ImageFilePath]
Статус события задает значок и цвет, отображаемые для шага, и может изменить общий статус выполнения; ReportStepName — это краткая метка, которая отображается в дереве результатов тестирования и обычно записывается как ожидаемый результат; Описание содержит более подробное описание, как правило, фактически наблюдаемый результат; и необязательный параметр. ImageFilePath Прикрепляет к этому конкретному шагу снимок экрана, сделанный ранее в скрипте.
| СТОИМОСТЬ | КОНСТАНТА | ВЛИЯНИЕ НА РЕЗУЛЬТАТЫ | ВЛИЯНИЕ НА СТАТУС ВЫПОЛНЕНИЯ |
|---|---|---|---|
| 0 | micPass | В дереве результатов этап отображается как "Пройден". | Без изменений; тест по-прежнему считается пройденным. |
| 1 | micFail | В дереве результатов этот шаг отображается как «Сбой». | Общий статус выполнения изменился на "Сбой". |
| 2 | micDone | Шаг отображается в виде информационного сообщения. | Статус "Зачет/Незачет" остается без изменений. |
| 3 | micWarning | Этот шаг отображается в виде предупреждения. | Статус "Зачет/Незачет" остается без изменений. |
Каждой константе также можно передать её числовое значение вместо имени, поэтому Reporter.ReportEvent 1, “Step”, “Detail” ведет себя точно так же Reporter.ReportEvent micFail, “Step”, “Detail”Использование именованных констант упрощает чтение скрипта, который впоследствии будет поддерживать другой тестировщик.
В скрипте обычно несколько вызовов ReportEvent вложены в одно действие: запись micDone перед началом действия, одна запись micPass или micFail для проверки нажатия клавиши и дополнительные записи micWarning для любых необычных событий, замеченных в процессе выполнения.
- При выполнении тестовых сценариев с использованием инструментов автоматизации некоторым пользователям может быть сложно понять исходные результаты тестирования. Вы можете использовать... results.xml — файл XSL, который отображает результаты теста так, как вам удобно..
- Вы также можете использовать VBScript библиотечные функции для Сохраните результаты в файл XLS или текстовый файл. для освещения событий за пределами UFT.
Как использовать Reporter.ReportEvent: практические примеры
Знать синтаксис — это одно; а вот увидеть его в реальном скрипте — вот что позволяет понять работу четырех констант состояния. В приведенном ниже примере проверка заключена в оператор If…Then…Else, а затем сообщается о прохождении или непрохождении с помощью Reporter.ReportEvent, так что результат отображается в дереве результатов именно там, где ожидает его рецензент.
If Browser("Guru99 Demo").Page("Guru99 Demo").WebButton("Login").Exist(5) Then Reporter.ReportEvent micPass, "Login button check", "Login button was found on the page" Else Reporter.ReportEvent micFail, "Login button check", "Login button was not found on the page" End If
Это отражает закономерность, показанную в Guru99 автора Условные операторы VBScript В этом учебном примере блок If…Then…Else выбирает один из двух вариантов; единственное отличие здесь в том, что каждая ветвь также вызывает Reporter.ReportEvent для записи результата в лог.
Используйте micDone для этапа, носящего исключительно информационный характер, и micWarning Когда что-то выглядит необычно, но не должно привести к полному сбою выполнения. Следующий фрагмент кода регистрирует этап ввода данных как «Выполнено», затем помечает медленный ответ как «Предупреждение» и прикрепляет снимок экрана, используя необязательный аргумент ImageFilePath.
Reporter.ReportEvent micDone, "Enter search text", "Typed 'UFT tutorial' into the search box" errorImage = "C:\Results\SearchDelay.png" Browser("Guru99 Demo").CaptureBitmap errorImage, True Reporter.ReportEvent micWarning, "Search response time", "Results took longer than 5 seconds to load", errorImage
Сохранить ReportStepName короткий и держать Описание конкретно указать фактический результат. Рецензент, сканирующий сотни записанных шагов после неудачного ночного запуска, должен иметь возможность определить, что произошло, не открывая сам скрипт, а единообразный шаблон именования для каждого действия значительно ускоряет это сканирование.
Команды, которые вызывают ReportEvent из множества скриптов, часто переносят эту логику в общую функцию VBScript, например, LogStep(status, name, details), чтобы каждый скрипт создавал согласованное дерево результатов без повторения одного и того же блока If…Then.
Свойства объекта Reporter: Filter, ReportPath и RunStatus
Объект Reporter.ReportEvent — не единственный член объекта Reporter. Три дополнительных свойства предоставляют дополнительный контроль над содержимым результатов и их местоположением. UFT Они хранят их и часто встречаются в системах автоматизации производства.
| PROPERTY | ЦЕЛЬ | ТИПИЧНОЕ ИСПОЛЬЗОВАНИЕ |
|---|---|---|
| ФИЛЬТР | Управляет тем, какие типы событий записываются в результаты. | Reporter.Filter = rfEnableErrorsAndWarnings скрывает пройденные шаги в длительном процессе выполнения. |
| ReportPath | Только для чтения; возвращает папку, где хранятся результаты текущего запуска. | resultsFolder = Reporter.ReportPath |
| RunStatus | Только для чтения; возвращает текущий статус "пройдено/не пройдено" выполнения на данный момент. | Если Reporter.RunStatus = micFail, то выполнить действие "Выход". |
Параметр Reporter.Filter принимает четыре значения: 0 или rfEnableAll отображает все события и является значением по умолчанию; 1 или rfEnableErrorsAndWarnings скрывает пройденные шаги; 2 или rfEnableErrorsOnly скрывает как пройденные шаги, так и предупреждения; и 3 или rfDisableAll полностью отключает логирование результатов. Проверка Reporter.RunStatus в середине выполнения скрипта позволяет тесту развивать собственную логику, например, пропускать определенные шаги.ping Оставшиеся шаги в действии после того, как предыдущий шаг уже не удался.
Поскольку ReportPath и RunStatus доступны только для чтения, вы не можете присвоить им значение; используйте их для чтения информации о текущем запуске, например, для записи пути к папке с результатами в файл журнала в начале скрипта или для прерывания длительного действия после фатальной ошибки. Чтение этих свойств добавляет незначительные накладные расходы, поэтому можно безопасно проверять Reporter.RunStatus после каждого основного шага в длительном наборе регрессионных тестов, не замедляя выполнение каким-либо заметным образом.
лучшие практики для Reporter.ReportEvent в UFT
Несколько полезных привычек позволяют создавать информативные отчеты, которые не создают лишней информации.
- Используйте micFail только для реальных сбоев: Каждый вызов micFail меняет значение Reporter.RunStatus, поэтому использование его для косметических проблем скрывает настоящие дефекты, возникающие позже в ходе того же запуска.
- Напишите ReportStepName так, как будет выглядеть ожидаемый результат: Рецензент должен понимать суть проверки, исходя только из названия этапа, не читая столбец «Подробности».
- Делайте скриншоты только в случае сбоя: Передача параметра ImageFilePath на каждом шаге быстро заполняет папку с результатами и замедляет выполнение программы, принося мало пользы.
- Фильтрация зашумленных серий: Установите для параметра Reporter.Filter значение rfEnableErrorsAndWarnings для запланированных или CI-запусков, чтобы пройденные шаги не скрывали важные ошибки.
- Централизуйте логику: Оберните вызовы Reporter.ReportEvent внутрь многократно используемого компонента. действие или библиотеку функций, чтобы каждый скрипт в наборе скриптов регистрировал результаты одинаково.
- Для читателей, не обладающих техническими знаниями: Объедините файл results.xml с пользовательским XSL-скриптом, если заинтересованным сторонам за пределами команды контроля качества необходимо просмотреть результаты, не открывая файл results.xml. UFT.
