AKO, Inače, Kraj AKO, Postoji u QTP/UFT s Primjerom

⚡ Pametni sažetak

IF Else End If naredbe let UFT i QTP Skripte se granaju na temelju uvjeta izvođenja, dok svojstvo Exist provjerava pojavljuje li se objekt na zaslonu prije izvršenja grane, pokrivajući i ElseIf, ugniježđeni If i Select Case.

  • 🔀 Osnovna sintaksa: If…Then se uparuje s opcionalnim Else blokom i zatvara s End If, pokrećući točno jednu granu po evaluaciji.
  • 🧮 Višestruki uvjeti: ElseIf provjerava uvjete od vrha do dna i zaustavlja se na prvom podudaranju True, zamjenjujući duge lance odvojenih If blokova.
  • 🪆 Ugniježđena logika: Postavljanjem If unutar drugog Then ili Else odjeljka obrađuje se zavisne provjere; radi čitljivosti ugniježdite na dvije ili tri razine.
  • 🎯 Odaberite slučaj: Uspoređuje jednu varijablu s nekoliko fiksnih vrijednosti i čita se jasnije od dugog ElseIf lanca.
  • 🔍 Postojeće svojstvo: Vraća True ili False za to je li objekt na ekranu, standardni uvjet za grananje If Else.
  • 🧪 Primijenjeni primjer: Kombinirajte If Else s Exist kako biste automatski usmjerili skriptu u negativnu ili pozitivnu putanju prijave za rezervaciju leta.
  • 🤖 AI pomoć: Alati umjetne inteligencije mogu izraditi blokove If Else i Select Case te označiti nedostajuće naredbe End If tijekom otklanjanja pogrešaka.

Što je IF Else naredba u UFT/QTP?

Naredba IF Else je najčešća uvjetna kontrolna struktura u VBScriptu, skriptnom jeziku koji se koristi za pisanje UFT/QTP skripte za automatizaciju. Omogućuje skripti donošenje odluke tijekom izvođenja: kada se uvjet ocijeni kao True, izvršava se jedan blok naredbi, a kada se ocijeni kao False, izvršava se drugi blok. Testeri se stalno oslanjaju na ovu konstrukciju, na primjer za grananje skripte kada prijava uspije, a kada ne uspije, ili kada se objekt može, ali i ne mora pojaviti na zaslonu. Za potpuni popis uvjetnih naredbi i operatora usporedbe koje VBScript podržava, pogledajte VBScript uvjetna naredba vodič.

Osnovni oblik uparuje If…Then s opcionalnim blokom Else i uvijek se zatvara s End If. UFT/QTP procjenjuje uvjet jednom. Ako je True, izvršavaju se samo naredbe između Then i Else; ako je False, izvršavaju se samo naredbe između Else i End If, a izvršava se samo jedna grana. Sintaksa u nastavku provjerava numeričku vrijednost i prikazuje drugačiji okvir s porukom za svaki ishod.

Dim iValue
iValue = 25
If iValue > 18 Then
    MsgBox "Eligible"
Else
    MsgBox "Not Eligible"
End If

In UFT/QTP, uvjet gotovo uvijek uspoređuje svojstvo objekta, rezultat kontrolne točke ili povratnu vrijednost svojstva Exist, a ne običan broj, budući da većina skripti validira aplikaciju koja se testira umjesto da izvodi aritmetičke operacije. Svaki primjer dalje na ovoj stranici temelji se na istom uzorku If…Then…Else…End If prikazanom gore; mijenja se samo uvjet. Koji god uvjet koristili, uvijek testirajte i putanju True i False barem jednom prije premještanja skripte u regresijski paket.

AKO…Zatim…InačeAko…Inače naredba u UFT/QTP

Običan If Else uvijek bira samo između dva ishoda. Kada skripta treba testirati tri ili više međusobno isključivih uvjeta, VBScript dodaje ElseIf istom bloku. UFT/QTP Provjerava svaki uvjet od vrha do dna i pokreće prvi blok čiji je uvjet True; svaki ostali blok, uključujući i prateći Else, se preskače. To čini skriptu puno čitljivijom nego ugniježđivanje nekoliko nepovezanih If blokova jednog unutar drugog.

  • Uvjeti se procjenjuju od vrha prema dnu, a procjena se zaustavlja na prvom uvjetu koji je istinit.
  • Svaka ključna riječ ElseIf treba svoj vlastiti Then i vlastiti uvjet.
  • Naknadni Else je opcionalan i izvršava se samo kada se ne ispunjava nijedan od gore navedenih uvjeta.
  • Samo jedan End If zatvara cijeli blok, bez obzira na to koliko ElseIf grana sadrži.
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

