Reporter.ReportEvent in UFT/QTP с примером

⚡ Умное резюме

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

  • 🎯 Определение: Reporter.ReportEvent записывает пользовательский статус и сообщение в UFT Дерево результатов, независимое от встроенных контрольных точек.
  • 🧩 Синтаксис: Метод принимает EventStatus, ReportStepName, Details и необязательный ImageFilePath в указанном порядке.
  • 🚦 Константы состояния: Параметры micPass, micFail, micDone и micWarning задают цвет шага и определяют, изменяется ли статус выполнения.
  • 🖼️ Скриншоты: Передайте путь к захваченному растровому изображению в качестве четвертого аргумента, чтобы прикрепить изображение к шагу, на котором произошла ошибка.
  • ⚙️ Объекты: Параметры Reporter.Filter, Reporter.ReportPath и Reporter.RunStatus позволяют управлять тем, что записывается в лог и куда сохраняются результаты.
  • 🧪 Примеры: Оберните ReportEvent в конструкцию If…Then, чтобы на каждом шаге отображался результат выполнения или невыполнения, исходя из реальных данных.
  • ???? Фильтрация: Во время выполнения CI установите параметр Reporter.Filter в значение rfEnableErrorsAndWarnings, чтобы пройденные шаги не скрывали реальные ошибки.
  • 📊 Пользовательские отчеты: Объедините файл results.xml с XSL-библиотекой или библиотекой VBScript, чтобы представить результаты в том виде, в котором их ожидают заинтересованные стороны.

Что такое 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.

Часто задаваемые вопросы (FAQ)

ReportEvent записывает обычный текст в дерево результатов. ReportHTMLEvent доступен с момента... UFT 12.52, принимает HTML в названии шага и подробностях, что позволяет выделять текст жирным шрифтом, цветом или форматировать его в окне просмотра результатов выполнения.

Нет. Только micFail изменяет общий статус выполнения на «Неудачно». micDone и micWarning записывают шаг в дерево результатов для получения информации, но тест может завершиться как «Пройдено», даже если были зарегистрированы предупреждения.

Да. С помощью метода CaptureBitmap объекта можно захватить растровое изображение, сохранить его в файл и передать путь к этому файлу в качестве необязательного четвертого аргумента ImageFilePath. UFT Отображает изображение в панели «Захваченные данные» для данного шага.

Да. Искусственный интеллект, помогающий программировать, может генерировать шаблоны If…Then и ReportEvent на основе описания проверки на простом языке, а также отмечать скрипты, которые неправильно используют micFail или пропускают Details. Тестировщику все равно следует убедиться, что зарегистрированный статус соответствует реальному результату.

Инструменты мониторинга на основе ИИ могут автоматически подводить итоги выполнения и выделять аномалии, но Reporter.ReportEvent по-прежнему предоставляет точные, контролируемые разработчиком названия шагов и статусы, которые используются этими инструментами. Большинство команд используют оба инструмента одновременно, а не заменяют один другим.

Подведем итог этой публикации следующим образом: