HVIS, Ellers, Slut HVIS, Findes i QTP/UFT med Eksempel
โก Smart opsummering
IF Else End If-sรฆtninger lad UFT og QTP Scripts forgrener sig baseret pรฅ runtime-betingelser, mens egenskaben Exist kontrollerer, om et objekt vises pรฅ skรฆrmen, fรธr forgreningen udfรธres, hvilket ogsรฅ dรฆkker ElseIf, indlejrede If og Select Case.

Hvad er IF Else-sรฆtningen i UFT/QTP?
IF Else-sรฆtningen er den mest almindelige betingede kontrolstruktur i VBScript, det scriptsprog, der bruges til at skrive UFT/QTP automatiseringsscripts. Det lader et script trรฆffe en beslutning under kรธrsel: Nรฅr en betingelse evalueres til True, kรธres รฉn blok af udsagn, og nรฅr den evalueres til False, kรธres en anden blok i stedet. Testere er konstant afhรฆngige af denne konstruktion, for eksempel for at forgrene et script, nรฅr et login lykkes versus nรฅr det mislykkes, eller nรฅr et objekt muligvis vises eller ikke vises pรฅ skรฆrmen. For den komplette liste over betingede udsagn og sammenligningsoperatorer, som VBScript understรธtter, se VBScript-betinget sรฆtning guide.
Basisformen parrer IfโฆThen med en valgfri Else-blok og lukker altid med End If. UFT/QTP evaluerer betingelsen รฉn gang. Hvis den er True, kรธres kun sรฆtningerne mellem Then og Else; hvis den er False, kรธres kun sรฆtningerne mellem Else og End If, og kun รฉn gren udfรธres nogensinde. Syntaksen nedenfor kontrollerer en numerisk vรฆrdi og viser en forskellig meddelelsesboks for hvert resultat.
Dim iValue iValue = 25 If iValue > 18 Then MsgBox "Eligible" Else MsgBox "Not Eligible" End If
In UFT/QTP, sammenligner betingelsen nรฆsten altid en objektegenskab, et kontrolpunktsresultat eller returvรฆrdien af โโโโegenskaben Exist i stedet for et almindeligt tal, da de fleste scripts validerer en applikation under test i stedet for at udfรธre aritmetiske opgaver. Hvert eksempel lรฆngere nede pรฅ denne side bygger pรฅ det samme IfโฆThenโฆElseโฆEnd If-mรธnster vist ovenfor; kun betingelsen รฆndres. Uanset hvilken betingelse du bruger, skal du altid teste bรฅde True- og False-stierne mindst รฉn gang, fรธr du flytter scriptet til en regressionssuite.
HVISโฆSรฅโฆEllersHvisโฆEllers-sรฆtning i UFT/QTP
En almindelig If Else vรฆlger kun mellem to udfald. Nรฅr et script skal teste tre eller flere gensidigt udelukkende betingelser, tilfรธjer VBScript ElseIf til den samme blok. UFT/QTP kontrollerer hver betingelse fra top til bund og kรธrer den fรธrste blok, hvis betingelse er True; alle andre bloker, inklusive den efterfรธlgende Else, springes over. Dette gรธr et script langt mere lรฆsbart end at indlejre flere ikke-relaterede If-blokke indeni hinanden.
- Betingelser evalueres fra top til bund, og evalueringen stopper ved den fรธrste betingelse, der er Sand.
- Hvert ElseIf-nรธgleord skal have sit eget Then og sin egen betingelse.
- Den efterfรธlgende Else er valgfri og kรธrer kun, nรฅr ingen af โโbetingelserne ovenfor matcher.
- Kun รฉn End If lukker hele blokken, uanset hvor mange ElseIf-grene den indeholder.
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
Ovenstรฅende script udskriver en forskellig karakter for hvert scoreinterval og stopper med at kontrollere yderligere betingelser i det รธjeblik, en gren evalueres til True, hvilket holder store beslutningstrรฆer effektive, selv i en lang automatiseringskรธrsel.
Det samme mรธnster gรฆlder direkte for UI-tjek: et script kan lรฆse et statusfelts vรฆrdi og bruge ElseIf til at dirigere til bestรฅet, advarsel eller fejlbehandling afhรฆngigt af den tekst, det finder, i stedet for tre separate If-blokke, der hver isรฆr revurderer feltet uafhรฆngigt af hinanden.
Indlejret If-sรฆtning i UFT/QTP
En indlejret If placerer en komplet IfโฆEnd If-blok inde i Then- eller Else-sektionen af โโen anden If-blok. UFT/QTP lรธser den ydre betingelse fรธrst og evaluerer kun den indre If, โโnรฅr den ydre gren indtastes. Dette mรธnster passer til kontroller, der afhรฆnger af hinanden, sรฅsom at bekrรฆfte, at en bruger er gammel nok til at stemme, og derefter forgrene sig igen efter kรธn, i stedet for at kombinere hver betingelse i รฉt langt udtryk med Og og Eller. Hold indlejringen overfladisk, generelt ikke mere end to eller tre niveauer, fordi hvert ekstra lag gรธr et script svรฆrere at trace og fejlfinding. I UFT/QTP I vilkรฅr og betingelser kontrollerer en indlejret If normalt fรธrst operativsystemet og forgrener sig derefter igen afhรฆngigt af browser- eller applikationstilstand, sรฅ den indre blok kรธrer kun, nรฅr den ydre kontekst er bekrรฆftet.
๐ก Tip: Indryk hver indbygget blok med et ekstra niveau, og giv hver End If sin egen linje. Konsekvent indrykning er den hurtigste mรฅde at fange en manglende End If, fรธr scriptet fejler under kรธrsel.
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
Vรฆlg sagserklรฆring i UFT/QTP
Select Case er et alternativ til en lang ElseIf-kรฆde, hvor hver gren tester den samme enkeltvariabel mod en forskellig fast vรฆrdi. UFT/QTP evaluerer udtrykket pรฅ Select Case-linjen รฉn gang, sammenligner det derefter med hver Case-vรฆrdi i rรฆkkefรธlge og kรธrer den fรธrste blok, der matcher. En valgfri Case Else fanger enhver vรฆrdi, som ingen af โโde anfรธrte cases dรฆkker, svarende til den efterfรธlgende Else i en If-blok. Fordi sammenligningsvariablen kun skrives รฉn gang, er en lang Select Case-blok ogsรฅ nemmere at opdatere senere end en tilsvarende kรฆde af ElseIf-udsagn, der gentager det samme variabelnavn i hver gren.
Vรฆrdier for store og smรฅ bogstaver sammenlignes ved at bruge lighed og skelner mellem store og smรฅ bogstaver, sรฅ "Chrome" og "chrome" tรฆller som forskellige match, medmindre vรฆrdien normaliseres fรธrst, for eksempel med LCase-funktionen. Se VBScript-variabeldeklaration en vejledning til, hvordan Dim og datatyper pรฅvirker disse sammenligninger.
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
| UDMELDING | Bedste FOR | ANTAL BETINGELSER | LรSBARHED I SKALA |
|---|---|---|---|
| HvisโฆEllers | To resultater | 1 betingelse | Hรธj |
| HvisโฆEllersHvisโฆEllers | Flere uafhรฆngige tilstande | 3 eller flere betingelser | Drรฅber efterhรฅnden som grenene vokser |
| Vรฆlg sag | Mange faste vรฆrdier af รฉn variabel | Ethvert nummer | Holder sig hรธjt |
Case kan ogsรฅ matche et omrรฅde ved hjรฆlp af Is-nรธgleordet, for eksempel Case Is > 90 i en Select Case-blok, hvilket lader et enkelt case dรฆkke alle vรฆrdier over en tรฆrskel i stedet for at liste hver enkelt individuelt.
Vรฆlg Vรฆlg store/smรฅ bogstaver, nรฅr et script tester รฉn variabel mod mange mulige vรฆrdier; behold HvisโฆEllers Hvis for betingelser, der sammenligner forskellige variabler eller bruger intervaller og logiske operatorer.
Sรฅdan bruger du IF Else med Exist-egenskaben i UFT
Klik link. hvis videoen ikke er tilgรฆngelig
Egenskaben Exist returnerer True eller False afhรฆngigt af om et objekt i รธjeblikket er til stede i den applikation, der testes, hvilket gรธr det til den naturlige betingelse at parre med If Else. Eksemplet nedenfor gennemgรฅr det klassiske loginfunktionalitetsscenarie for Flyreservation ansรธgning fra Test serie, hvor et script skal forgrene sig til en negativ scenariesti, nรฅr en fejldialogboks vises, eller en positiv scenariesti, nรฅr den ikke gรธr det. Dette afspejler den nรธjagtige Testscenarie dรฆkket i videoen ovenfor.
- Optag to separate scripts: et, der logger ind med en gyldig kombination af agentnavn og adgangskode, og et, der logger ind med en ugyldig kombination.
- Indsรฆt et If Else-trin umiddelbart efter login-trinnet, sรฅ begge optagelser kan kรธre i et enkelt kombineret script.
- Angiv betingelsen for at kontrollere, om vinduet Fejlinformation findes, ved hjรฆlp af Eksisterer egenskab i stedet for et Click-trin.
- Flyt trinnene i det negative scenarie, sรฅsom at lukke fejlvinduet og login-dialogboksen, inden for If-blokken.
- Flyt trinnene i det positive scenarie, sรฅsom at lukke vinduet for flyreservation, ind i Ellers-blokken.
- Gem det kombinerede script, og kรธr det mod bรฅde et gyldigt og et ugyldigt legitimationsoplysninger for at bekrรฆfte, at hver sti udfรธres korrekt.
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
Udover If og Else understรธtter VBScript ogsรฅ WhileโฆWend og ForโฆNรฆste lรธkker til gentagelse, plus ElseIf- og Select Case-sรฆtningerne, der er beskrevet ovenfor, til ekstra grene. Kombinationen af โโdisse konstruktioner med Exist-egenskaben er det, der giver en enkelt UFT/QTP Scriptet hรฅndterer bรฅde et positivt og et negativt testscenarie uden manuel indgriben.
โ Bemรฆrk: Hvis man sender en lรฆngere vรฆrdi til Exist, sรฅsom Exist(10), bliver UFT Vent lรฆngere pรฅ et objekt, fรธr False returneres, hvilket er nyttigt til langsomt indlรฆste dialoger, men kan forsinke hele pakken, hvis det bruges pรฅ hvert trin. Reserver lange ventetider for virkelig langsomme objekter. En kort, velvalgt timeout holder det kombinerede positive og negative scenariescript bรฅde pรฅlideligt og hurtigt at udfรธre i kontinuerlige testkรธrsler.
