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: