Как использовать транзакции в QTP/UFT

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

Транзакции в UFT Один из способов измерения времени выполнения выбранного участка теста — это метод обертывания.ping Эти шаги между оператором start и оператором end указывают продолжительность выполнения в результатах.

  • 🔘 Цель: Для оценки эффективности транзакции учитывается один бизнес-процесс, например, бронирование авиабилета, а не весь процесс целиком.
  • ☑️ Вставка: В меню «Вставка» добавляются операторы «Начало транзакции» и «Конец транзакции» вокруг выбранных шагов.
  • Заявления: Методы Services.StartTransaction и Services.EndTransaction выполняют одну и ту же задачу непосредственно в редакторе.
  • 🧪 Результаты: В заключительной части отчета указываются имя, статус, общая продолжительность и потерянное время.
  • 🇧🇷 Вложенность: Транзакции могут быть вложенными, но две открытые транзакции никогда не должны иметь одно и то же имя.
  • ⚠️ Интеграция: LoadRunner и Business Process Monitor считывают только данные, записанные внутри транзакции.

Как использовать транзакции в QTP UFT

In UFT Одна/QTPВы можете измерить время выполнения участка теста, определив транзакции. Транзакции внутри теста определяются путем заключения соответствующих разделов теста в операторы начала и окончания транзакций.

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

⚠️ Название продукта: Инструмент, поставляемый под названием HP QuickTest Professional (QTP), затем HP, а потом Micro Focus Unified Functional Testing, и сегодня продается компанией OpenText, чьи текущие справочные страницы называются именно так. OpenText Функциональное тестирование. Транзакции работают одинаково во всех этих релизах.

Как вставлять транзакции в QTP?

Вы также можете вставить транзакцию в транзакцию

В следующем видео показаны шаги по добавлению транзакции в UFT Один.

Нажмите здесь если видео недоступно

Например, вы можете захотеть отметить время, затраченное на забронировать рейс.

  1. In QTPВыберите соответствующий штат, в котором вы хотите начать транзакцию.
  2. Выберите «Вставить начальную транзакцию». Начать диалог транзакции Box Откроется
  3. Дайте транзакции подходящее имя, например «Бронирование времени».
  4. В тест добавлен оператор начала транзакции.
  5. Выберите состояние, в котором вы хотите завершить транзакцию
  6. Нажмите «Вставить» > «Завершить транзакцию».
  7. Диалоговое окно завершения транзакции Box Открывается со списком всех доступных транзакций.
  8. Нажмите «ОК». Добавлен оператор завершения транзакции
  9. Давайте проведем тест
  10. В результате оператор конечной транзакции дает время, необходимое для вставки заказа.

Примечание: Доступ к тем же диалоговым окнам осуществляется из Просмотр ключевых слови Шаг Generator Вставляет идентичные утверждения, не открывая меню «Вставка».

Отчеты о транзакциях в редакции

В диалоговых окнах выше можно ввести два текста. VBScript строки в тест. Спасибоping Самостоятельное создание этих шагов в редакторе происходит быстрее, как только шаблон становится понятен, и это единственный вариант, когда шаги генерируются кодом.

Services.StartTransaction "Booking Time"

' the steps that book the flight go here

Services.EndTransaction "Booking Time"

Оба метода относятся к объекту Services. Оператор start принимает один аргумент, оператор end — необязательный второй.

заявление аргументы Что она делает
Сервисы.Начало транзакции Имя Отсчет времени начинается с этой точки в ходе выполнения задания.
Services.EndTransaction Имя, [Статус] Останавливает измерение и записывает результат.

Необязательный статус определяет, как будет оцениваться транзакция. Отсутствие этого параметра равносильно успешной проверке. Авто.

  • Авто — выполняется, если между двумя операторами не произошла ошибка. Это значение по умолчанию.
  • Проходить — всегда заканчивается статусом «Пройдено».
  • Файл — всегда заканчивается статусом "Неудачно".
Services.StartTransaction "Booking Time"
Wait 1
Services.EndTransaction "Booking Time", Pass

Результаты транзакций чтения

После завершения теста на этапе "Завершение транзакции" в результатах выполнения отображаются четыре значения, поясняющие результаты измерения.

Поле результата Смысл
Название транзакции Имя, указанное в начальном операторе.
Конечный статус Результат «пройдено» или «не пройдено», определяется аргументом статуса или автоматически.
Общая продолжительность Время, прошедшее между начальным и конечным утверждениями.
Потерянное время Время в пределах продолжительности, которая UFT Один сам добавил

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

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

Вложенные и распределенные транзакции

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

Два правила обеспечивают безопасность гнездования.

  • Для каждого имени необходима соответствующая пара, при этом начальный оператор должен располагаться перед конечным оператором.
  • Одновременно может быть открыта только одна транзакция с заданным именем. Открытие второй транзакции с тем же именем завершает первую с ошибкой.

Распределенная транзакция идет дальше и включает в себя два теста: Services.StartDistributedTransaction открывает его в первом тесте и Services.EndDistributedTransaction Закрывает его во втором случае, сопоставляя с уникальным идентификатором, а не с именем. Он существует для монитора бизнес-процессов и LoadRunner сценарии, в которых считываются только данные, записанные внутри транзакции, и игнорируются все данные, находящиеся за ее пределами.

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

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

В результате выполнения транзакции в LoadRunner передается именованный результат со статусом. MercuryТаймер измеряет только прошедшие миллисекунды внутри скрипта, которые вы затем самостоятельно отображаете или преобразуете.

Проведите хронометраж несвязанной операции с помощью MercuryЗатем запустите таймер и передайте его значение в метод Services.AddWastedTime. Потерянное время вычитается из каждой открытой транзакции, поэтому отображаемая продолжительность отражает только тестируемый процесс.

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

В контроллере LoadRunner, а не в окне результатов выполнения. Отправляются только шаги, заключенные в транзакцию, поэтому все, что находится за пределами пары «начало-конец», никогда не попадает в отчет о производительности.

Да. Метод Services.SetTransaction принимает имя, продолжительность в секундах и статус, что позволяет скрипту регистрировать измерение, рассчитанное им самим, а не измерение, выполненное инструментом.

Модели машинного обучения устанавливают базовый уровень для каждой именованной транзакции во всех сборках и выдают предупреждение, когда длительность выходит за пределы нормального диапазона, выявляя медленную регрессию, которую можно было бы скрыть только по статусу "пройдено" или "не пройдено".

Да. Второй пилот GitHub Завершает формирование пары Services.StartTransaction и Services.EndTransaction из комментария, хотя имя транзакции и константа статуса все еще нуждаются в проверке на соответствие используемой системе именования.

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

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