Gornji skript ispisuje različitu ocjenu za svaki raspon rezultata i zaustavlja provjeru daljnjih uvjeta u trenutku kada jedna grana dobije vrijednost True, što održava velika stabla odlučivanja učinkovitima čak i unutar dugog automatizacijskog izvođenja.

Isti obrazac se primjenjuje izravno na provjere korisničkog sučelja: skripta može pročitati vrijednost polja statusa i koristiti ElseIf za usmjeravanje u obradu prolaza, upozorenja ili neuspjeha ovisno o tekstu koji pronađe, umjesto tri odvojena If bloka koji svaki samostalno ponovno procjenjuju polje.

Ugniježđena If naredba u UFT/QTP

Ugniježđeni If smješta jedan cijeli If…End If blok unutar dijela Then ili Else drugog If bloka. UFT/QTP prvo rješava vanjski uvjet i procjenjuje unutarnji If tek kada se uđe u tu vanjsku granu. Ovaj uzorak odgovara provjerama koje ovise jedna o drugoj, kao što je potvrda da je korisnik dovoljno star za glasanje, a zatim ponovno grananje po spolu, umjesto kombiniranja svakog uvjeta u jedan dugi izraz s And i Or. Ugniježdite plitko, općenito ne više od dvije ili tri razine, jer svaki dodatni sloj otežava izvršavanje skripte. trace i ispravljanje pogrešaka. U UFT/QTP Ugniježđeni If obično prvo provjerava operativni sustav, a zatim se ponovno grana na stanje preglednika ili aplikacije, tako da se unutarnji blok pokreće tek nakon što se potvrdi vanjski kontekst.

💡 Savjet: Uvucite svaki ugniježđeni blok za jednu dodatnu razinu i dajte svakom End If-u zaseban redak. Dosljedno uvlačenje je najbrži način za hvatanje nedostajućeg End If-a prije nego što skripta zakaže tijekom izvođenja.

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

Odaberite izjavu o slučaju u UFT/QTP

Select Case je alternativa dugom ElseIf lancu kada svaka grana testira istu pojedinačnu varijablu u odnosu na drugu fiksnu vrijednost. UFT/QTP jednom procjenjuje izraz u retku Select Case, zatim ga uspoređuje sa svakom vrijednošću Case redom i pokreće prvi blok koji se podudara. Opcionalna naredba Case Else hvata bilo koju vrijednost koju nijedan od navedenih slučajeva ne pokriva, slično završnoj naredbi Else u bloku If. Budući da se varijabla usporedbe zapisuje samo jednom, dugi blok Select Case je također lakše ažurirati kasnije od ekvivalentnog lanca naredbi ElseIf koji ponavlja isti naziv varijable u svakoj grani.

Vrijednosti velikih i malih slova uspoređuju se korištenjem jednakosti i razlikuju se od velikih i malih slova, pa se "Chrome" i "chrome" računaju kao različita podudaranja osim ako se vrijednost prvo ne normalizira, na primjer pomoću funkcije LCase. Pogledajte Deklaracija VBScript varijable vodič o tome kako Dim i tipovi podataka utječu na ove usporedbe.

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
IZJAVA NAJBOLJE ZA BROJ UVJETA ČITLJIVOST U VELIKOJ MJERI
Ako…Inače Dva ishoda 1 stanje visok
Ako…InačeAko…Inače Nekoliko nepovezanih stanja 3 ili više stanja Kapi kako grane rastu
Odaberite Case Mnoge fiksne vrijednosti jedne varijable Bilo koji broj Ostaje visoko

Slučaj se također može podudarati s rasponom pomoću ključne riječi Is, na primjer Case Is > 90 unutar bloka Select Case, što omogućuje da jedan slučaj pokrije svaku vrijednost iznad praga umjesto da se svaki pojedinačno navede.

