descriptive programming qtp
I den här handledningen lär du dig vad beskrivande programmering i QTP är och Databasanslutning i QTP dvs hur man ansluter till externa datakällor som databas och MS Excel-ark med QTP.
Beskrivande programmering är en mekanism för att skapa tester där du använder “Programmatisk beskrivning” av objekt istället för att spela in dem.
=> Klicka här för QTP Training Tutorials Series
En snabb anteckning om denna QTP-artikelserie innan vi går vidare till detaljerna i denna handledning:
Detta är den sista guiden i vår online-QTP-träningsserie. Jag hoppas att ni alla gillade dessa tutorials och började lära av dem.
Ge oss feedback:
Jag letar efter din feedback inte bara för den här handledningsserien utan om den totala webbplatsen. Snälla du klicka här för att dela dina tankar om den här webbplatsen. Det tar knappast några minuter att slutföra. Vi värdesätter din feedback och förslag. Låt oss veta vad vi kan göra för att förbättra din upplevelse med SoftwareTestingHelp.com
applikationer för att spionera på mobiltelefoner
Vad du kommer att lära dig:
Beskrivande programmering i QTP
Beskrivande programmering är en mekanism för att skapa tester där du använder “Programmatisk beskrivning” av objekt istället för att spela in dem.
Med hjälp av denna teknik kan QTP göras för att identifiera objekt som inte finns i förvaret.
Det finns två varianter av beskrivande programmering:
- Statisk beskrivande programmering
- Dynamisk beskrivande programmering
Statisk beskrivande programmering
En statisk metod är när du försöker komma åt ett objekt genom att använda en uppsättning egenskaper och värden direkt i ett VB-uttalande.
Syntax: TestObject (“Egenskapsnamn1: = fastighetsvärde”, ”fastighetsnamn 2: = fastighetsvärde”,… .n)
Så här använder du det:
topp mp3 musik nedladdare för android
Browser(“creationtime:=0”).Page(“title:=Google”).WebButton(“name:=Google Search”)
Dynamisk beskrivande programmering
Detta fungerar genom att skapa ett beskrivningsobjekt. Titta på följande exempel för att skapa ett webButton-objekt.
Set Testdesc=description.create Testdesc(“micClass”).value= “webButton”
- micClass hänvisar till de fördefinierade klasserna i QTP. Värdena du kan tilldela kan vara webbknapp, webblista etc.
- I QTP 10 är micClass-värden skiftlägeskänsliga men i QTP 11 och framåt är de inte. Om du skriver webbknappen i QTP 10 kommer den att misslyckas. Du måste skriva webButton. Men samma webbknapp kommer att passera i QTP 11.
Du kan extrahera alla objekt i en viss klass på en sida med följande uttalande:
Set ObjectList=Browser(“creationtime:=0”).Page(“title:=*”).ChildObjects(Testdesc) Msgbox ObjectList.count
Ovanstående uttalanden extraherar alla knappar på en sida och lagrar dem i ObjectList-objektet.
Mångsidigheten med att använda beskrivande programmering är att dessa kodrader fungerar på alla öppna sidor. Du kan öppna google.com i din webbläsare och det kommer att räkna hur många knappar som finns på den sidan. Det kommer att fungera exakt på samma sätt om du hade amazon.com eller någon annan webbplats öppen.
Detta beror på att vi har namnet på sidans titel inställd på * vilket är ett vanligt uttryck.
Så du kan se, hur vi kan skriva kod som kan användas i mer än ett tillfälle genom att inte hårdkoda fastighetsvärdena och genom att skapa objekt vid körning .
Låt oss ta vårt exempel lite längre. Säg att jag försöker skriva ut namnen på alla webbknappar på sidan efter varandra.
Om det finns fyra knappar på en sida kan du komma åt var och en av dem på följande sätt:
Msgbox ObjectList (0) .GetRoProperty (“name”) - Detta skriver ut namnet på den första knappen.
Msgbox ObjectList (1) .GetRoProperty (“namn”)
Msgbox ObjectList (2) .GetRoProperty (“namn”)
Msgbox ObjectList (3) .GetRoProperty (“namn”)
Anteckna det:
- Indexet för underordnade objekt börjar från 0
- Eftersom objektet uppnår sina egenskaper vid körning använder vi metoden GetRoProperty för att hämta samma.
Vi kan ändra koden ovan för att fungera för valfritt antal knappar på sidan genom att använda en 'For-loop' och upprepa uttalandena inom 'For block' tills den når slutet på objekträkningen.
For i=0 to ObjectList.count -1 to Step 1 Msgbox ObjectList (i).GetRoProperty(“name”) Next
Att använda en ”For loop” är bättre eftersom du i det här fallet inte behöver veta hur många objekt som finns i ditt beskrivningsobjekt.
Ett par punkter att notera:
- Du behöver övningen för att behärska beskrivande programmering. Oavsett hur många exempel du tittar på och förstår, behöver du praktisk erfarenhet för att verkligen arbeta med det.
- Som testare förväntas du inte veta hur objekten kodas i din AUT och vilka värden de är inställda på. Så använd ObjectSpy då och då för att välja rätt egenskaper för att visa egenskaperna.
- Testresultaten indikerar att testobjektet skapades dynamiskt under körningssessionen med en programmeringsbeskrivning eller ChildObject-metoderna.
Ansluta till vanliga externa datakällor från QTP
Det kommer att finnas många tillfällen när du förbereder testerna för att du måste ansluta till en extern DB eller någon annan datakälla. När du väl är ansluten måste du också flytta data till och från dessa appar till QTP och vice versa.
Även om det inte omfattas av dessa artiklar att tillhandahålla en komplett guide för att arbeta med externa gränssnitt, kommer vi att undersöka några som oftast används.
Databasanslutning i QTP
För att ansluta till en databas använder vi vanligtvis ett ADO-anslutningsobjekt. ADO är Microsofts ActiveX-dataobjekt.
Följande är stegen som ska följas:
# 1) Skapa ett DSN. Se databasens kontrollpunktshandledning för att se hur detta görs eller skapa en från kontrollpanelen.
#två) Skapa ett anslutningsobjekt:
Ställ in conn = CreateObject (“ADODB.connection”)
# 3) Skapa ett objekt i postuppsättningen. Recordset-objektet innehåller resultaten av frågan som vi ska köra.
Ställ in rs = CreateObject (“ADODB.RecordSet”)
# 4) Öppna anslutningsobjektet och kör frågan:
anslut.Öppna “DSN = testDB2; UID = swatiseela; pwd = testing @ 123”
rs.Öppna “Välj * från abc”, anslut
# 5) Alla frågeresultat kan nu nås med 'rs' -objektet.
# 6) Om du till exempel vill få tillbaka antalet rader kan du använda
rs.getrows
# 7) Till exempel har tabellen två rader och 3 kolumner (a, b, c) du kan komma åt värdena enligt följande:
Msgbox rs.fields (0) .a
Msgbox rs.fiels (0) .b
Msgbox rs.fields (0) .c
# 8) Du kan använda ett loop-uttalande om det finns för många värden att komma åt.
# 9) Några av funktionerna som inspelade objekt kan använda är: rs.move, rs.movenext, rs.getrows, rs.close, rs.open, etc.
Låt oss titta på all kod på en gång:
Set conn=CreateObject(“ADODB.connection”) Set rs=CreateObject(“ADODB.RecordSet”) conn.Open “DSN=testDB2;UID=swatiseela;pwd=testing@123” rs.Open “Select * from abc”,conn msgbox rs.getrows Msgbox rs.fields(0).a Msgbox rs.fiels(0).b Msgbox rs.fields(0).c Msgbox rs.fields(1).a Msgbox rs.fiels(1).b Msgbox rs.fields(1).c rs.close conn.close
Ansluter till MS Excel-ark
Vi vet alla att när vi öppnar en excel-applikation är hela filen en arbetsbok som har ark med kolumner och rader där vi lägger in data.
Följande är koden och kommentarerna som hjälper dig att förstå hur det görs.
‘Create an excel application object Set excelobj = CreateObject(“Excel.Application”) ‘Set it to visible, otherwise it will be visible in the task manager but you will not be able to view it but it continues to work in the background excelobj.visible = true ‘Opens a workbook at the path speficified. If you need to open a new workbook, use excelobj.workbooks.Add excelobj.workbooks.Open(“C:UsersSwatiDesktopQTP est.xls”) ‘Sets the current sheet as i. the sheet number starts from 1 i=1 Set sheet1 = excelobj.activeworkbook.sheets(i) ‘write to a cell in sheet 1. The cell is row 8 column 4, D8. excelobj.activeworkbook.sheets(1).cells(8,4) = “Test QTP Write to cell” ‘To get the data from sheet2 cell ID C6 testretrurnval = excelobj.activeworkbook.sheets(3).cells(6,3) ‘save changes excelobj.activeworkbook.save ‘close the workbook excelobj.activeworkbook.close ‘Close Excel application excelobj.quit ‘Clear memory Set excelobj = nothing
Förutom ovanstående funktioner har vi följande som vi kan använda beroende på dina behov.
- excelobj.activeworkbook.sheets.add - För att lägga till ett nytt ark
- excelobj.activeworkbook.sheets (i). radera - Ta bort ett ark med index i
- excelobj.activeworkbook.sheeets (i) .name = “Namn efter eget val” - För att ändra namnet på ett ark med indexet i.
- x = excelobj.activeworkbook.sheets.count - för att räkna hur många ark som finns i en arbetsbok
- excelobj. activeworkbook.saves “CompletePathWithNewName.xls” - för att spara arbetsboken under ett nytt namn
Detta avslutar inte bara den här artikeln utan vår QTP-träningsserie. I nästa artikel kommer vi att behandla några viktigare QTP-intervjufrågor med svar . Låt oss veta dina kommentarer och frågor.
=> Besök här för QTP Training Tutorials Series
Håll ögonen öppna för mer användbara artiklar och handledning om programvarutestning! Om du inte prenumererar på vårt gratis nyhetsbrev via e-post, gör det nu senast klicka här .
implementera prioritetskön c ++
Rekommenderad läsning
- QTP-handledningar - 25+ Micro Focus Quick Test Professional (QTP) -träningsövningar
- Parameterisering i QTP (del 2) - QTP-handledning nr 20
- QTP-handledning # 18 - Datadrivna och hybridramar förklarade med QTP-exempel
- Parameterisering i QTP förklarad med exempel (del 1) - QTP-handledning nr 19
- QTP-handledning # 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
- MongoDB Skapa databashandledning
- Databastestning med JMeter