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.
Š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.
- 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.
- Umetnite korak If Else odmah nakon koraka prijave kako bi se oba snimanja mogla izvoditi unutar jedne kombinirane skripte.
- Postavite uvjet za provjeru postoji li prozor s informacijama o pogrešci pomoću postojati svojstvo umjesto koraka klika.
- Premjestite korake negativnog scenarija, kao što je zatvaranje prozora s pogreškom i dijaloga za prijavu, unutar bloka If.
- Premjestite korake pozitivnog scenarija, poput zatvaranja prozora za rezervaciju leta, unutar bloka Else.
- 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.

