JOS, Muuten, Loppu JOS, On olemassa QTP/UFT esimerkin kanssa
⚡ Älykäs yhteenveto
IF Else End If-lausekkeet let UFT ja QTP skriptit haarautuvat suorituksenaikaisten ehtojen perusteella, kun taas Exist-ominaisuus tarkistaa, näkyykö objekti näytöllä ennen haaran suorittamista, kattaen myös ElseIf-, sisäkkäiset If- ja Select Case -ominaisuuden.
Mikä on IF Else -lauseke? UFT/QTP?
IF Else -lauseke on yleisin ehdollinen ohjausrakenne VBScriptissä, skriptikielessä, jota käytetään UFT/QTP automaatioskriptejä. Se antaa komentosarjan tehdä päätöksen suorituksen aikana: kun ehto antaa tulokseksi True, suoritetaan yksi lausekelohko, ja kun se antaa tulokseksi False, suoritetaan toinen lohko. Testaajat käyttävät tätä rakennetta jatkuvasti, esimerkiksi haarautuakseen komentosarjaan kirjautumisen onnistuessa ja epäonnistuessa, tai milloin objekti saattaa näkyä näytöllä tai ei. Täydellinen luettelo VBScriptin tukemista ehtolausekkeista ja vertailuoperaattoreista on osoitteessa VBScript-ehtolauseke opas.
Perusmuodossa If…Then yhdistetään valinnaiseen Else-lohkoon ja se päättyy aina End If -lohkoon. UFT/QTP arvioi ehdon kerran. Jos se on True, vain Then- ja Else-lausekkeiden väliset lauseet suoritetaan; jos se on False, vain Else- ja End If-lausekkeiden väliset lauseet suoritetaan, ja vain yksi haara suoritetaan. Alla oleva syntaksi tarkistaa numeerisen arvon ja näyttää eri viestiruudun kullekin tulokselle.
Dim iValue iValue = 25 If iValue > 18 Then MsgBox "Eligible" Else MsgBox "Not Eligible" End If
In UFT/QTPehto vertaa lähes aina objektin ominaisuutta, tarkistuspisteen tulosta tai Exist-ominaisuuden paluuarvoa pelkän numeron sijaan, koska useimmat skriptit validoivat testattavan sovelluksen aritmetiikan sijaan. Jokainen tällä sivulla myöhemmin oleva esimerkki perustuu samaan yllä esitettyyn If…Then…Else…End If -malliin; vain ehto muuttuu. Käytitpä kumpaa tahansa ehtoa, testaa aina sekä True- että False-polut vähintään kerran ennen skriptin siirtämistä regressiosarjaan.
JOS…Niin…MuutenJos…Muuten-lauseke UFT/QTP
Yksinkertainen If Else valitsee aina vain kahden lopputuloksen välillä. Kun komentosarjan on testattava kolmea tai useampaa toisensa poissulkevaa ehtoa, VBScript lisää ElseIf-ominaisuuden samaan lohkoon. UFT/QTP tarkistaa jokaisen ehdon ylhäältä alas ja suorittaa ensimmäisen lohkon, jonka ehto on True; kaikki muut lohkot, mukaan lukien lopussa oleva Else-lohko, ohitetaan. Tämä tekee skriptistä paljon luettavamman kuin useiden toisiinsa liittymättömien If-lohkojen sisäkkäin laittaminen.
- Ehtoja arvioidaan ylhäältä alas, ja arviointi pysähtyy ensimmäiseen ehtoon, joka on True.
- Jokainen ElseIf-avainsana tarvitsee oman Then-funktion ja oman ehdon.
- Jälkimmäinen Else-operaattori on valinnainen ja se suoritetaan vain, kun mikään sen yläpuolella olevista ehdoista ei täsmää.
- Vain yksi End If sulkee koko lohkon riippumatta siitä, kuinka monta ElseIf-haaraa se sisältää.
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
Yllä oleva skripti tulostaa eri arvosanan kullekin pisteytysvälille ja lopettaa lisäehtojen tarkistamisen heti, kun yhden haaran arvo on True, mikä pitää suuret päätöspuut tehokkaina myös pitkän automaatioajon sisällä.
Sama kaava pätee suoraan käyttöliittymätarkistuksiin: skripti saattaa lukea tilakentän arvon ja käyttää ElseIf-funktiota reitittääkseen sen hyväksymis-, varoitus- tai epäonnistumiskäsittelyyn löytämänsä tekstin perusteella kolmen erillisen If-lohkon sijaan, jotka kukin arvioivat kentän uudelleen itsenäisesti.
Sisäkkäinen If-lauseke UFT/QTP
Sisäkkäinen If-lauseke sijoittaa yhden täydellisen If…End If -lohkon toisen If-lohkon Then or Else -osan sisään. UFT/QTP ratkaisee ensin ulomman ehdon ja arvioi sisemmän If-haaran vasta, kun kyseiseen ulompaan haaraan syötetään. Tämä malli sopii tarkistuksiin, jotka ovat toisistaan riippuvia, kuten käyttäjän äänestämiseen riittävän iän vahvistaminen ja sitten uudelleen sukupuolen mukaan haarautuminen sen sijaan, että jokainen ehto yhdistettäisiin yhdeksi pitkäksi lausekkeeksi And- ja Or-operaattoreilla. Pidä sisäkkäisyys matalana, yleensä enintään kahdella tai kolmella tasolla, koska jokainen ylimääräinen kerros vaikeuttaa komentosarjan lukemista. trace ja debug. Sisään UFT/QTP termein sisäkkäinen If yleensä tarkistaa ensin käyttöjärjestelmän ja haarautuu sitten uudelleen selaimen tai sovelluksen tilan mukaan, joten sisempi lohko suoritetaan vasta, kun ulkoinen konteksti on vahvistettu.
💡 Vinkki: Sisennä jokainen sisäkkäinen lohko yhdellä ylimääräisellä tasolla ja anna jokaiselle End If -lausekkeelle oma rivi. Yhtenäinen sisennys on nopein tapa havaita puuttuva End If -lauseke ennen kuin skripti epäonnistuu suorituksen aikana.
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
Valitse tapauslausunto kohdassa UFT/QTP
Select Case on vaihtoehto pitkälle ElseIf-ketjulle, jossa jokainen haara testaa samaa yksittäistä muuttujaa eri kiinteää arvoa vasten. UFT/QTP laskee Select Case -rivillä olevan lausekkeen kerran, vertaa sitä sitten kuhunkin Case-arvoon järjestyksessä ja suorittaa ensimmäisen vastaavan lohkon. Valinnainen Case Else -lohko havaitsee kaikki arvon, jota mikään luetelluista tapauksista ei kata, samalla tavalla kuin If-lohkon lopussa oleva Else. Koska vertailumuuttuja kirjoitetaan vain kerran, pitkää Select Case -lohkoa on myös helpompi päivittää myöhemmin kuin vastaavaa ElseIf-lausekkeiden ketjua, joka toistaa saman muuttujan nimen jokaisessa haarassa.
Kirjainkoko-arvoja verrataan yhtäsuuruusmenetelmällä, ja kirjainkoko on merkitsevä, joten ”Chrome” ja ”chrome” lasketaan eri osumiksi, ellei arvoa ensin normalisoida esimerkiksi LCase-funktiolla. Katso VBScript-muuttujan deklarointi opas siitä, miten Dim ja tietotyypit vaikuttavat näihin vertailuihin.
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
| SELVITYS | PARAS | EHDOT | LUETTAVUUS Skaalassa |
|---|---|---|---|
| Jos…Muuten | Kaksi lopputulosta | 1 ehto | Korkea |
| Jos…MuutenJos…Muuten | Useita toisiinsa liittymättömiä ehtoja | 3 tai useampi ehto | Pudot oksien kasvaessa |
| Valitse Case | Yhden muuttujan useita kiinteitä arvoja | Mikä tahansa numero | Pysyy korkealla |
Case voi myös löytää vastaavan alueen käyttämällä Is-avainsanaa, esimerkiksi Case Is > 90 Select Case -lohkon sisällä, jolloin yksittäinen tapaus voi kattaa kaikki kynnysarvon ylittävät arvot sen sijaan, että jokainen arvo lueteltaisiin erikseen.
Valitse Valitse tapaus -vaihtoehto aina, kun skripti testaa yhtä muuttujaa useita mahdollisia arvoja vasten; pidä Jos…ElseJos-vaihtoehtoa ehdoissa, jotka vertailevat eri muuttujia tai käyttävät alueita ja loogisia operaattoreita.
Kuinka käyttää IF Else -funktiota Exist-ominaisuuden kanssa UFT
Napauta täältä jos video ei ole saatavilla
Exist-ominaisuus palauttaa arvon True tai False riippuen siitä, onko objekti tällä hetkellä testattavassa sovelluksessa, mikä tekee siitä luonnollisen ehdon yhdistää If Else -ominaisuuden. Alla oleva esimerkki palaa klassiseen kirjautumistoiminnallisuusskenaarioon kohteelle Lennon varaus sovellus osoitteesta Testaus sarja, jossa komentosarjan on haarauduttava negatiivisen skenaarion polkuun, kun virheikkuna tulee näkyviin, tai positiivisen skenaarion polkuun, kun sitä ei tule. Tämä peilaa täsmälleen samaa Testiskenaario käsitelty yllä olevalla videolla.
- Tallenna kaksi erillistä skriptiä: toinen, joka kirjautuu sisään kelvollisella agentin nimen ja salasanan yhdistelmällä, ja toinen, joka kirjautuu sisään virheellisellä yhdistelmällä.
- Lisää If Else -vaihe heti kirjautumisvaiheen jälkeen, jotta molemmat tallenteet voidaan suorittaa yhden yhdistetyn komentosarjan sisällä.
- Aseta ehto, joka tarkistaa, onko virhetietoikkuna olemassa, käyttämällä Olla olemassa ominaisuus Click-vaiheen sijaan.
- Siirrä negatiivisen skenaarion vaiheet, kuten virheikkunan ja kirjautumisikkunan sulkeminen, If-lohkon sisälle.
- Siirrä positiivisen skenaarion vaiheet, kuten lentovarausikkunan sulkeminen, Muuten-lohkon sisälle.
- Tallenna yhdistetty komentosarja ja suorita se sekä kelvollisilla että virheellisillä tunnistetietojoukoilla varmistaaksesi, että molemmat polut suoritetaan oikein.
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- ja Else-funktioiden lisäksi VBScript tukee myös While…Wend- ja Seuraavat silmukat toistoa varten, sekä edellä käsitellyt ElseIf- ja Select Case -lausekkeet lisähaaroille. Näiden rakenteiden yhdistäminen Exist-ominaisuuteen antaa yksittäiselle UFT/QTP skripti käsittelee sekä positiivisen että negatiivisen testiskenaarion ilman manuaalisia toimia.
⚠ Huomautus: Pidemmän arvon, kuten Exist(10), antaminen Exist-muuttujalle tekee UFT odottaa objektia kauemmin ennen arvon False palauttamista, mikä on hyödyllistä hitaasti latautuville valintaikkunoille, mutta voi hidastaa koko sarjaa, jos sitä käytetään jokaisessa vaiheessa. Varaa pitkät odotusajat aidosti hitaille objekteille. Lyhyt, hyvin valittu aikakatkaisu pitää yhdistetyn positiivisen ja negatiivisen skenaarioskriptin sekä luotettavana että nopeana suoritettavaksi jatkuvissa testiajoissa.