Odaberite Odaberi slučaj kad god skripta provjerava jednu varijablu u odnosu na više mogućih vrijednosti; zadržite If…ElseIf za uvjete koji uspoređuju različite varijable ili koriste raspone i logičke operatore.

Kako koristiti IF Else sa svojstvom Exist u UFT

Kliknite ovdje ako video nije dostupan

Svojstvo Exist vraća True ili False ovisno o tome je li objekt trenutno prisutan u testiranoj aplikaciji, što ga čini prirodnim uvjetom za uparivanje s If Else. Primjer u nastavku ponovno posjećuje klasični scenarij funkcionalnosti prijave za Rezervacija leta prijava od Ispitivanje niz, gdje se skripta mora granati u put negativnog scenarija kada se pojavi dijalog s pogreškom ili u put pozitivnog scenarija kada se to ne dogodi. To odražava točno Testni scenarij obrađeno u gornjem videu.

  1. Snimite dva odvojena skripta: jedan koji se prijavljuje s valjanom kombinacijom imena agenta i lozinke i jedan koji se prijavljuje s nevažećom kombinacijom.
  2. Umetnite korak If Else odmah nakon koraka prijave kako bi se oba snimanja mogla izvoditi unutar jedne kombinirane skripte.
  3. Postavite uvjet za provjeru postoji li prozor s informacijama o pogrešci pomoću postojati svojstvo umjesto koraka klika.
  4. Premjestite korake negativnog scenarija, kao što je zatvaranje prozora s pogreškom i dijaloga za prijavu, unutar bloka If.
  5. Premjestite korake pozitivnog scenarija, poput zatvaranja prozora za rezervaciju leta, unutar bloka Else.
  6. Spremite kombinirani skript i pokrenite ga na važećem i nevažećem skupu vjerodajnica kako biste potvrdili da se svaki put ispravno izvršava.
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

Osim If i Else, VBScript također podržava While…Wend i Za…Sljedeće petlje za ponavljanje, plus gore navedene naredbe ElseIf i Select Case za dodatne grane. Kombiniranje ovih konstrukata sa svojstvom Exist omogućuje jednom UFT/QTP Skripta obrađuje i pozitivan i negativan testni scenarij bez ručne intervencije.

⚠ Napomena: Prosljeđivanje duže vrijednosti funkciji Exist, kao što je Exist(10), čini UFT Dulje čekanje na objekt prije vraćanja vrijednosti False, što je korisno za dijaloge koji se sporo učitavaju, ali može usporiti cijeli paket ako se koristi u svakom koraku. Duga čekanja rezervirajte za zaista spore objekte. Kratko, dobro odabrano vrijeme čekanja održava kombinirani pozitivni i negativni scenarij pouzdanim i brzim za izvršavanje u kontinuiranim testnim izvedbama.

Pitanja i odgovori

ElseIf procjenjuje uvjete u nizu i zaustavlja se na prvom podudaranju, što ga čini bržim i jasnijim od nekoliko neovisnih If blokova. Koristite odvojene If naredbe samo kada uvjeti nisu povezani i svaki od njih mora biti provjeren.

Exist koristi UFT zadano vrijeme čekanja sinkronizacije, obično nekoliko sekundi, osim ako se unutar zagrada ne proslijedi prilagođena vrijednost poput Exist(10) za dulje čekanje na objekt koji se sporo učitava.

Da. AI asistenti mogu izraditi blokove If, ​​ElseIf i Select Case iz opisa logike testiranja jednostavnim jezikom, iako bi testeri i dalje trebali provjeriti nazive objekata, svojstva i vrijednosti vremenskog ograničenja prije pokretanja skripte.

Alati umjetne inteligencije mogu skenirati skriptu, označiti neusklađene End If naredbe i nedostižne Else blokove te predložiti ispravke, što ubrzava otklanjanje pogrešaka u usporedbi s ručnim pregledom dugih skripti redak po redak.

Da. Koristite ključnu riječ Is unutar retka Case, na primjer Case Is > 90, za usklađivanje svake vrijednosti iznad praga umjesto pojedinačnog popisa.

Sažmite ovu objavu uz: