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.

  • 🔀 Perussyntaksi: If…Then muodostaa parin valinnaisen Else-lohkon kanssa ja päättyy End If -lohkoon, suorittaen täsmälleen yhden haaran arviointia kohden.
  • 🧮 Useita ehtoja: ElseIf tarkistaa ehdot ylhäältä alas ja pysähtyy ensimmäiseen True-osumaan, korvaten pitkiä erillisten If-lohkojen ketjuja.
  • 🪆 Sisäkkäinen logiikka: Jos-operaattorin sijoittaminen toisen Then or Else -osion sisälle käsittelee riippuvat tarkistukset; pidä sisäkkäisyys kahdessa tai kolmessa tasossa luettavuuden parantamiseksi.
  • 🎯 Valitse tapaus: Vertaa yhtä muuttujaa useisiin kiinteisiin arvoihin ja lukee selkeämmin kuin pitkä ElseIf-ketju.
  • 🔍 Olemassa oleva ominaisuus: Palauttaa arvon True tai False sen perusteella, onko objekti näytöllä, mikä on If Else -haarautumisen vakioehto.
  • 🧪 Sovellettu esimerkki: Yhdistä If Else ja Exist reitittääksesi skriptin automaattisesti negatiiviseen tai positiiviseen lentovarauksen kirjautumispolkuun.
  • 🤖 AI-apu: Tekoälytyökalut voivat luonnostella If Else- ja Select Case -lohkoja ja merkitä puuttuvat End If -lausekkeet virheenkorjauksen aikana.

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.

  1. 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ä.
  2. Lisää If Else -vaihe heti kirjautumisvaiheen jälkeen, jotta molemmat tallenteet voidaan suorittaa yhden yhdistetyn komentosarjan sisällä.
  3. Aseta ehto, joka tarkistaa, onko virhetietoikkuna olemassa, käyttämällä Olla olemassa ominaisuus Click-vaiheen sijaan.
  4. Siirrä negatiivisen skenaarion vaiheet, kuten virheikkunan ja kirjautumisikkunan sulkeminen, If-lohkon sisälle.
  5. Siirrä positiivisen skenaarion vaiheet, kuten lentovarausikkunan sulkeminen, Muuten-lohkon sisälle.
  6. 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.

UKK

ElseIf arvioi ehtoja peräkkäin ja pysähtyy ensimmäiseen osumaan, mikä tekee siitä nopeamman ja selkeämmän kuin useat itsenäiset If-lohkot. Käytä erillisiä If-lausekkeita vain silloin, kun ehdot eivät ole yhteydessä toisiinsa ja jokainen niistä on tarkistettava.

Exist käyttää UFT oletusarvoinen synkronoinnin aikakatkaisu, tyypillisesti muutama sekunti, ellei suluissa ole annettu mukautettua arvoa, kuten Exist(10), odottamaan pidempään hitaasti latautuvaa objektia.

Kyllä. Tekoälyavustajat voivat luonnostella If-, ElseIf- ja Select Case -lohkoja testilogiikan selkokielisestä kuvauksesta, vaikka testaajien tulisi silti tarkistaa objektien nimet, ominaisuudet ja aikakatkaisuarvot ennen skriptin suorittamista.

Tekoälytyökalut voivat skannata skriptin, merkitä yhteensopimattomat End If -lausekkeet ja tavoittamattomat Else-lohkot ja ehdottaa korjauksia, mikä nopeuttaa virheenkorjausta verrattuna pitkien skriptien manuaaliseen rivi riviltä -tarkistukseen.

Kyllä. Käytä Is-avainsanaa Case-rivin sisällä, esimerkiksi Case Is > 90, löytääksesi kaikki kynnysarvon ylittävät arvot sen sijaan, että listaisit jokaisen arvon erikseen.

Tiivistä tämä viesti seuraavasti: