qtp frameworks test automation frameworks keyword driven
=> Klicka här för QTP Training Tutorials Series
qa testintervjuer för erfarna
Vad är Test Automation Framework och vad är QTP Framework?
Inom ramen för ett framgångsrikt genomförande av QTP för ett programvarutestningsprojekt stöter vi ofta på konceptet ramar. Ramverket är inget annat än det tillvägagångssätt som vi konsekvent följer under automatiseringsprocessen - en uppsättning riktlinjer.
Personligen gillar jag inte att ge namn och säga att den ena fungerar bättre än den andra. Valet av en viss ram är inte början på ett projekt. Det är det motsatta som är sant. I processen att ta fram en teststrategi bygger du de regler som är tillämpliga på testarens nuvarande situation och att det är din ram.
Med detta sagt är följande några av de viktiga punkterna vi måste tänka på:
- Återanvändbarhet
- Skriptets enkla underhåll
- Läsbarhet för skript
- Bra användbar mappstruktur för alla testtillgångar
- Inga hårda kodningsvärden
- Ingen kaskad av misslyckanden. (dvs om ett test misslyckas bör det inte orsaka misslyckande eller stopp av de andra)
Detta är grundlistan och mer kan läggas till baserat på kravet.
Alla teststrategier som försöker integrera några av eller alla dessa punkter ovan är ditt testautomatiseringsramverk.
Det finns olika namn och typer av ramar. Följande är listan över ramar enligt mig:
Vad du kommer att lära dig:
- Typer av automatiseringsramar: (Gäller för QTP-ramverk)
- Linjär ram
- Nyckelorddriven ram
- Rekommenderad läsning
Typer av automatiseringsramar: (Gäller för QTP-ramverk)
- Linjär - Enkelaste formen av att skapa ett test. Skriv bara ett program utan modulering i sekventiella steg
- Sökordsdriven - Skapa olika nyckelord för en annan uppsättning operationer och i huvudskriptet kan vi bara hänvisa till dessa nyckelord.
- Data driven - Att köra samma uppsättning operationer på flera datauppsättningar som hålls i separata filer, mestadels excel-ark.
- Hybrid - Ett kombinationsramverk som delvis kan vara datadrivet och delvis sökordsdrivet
- BPT - Detta betyder bara att program är uppdelade i affärskomponenter och används med den ena eller den andra av ovanstående typer av ramar
Linjär ram
Som diskuterat innebär detta tillvägagångssätt helt enkelt att skriva koden när vi registrerar och fortsätter.
Till exempel, om åtgärden som du måste verifiera är skapandet av ett nytt konto i Gmail kommer följande att vara stegen:
- Öppna gmail.com
- Klicka på 'Skapa konto'
- Ange detaljerna
- Verifiera detaljerna
- Skapa kontot
'Open GMail SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' 'Page Sync Browser('Gmail').Page('Gmail').Sync ‘Click on create account Browser('Gmail').Page('Gmail').WebLink(“Create Account”).Click ‘Enter the details Browser('Gmail').Page('Google Accounts').WebEdit(“First Name”).Set “Swati” Browser('Gmail').Page('Google Accounts').WebEdit(“Last Name”).Set “test” ‘Fill in several other details ‘Submit Browser('Gmail').Page('Google Accounts').WebButton(“Next Step”).click
Ovanstående är ett exempel på hur ett program som använder den linjära metoden ser ut. Det är nu uppenbart vad fördelarna och nackdelarna med denna metod är.
Fördelar:
- Enkelhet. För nybörjare är denna metod lämplig
- Tid - Det tar inte mycket tid att skapa testet
- Mycket lite planering krävs
Nackdelar:
- Ingen återanvändbarhet alls
- Om det finns ett annat skript som verifierar en viss aspekt av sidan 'Google-konton' måste du skriva om koden för att starta sidan gmail.com också. Så mycket upprepning.
- All data är direkt inbäddad i kod. Den hårda kodningen låter inte koden användas för någon annan uppsättning data.
- Felbenägen och underhåll är svårt
Även om nackdelarna uppväger proffsen, kan den här metoden användas när ditt mål är strikt att utföra en uppgift utan valideringar.
Komponenterna i testtillgångar i denna typ av ramar är:
- Testmanus
- Objektförvar (detta kan undvikas genom att använda beskrivande programmering om det behövs)
Nyckelorddriven ram
Hur kan vi göra ovanstående linjära ramtest bättre? Hur kan vi övervinna nackdelarna?
java intervju kod frågor och svar
Uppenbarligen behöver vi återanvändbarhet, modularitet och läsbarhet. Att försöka integrera dessa funktioner och nå en optimal lösning är inget annat än ett försök att skapa en ny, mer förbättrad ram.
Vilka är de återanvändbara komponenterna?
- Start av Gmail och anländer till 'Google-konton' -sidan. Detta är givet, eftersom validering av denna sida innebär att du först kommer hit. ”GoTo Google Account” - kan göras till en separat funktion som kan anropas om och om igen.
- Ange detaljerna och validera dem - Du kan ytterligare dela upp detta i positiva och negativa block för att inkludera mer nivå av modularitet
- Skapande av konto - Den sista nivån för validering och genomförande av uppgiften
När du väl har kommit hit har du inte bara identifierat komponenter som kan kallas om och om igen, utan du har också delat in ditt linjära program i moduler.
Funktioner:
Hittills i vår serie har vi inte behandlat funktioner. Funktioner är inget annat än en kod som gör vissa operationer. Det accepterar inmatningsparametrar från programmet som anropar det och returnerar värde till det.
gratis skräprensare för Windows 10
Som allmän praxis grupperas alla återanvändbara bitar av kod i en fil som innehåller alla återanvändbara funktioner. Den här filen är kopplad till en resurs till ditt QTP-test. Vanligtvis kan ett funktionsbibliotek vara en fil av typen: .vbs, .txt eller .qfl
Tillbaka till vårt exempel- Så här kan funktionsbiblioteksfilen vara:
Function gotoGoogleAccount() 'Open Gmail SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' 'Page Sync Browser('Gmail').Page('Gmail').Sync ‘Click on create account Browser('Gmail').Page('Gmail').WebLink(“Create Account”).Click ‘Enter the details End Function Function EnterDetails() Browser('Gmail').Page('Google Accounts').WebEdit(“First Name”).Set “Swati” Browser('Gmail').Page('Google Accounts').WebEdit(“Last Name”).Set “test” ‘Fill in several other details End Function Function SubmitToCreate() ‘Submit Browser('Gmail').Page('Google Accounts').WebButton(“Next Step”).click End Function
Nu kommer ditt faktiska manus att vara:
'Open GMail gotoGoogleAccount() ‘Enter the details EnterDetails() ‘Submit SubmitToCreate()
Från ovanstående program är det nu klart att vi har uppnått läsbarhet, modularitet och om ett annat program vill använda inloggningsfunktionen kan vi säkert återanvända det. Allt du behöver göra är att associera funktionsbiblioteket till det nya testet också och du är redo att gå.
Du kan också se att funktionsnamnen i ditt skript fungerar som om de är VBScript nyckelord och därav namnet på detta ramverk.
Komponenterna i testtillgångar i denna typ av ramar är:
- Testa manus
- Delad ELLER
- Delat funktionsbibliotek
Vad skulle annars göra det här programmet ännu bättre? Om vi kunde få EnterDetails () -funktionen att ta olika datauppsättningar och skapa olika konton och inte begränsas till de data som vi hårdkodade i programmet. Det är precis nästa steg. Data som driver dina tester och tillvägagångssättet där vi gör detta är det datadrivna ramverket.
Vi ska diskutera Datadrivna och hybridramar i detalj i den kommande handledningen.
=> Besök här för QTP Training Tutorials Series
Låt oss veta om du har några problem med QTP-ramverk som du står inför och som inte omfattas av dessa artiklar. Vi kommer absolut att försöka svara på dina frågor.
Rekommenderad läsning
- De mest populära testautomatiseringsramarna med fördelar och nackdelar med varje - Selen Tutorial # 20
- Testautomation - Är det en specialiserad karriär? Kan normala testare göra automatisering också?
- Varför behöver vi ramar för testautomatisering?
- QTP-handledning # 18 - Datadrivna och hybridramar förklarade med QTP-exempel
- Hur skiljer sig testplaneringen för manuella och automatiseringsprojekt?
- Hur datadriven testning fungerar (exempel på QTP och selen)
- Hur man väljer det bästa verktyget för automatiseringstest (En komplett guide)
- Datadriven ramverk i Selen WebDriver med hjälp av Apache POI