parameterization qtp explained with examples qtp tutorial 19
=> Klicka här för QTP Training Tutorials Series
Vad du kommer att lära dig:
- Vad är QTP-parametrering?
- Typer av parametrering i QTP
- Parameterisering i QTP med hjälp av datatabell med exempel
- Rekommenderad läsning
Vad är QTP-parametrering?
Ibland accepterar inte applikationen dubbla dataposter. I det här fallet, om du kör samma testskript med en fast uppsättning ingångsdata, kan ett program orsaka ett fel på grund av dataduplicering. För att undvika detta problem tillhandahåller QTP sätt att acceptera olika testingångar till testskriptet.
Denna process för att tillhandahålla olika ingångsvärden genom externa parametrar kallas Parameterization
bubblasorteringsalgoritm c ++
Typer av parametrering i QTP
Variabelvärdet kan vara eller parametertyperna kan vara:
- Datatabellsparametrar
- Test / åtgärdsparametrar
- Miljövariabla parametrar
- Slumpmässiga antal parametrar
I denna QTP-handledning kommer vi främst att fokusera på parametrering med hjälp av Datatable. Vi kommer att förklara andra typer av parametreringsmetoder i nästa handledning.
Parameterisering i QTP
Anta att du försöker skriva ett program som kontrollerar inloggningsvärdena för ett par användare på gmail.com. Följande är koden som du har för en användare men du vill att samma ska ta olika värden varje gång. Hur gör du det här?
Kod för att logga in på Gmail för en användare:
SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebEdit('Email').Set 'swatiseela' Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebEdit('Passwd').SetSecure 'sfgs686898' Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebButton('Sign in').Click Browser('Gmail: Email from Google').Page('Gmail - Inbox').Link('Sign out').Click
Gå nu till nyckelordsvyn och klicka på värdekolumnen för e-post-ID och lösenordsuppgifter.
Den typiska skärmen som dyker upp när du försöker parametrera:
Som du kan se kan värdet antingen vara en konstant, 'swatiseela' i detta fall, inloggnings-ID.
Eller om du väljer parameteriseringsalternativ aktiveras motsvarande fält på skärmen.
Från den här skärmen kan du välja att parametrisera det valda värdet med antingen ett värde för datatabellen, en miljövariabel eller ett slumptal. Eftersom den mest använda källan är datatabellen kommer vi att diskutera det först.
Bortsett från dessa kan du använda in- och utgångsvärdena för en viss åtgärd som en parameter för ett värde. Vi kommer också att diskutera det på ett tag.
Parameterisering i QTP med hjälp av datatabell med exempel
Parameterisering i QTP med hjälp av Excel
Jag kollade parametervärdet PÅ och sedan finns det en plats i fältet Datablad som följer namnet.
namn Motsvarande kolumnnamn i datatabellen varifrån uppgifterna måste tas. Som standard föreslår QTP ett namn. Du har möjlighet att behålla det som föreslagit eller ändra det efter behov.
Global Ark: Detta datablad är tillgängligt för alla åtgärder i ett test.
Aktuellt åtgärdsblad eller lokalt ark: som namnet antyder är det databladet som är tillgängligt för en viss åtgärd.
Jag går till flera rader med data till det globala databladet. Det är här lösenordskodningsverktyget kommer till nytta. Du kan lägga in krypterade värden i ditt datablad som du får från det här verktyget.
hur man läser en .bin-fil
Så här ser mitt datablad ut:
Efter parametrering så ser koden ut:
SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Email').Set DataTable('SignInName', dtGlobalSheet) Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Passwd').SetSecure DataTable('GPassword', dtGlobalSheet) Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebButton('Sign in').Click Browser('Gmail: Email from Google').Page('Gmail - Inbox').Link('Sign out').Click Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').Close
Du ser i koden ovan att värdena för e-post-ID och lösenord hämtas från datatabellen.
Denna kod kommer att köras för alla de 4 raderna med data i det globala arket om jag i följande skärm ställer in alternativet 'Kör på alla rader' PÅ:
Om du inte vill använda ovanstående skärm för att bestämma hur många rader koden ska köras för kan du göra det programmatiskt. För det måste du välja alternativet 'Kör endast en iteration' på ovanstående skärm och skriva koden på följande sätt:
for i=1 to datatable.GetRowCount SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync datatable.SetCurrentRow(i) varName=datatable.value('SignInName') varPwd=datatable.Value('GPassword') Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Email').Set varName Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Passwd').SetSecure varPwd Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebButton('Sign in').Click Browser('Gmail: Email from Google').Page('Gmail - Inbox').Link('Sign out').Click Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').Close next
När du utför ett test som körs för två iterationer så ser testresultatskärmen ut:
Jag skulle vilja spendera lite tid på att undersöka koden och försöka förstå varför varje rad och dess ordning är viktig för ett framgångsrikt genomförande av testet:
- Varför öppnar jag webbläsaren i 'for' -slingan?
- Varför finns synkroniseringsuttalanden överallt?
- Varför stänger vi programmatiskt webbläsaren i slutet istället för att låta alternativet “Spela in och köra inställningar - Stäng webbläsaren när testet avslutas” ta hand om det för oss?
- Återigen, varför är det nära uttalandet inuti ”for” -slingan?
Observera att i ovanstående kod förklarade jag inte variablerna i detta test, strök in uttalandena eller lämnade kommentarer. Detta är medvetet eftersom jag inte ville späda ut essensen av uttalandena. Följande koncept kommer att besvara dessa frågor:
Status för din AUT:
Grundregeln är - Varje iteration bör börja med att AUT är samma tillstånd och slutar i samma tillstånd.
- Om uttalandet om att öppna gmail.com-sidan var utanför for-loop skulle testet fungera bra för den första iterationen men för nästa skulle gmail.com-sidan inte ha öppnats och testet skulle misslyckas.
- Om uttalandet om att stänga webbläsaren inte ingår i testet, öppnar testet en webbläsare med varje iteration och du slutar med att ha så många instanser av webbläsaren öppna för antalet rader i datatabellen.
- Föreställ dig om det närmaste uttalandet var utanför for loop, så kommer du också att få för många webbläsare.
- Synkroniseringsuttalande: detta tvingar QTP-testet att vänta tills en viss sida laddas helt innan den börjar utföra en viss operation på den.
Försök alltid att returnera din ansökan till det tillstånd där den började. Detta kommer att se till att du tillhandahåller samma gränssnitt för var och en av dina iterationer att interagera med.
Följande är kodstycket när du använder ett lokalt ark istället för det globala:
Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Email').Set DataTable('Name', dtLocalSheet) Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Passwd').SetSecure DataTable('Pwd', dtLocalSheet) Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebButton('Sign in').Click
I QTP kan du parametrisera värdena för:
- Kontrollpunkter.
- Objektegenskaper för ett valt steg.
- Funktionsargument definierade för ett valt steg.
- En eller flera egenskaper för ett objekt lagrat i det lokala objektförvaret i dialogrutan Objektegenskaper eller fönstret Objektförvar.
Ovanstående är också ett exempel på data som driver ett visst test. Vi kommer att se hur man parametrar med hjälp av andra parametertyper i nästa artikel.
=> Besök här för QTP Training Tutorials Series
Rekommenderad läsning
- Parameterisering i QTP (del 2) - QTP-handledning nr 20
- QTP-självstudier - 25+ Micro Focus Quick Test Professional (QTP) -träningsövningar
- Selen Find Element by Text Tutorial med exempel
- Fördjupade förmörkningsövningar för nybörjare
- QTP-handledning # 18 - Datadrivna och hybridramar förklarade med QTP-exempel
- QTP-handledning nr 6 - Förstå QTP-inspelnings- och körinställningar för vårt första test
- QTP-handledning # 24 - Använda virtuella objekt och återställningsscenarier i QTP-tester
- Beskrivande programmering i QTP och databasanslutning i QTP - Handledning # 25