Як використовувати транзакції в QTP/UFT

⚡ Розумний підсумок

Операції в UFT Один показник тривалості виконання вибраної частини тесту, шляхом обгортанняping ті кроки між початковим і кінцевим операторами, які повідомляють про тривалість у результатах виконання.

  • 🔘 Мета: Транзакція враховує час одного бізнес-потоку, такого як бронювання авіаквитка, а не весь тест.
  • ☑️ Вставка: Меню «Вставити» додає оператори «Початок транзакції» та «Завершення транзакції» навколо вибраних кроків.
  • ✅ Заяви: 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. Натисніть OK. Додається звіт про завершення операції
  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.StartTransaction ІМ'Я Починає вимірювання часу в цій точці пробігу
Services.EndTransaction Ім'я, [Статус] Зупиняє вимірювання та записує результат

Необов'язковий статус визначає, як оцінюватиметься транзакція. Його пропуск рівноцінний тому, що її схвалити. Авто.

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

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

Після завершення тесту крок «Завершення транзакції» в результатах виконання містить чотири значення, які пояснюють вимірювання.

Поле результатів Сенс
Назва транзакції Ім'я, вказане в початковому операторі
Кінцевий статус Пройдено чи не пройдено, визначається аргументом статусу або автоматичним налаштуванням
Загальна тривалість Час, що минув між початковим та кінцевим операторами
Втрачений час Час у межах тривалості, що UFT Один сам додав

Втрачений час має значення, оскільки інструмент запускає фонові процеси, поки транзакція відкрита.tracВізьміть це за загальну тривалість, щоб оцінити, скільки знадобилося б для самої програми, і це число варто порівнювати між збірками.

Тривалість роботи одного користувача є функціональним орієнтиром, а не показником навантаження. Паралелізм вимірюється тестування працездатності інструмент, і транзакція, яка є нормальною для одного користувача, все одно може провалитися під час роботи з сотнею.

Вкладені та розподілені транзакції

У списку вихідних кроків зазначається, що транзакція може знаходитися всередині іншої, саме так ізолюється повільний підкрок без втрати часу всього потоку. Зовнішня транзакція продовжує виконуватися, поки внутрішня відкривається та закривається.

Два правила забезпечують безпеку гніздування.

  • Кожному імені потрібна відповідна пара, а початковий оператор має стояти перед його кінцевим оператором.
  • Одночасно може бути відкрита лише одна транзакція з певним ім'ям. Відкриття другої транзакції з тим самим ім'ям завершує першу зі статусом «Не вдалося».

Розподілена транзакція йде далі та охоплює два тести: Services.StartDistributedTransaction відкриває його в першому тесті та Services.EndDistributedTransaction закриває його в другій, що відповідає унікальному ідентифікатору, а не імені. Він існує для Business Process Monitor та LoadRunner сценарії, які зчитують лише дані, записані всередині транзакції, та ігнорують усе, що знаходиться поза нею.

Коли крок усередині транзакції може законно завершитися невдачею, поєднайте транзакцію з сценарій відновлення таким чином, виконання досягає кінцевого оператора замість зупинкиping на півдорозі.

Поширені запитання

Транзакція повідомляє іменований результат зі статусом у результати виконання та в LoadRunner. MercuryТаймер вимірює лише мілісекунди, що минули всередині скрипта, які ви потім повідомляєте або конвертуєте самостійно.

Зафіксуйте час непов'язаної операції за допомогою MercuryТаймер, а потім передайте значення до Services.AddWastedTime. Втрачений час віднімається від кожної відкритої транзакції, тому зареєстрована тривалість відображає лише тестований потік.

Помилка перед кінцевим оператором зупиняє виконання за замовчуванням. На панелі «Виконання» в налаштуваннях тесту встановіть параметр помилки, щоб перейти до наступного кроку, щоб кінцевий оператор все одно був досягнутий, а транзакція записана.

У контролері LoadRunner, а не у вікні «Результати виконання». Надсилаються лише кроки, що містяться в транзакції, тому все, що знаходиться поза парою початку та кінця, ніколи не потрапляє до звіту про продуктивність.

Так. Services.SetTransaction приймає назву, тривалість у секундах та статус, що дозволяє скрипту реєструвати вимірювання, яке він сам розрахував, а не те, яке засікав інструмент.

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

Так. Копілот GitHub завершує пару Services.StartTransaction та Services.EndTransaction з коментаря, хоча назву транзакції та константу стану все ще потрібно перевірити на відповідність використаній домовленості про іменування.

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

Підсумуйте цей пост за допомогою: