ЯКЩО, Інакше, Кінець ЯКЩО, Існує в QTP/UFT з прикладом
⚡ Розумний підсумок
IF Інше Кінець операторів If нехай UFT та QTP Скрипти розгалужуються на основі умов виконання, тоді як властивість Exist перевіряє, чи з'являється об'єкт на екрані перед виконанням гілки, охоплюючи також ElseIf, вкладені If та Select Case.

Що таке оператор IF Else у UFT/QTP?
Оператор IF Else є найпоширенішою структурою умовного керування у VBScript, мові сценаріїв, яка використовується для написання UFT/QTP скрипти автоматизації. Це дозволяє скрипту приймати рішення під час виконання: коли умова має значення True, виконується один блок операторів, а коли вона має значення False, виконується інший блок. Тестери постійно покладаються на цю конструкцію, наприклад, для розгалуження скрипта, коли вхід успішний, а не невдалий, або коли об'єкт може з'явитися на екрані, або ні. Повний список умовних операторів та операторів порівняння, які підтримує VBScript, див. Умовний оператор VBScript путівник
Базова форма поєднує If…Then з необов'язковим блоком Else та завжди закривається оператором End If. UFT/QTP обчислює умову один раз. Якщо вона має значення True, виконуються лише оператори між Then та Else; якщо вона має значення False, виконуються лише оператори між Else та End If, і виконується лише одна гілка. Синтаксис нижче перевіряє числове значення та відображає окреме вікно повідомлення для кожного результату.
Dim iValue iValue = 25 If iValue > 18 Then MsgBox "Eligible" Else MsgBox "Not Eligible" End If
In UFT/QTP, умова майже завжди порівнює властивість об'єкта, результат контрольної точки або повернене значення властивості Exist, а не просте число, оскільки більшість скриптів перевіряють тестовану програму, а не виконують арифметичні дії. Кожен приклад далі на цій сторінці побудовано на тому ж шаблоні If…Then…Else…End If, показаному вище; змінюється лише умова. Яку б умову ви не використовували, завжди перевіряйте обидва шляхи True та False принаймні один раз, перш ніж переміщувати скрипт до набору регресій.
ЯКЩО…Тоді…ІнакшеЯкщо…ІнакшеОператор у UFT/QTP
Звичайна умова If Else завжди вибирає лише між двома результатами. Коли скрипту потрібно перевірити три або більше взаємовиключних умов, VBScript додає ElseIf до того ж блоку. UFT/QTP перевіряє кожну умову зверху вниз і запускає перший блок, умова якого має значення True; кожен інший блок, включаючи завершальний Else, пропускається. Це робить скрипт набагато читабельнішим, ніж вкладення кількох непов'язаних блоків If один в один.
- Умови обчислюються зверху вниз, і обчислення зупиняється на першій умові, яка є Істинною.
- Кожне ключове слово ElseIf потребує власного Then та власної умови.
- Заключний оператор Else є необов'язковим і виконується лише тоді, коли жодна з наведених вище умов не відповідає дійсності.
- Тільки один End If замикає весь блок, незалежно від того, скільки гілок ElseIf він містить.
Dim iMarks iMarks = 75 If iMarks >= 90 Then MsgBox "Grade A" ElseIf iMarks >= 75 Then MsgBox "Grade B" ElseIf iMarks >= 50 Then MsgBox "Grade C" Else MsgBox "Fail" End If
Наведений вище скрипт виводить різні оцінки для кожного діапазону балів і припиняє перевірку подальших умов у момент, коли одна з гілок отримує значення True, що забезпечує ефективність великих дерев рішень навіть під час тривалого автоматизованого запуску.
Той самий шаблон застосовується безпосередньо до перевірок інтерфейсу користувача: скрипт може зчитувати значення поля стану та використовувати ElseIf для перенаправлення на обробку результатів проходження, попередження або невдачі залежно від знайденого тексту, замість трьох окремих блоків If, кожен з яких переоцінює поле незалежно.
Вкладений оператор If у UFT/QTP
Вкладений блок If розміщує один повний блок If…End If всередині секції Then або Else іншого блоку If. UFT/QTP спочатку вирішує зовнішню умову та обчислює внутрішню умову If лише тоді, коли вводиться ця зовнішня гілка. Цей шаблон підходить для перевірок, які залежать одна від одної, наприклад, підтвердження того, що користувач достатньо старий, щоб голосувати, а потім знову розгалужується за статтю, а не об'єднує кожну умову в один довгий вираз за допомогою And та Or. Забезпечте неглибоке вкладення, зазвичай не більше двох або трьох рівнів, оскільки кожен додатковий шар ускладнює виконання скрипта. tracе та налагодження. В UFT/QTP У термінах вкладений If зазвичай спочатку перевіряє операційну систему, а потім знову переходить до стану браузера або програми, тому внутрішній блок виконується лише після підтвердження зовнішнього контексту.
💡 Порада: Зробіть відступ кожного вкладеного блоку на один додатковий рівень і надайте кожному End If окремий рядок. Послідовний відступ – це найшвидший спосіб виявити відсутній End If, перш ніж скрипт завершить роботу з помилкою.
Dim iAge, sGender iAge = 20 sGender = "Male" If iAge >= 18 Then If sGender = "Male" Then MsgBox "Eligible male voter" Else MsgBox "Eligible female voter" End If Else MsgBox "Not eligible to vote" End If
Виберіть твердження справи в UFT/QTP
Select Case – це альтернатива довгому ланцюжку ElseIf, коли кожна гілка перевіряє ту саму змінну на різне фіксоване значення. UFT/QTP обчислює вираз у рядку Select Case один раз, потім порівнює його з кожним значенням Case по порядку та запускає перший блок, який відповідає цьому параметру. Додатковий Case Else перехоплює будь-яке значення, яке не охоплює жоден із перелічених випадків, подібно до завершального Else у блоці If. Оскільки змінна порівняння записується лише один раз, довгий блок Select Case також легше оновлювати пізніше, ніж еквівалентний ланцюжок операторів ElseIf, який повторює ту саму назву змінної в кожній гілці.
Значення регістру порівнюються за принципом рівності та чутливі до регістру, тому «Chrome» та «chrome» вважаються різними збігами, якщо значення спочатку не нормалізовано, наприклад, за допомогою функції LCase. Див. Оголошення змінних VBScript посібник про те, як Dim та типи даних впливають на ці порівняння.
Dim sBrowserName sBrowserName = "Chrome" Select Case sBrowserName Case "Chrome" MsgBox "Launching Chrome" Case "Firefox" MsgBox "Launching Firefox" Case "Edge" MsgBox "Launching Edge" Case Else MsgBox "Browser not supported" End Select
| ЗАЯВА | НАЙКРАЩЕ ДЛЯ | КІЛЬКІСТЬ УМОВ | ЧИТАТЛИВІСТЬ У ВЕЛИКОМУ МАСШТАБІ |
|---|---|---|---|
| Якщо…Інакше | Два результати | 1 умова | Високий |
| Якщо…ІнакшеЯкщо…Інакше | Кілька непов'язаних між собою умов | 3 або більше умов | Падає, коли гілки ростуть |
| Виберіть регістр | Багато фіксованих значень однієї змінної | Будь-яке число | Залишається високим |
Випадок також може збігатися з діапазоном за допомогою ключового слова Is, наприклад, Case Is > 90 всередині блоку Select Case, що дозволяє одному випадку охоплювати кожне значення вище порогового значення, замість того, щоб перераховувати кожне окремо.
Вибирайте «Вибрати регістр» (Select Case) щоразу, коли скрипт перевіряє одну змінну на наявність багатьох можливих значень; залишайте «If…ElseIf» для умов, які порівнюють різні змінні або використовують діапазони та логічні оператори.
Як використовувати IF Else з властивістю Exist у UFT
Натисніть тут якщо відео недоступне
Властивість Exist повертає True або False залежно від того, чи об'єкт наразі присутній у тестованій програмі, що робить її природною умовою для поєднання з If Else. Наведений нижче приклад повторює класичний сценарій функціональності входу для Бронювання рейсів додаток з Тестування серія, де скрипт повинен розгалужуватися до шляху негативного сценарію, коли з'являється діалогове вікно помилки, або до шляху позитивного сценарію, коли його немає. Це відображає те саме Сценарій тесту розглянуто у відео вище.
- Запишіть два окремі сценарії: один, який входить з дійсною комбінацією імені агента та пароля, і один, який входить з недійсною комбінацією.
- Вставте крок If Else одразу після кроку входу, щоб обидва записи могли виконуватися в одному об'єднаному скрипті.
- Встановіть умову перевірки наявності вікна інформації про помилку за допомогою Існує властивість замість кроку Click.
- Перемістіть кроки негативного сценарію, такі як закриття вікна помилки та діалогового вікна входу, всередину блоку If.
- Перемістіть кроки позитивного сценарію, такі як закриття вікна бронювання авіаквитків, всередину блоку Else.
- Збережіть об'єднаний скрипт і запустіть його як для дійсного, так і для недійсного набору облікових даних, щоб переконатися, що кожен шлях виконується правильно.
Dim bLoginFailed bLoginFailed = Browser("Flight Reservation").Page("Flight Reservation").WinObject("Error").Exist(5) If bLoginFailed Then 'Negative scenario - invalid login Browser("Flight Reservation").Page("Flight Reservation").WinObject("Error").Close Dialog("Login").Close Else 'Positive scenario - valid login Window("Flight Reservation").Close End If
Окрім If та Else, VBScript також підтримує While…Wend та Для…Наступні цикли для повторення, а також оператори ElseIf та Select Case, розглянуті вище, для додаткових розгалужень. Поєднання цих конструкцій з властивістю Exist дозволяє UFT/QTP Скрипт обробляє як позитивний, так і негативний тестовий сценарій без ручного втручання.
⚠ Примітка: Передача довгого значення до Exist, такого як Exist(10), робить UFT довше чекати на об'єкт, перш ніж повернути значення False, що корисно для діалогових вікон, що повільно завантажуються, але може уповільнити весь набір, якщо використовувати на кожному кроці. Зарезервуйте тривале очікування для справді повільних об'єктів. Короткий, добре підібраний тайм-аут забезпечує надійність та швидкість виконання комбінованого сценарію позитивного та негативного сценаріїв у безперервних тестових запусках.
