descriptive programming qtp
I denne vejledning lærer du hvad beskrivende programmering i QTP er og Databaseforbindelse i QTP dvs. hvordan man opretter forbindelse til eksterne datakilder som database og MS Excel-ark ved hjælp af QTP.
Beskrivende programmering er en mekanisme til oprettelse af tests, hvor du bruger “Programmatisk beskrivelse” af objekter i stedet for at optage dem.
=> Klik her for QTP Training Tutorials Series
En hurtig note om denne QTP-artikelserie, inden vi går til detaljer i denne vejledning:
Dette er den sidste tutorial i vores online QTP-træningsserie. Jeg håber, at I alle nød disse tutorials og begyndte at lære af dem.
Giv os feedback:
Jeg leder efter din feedback ikke kun til denne tutorial-serie, men om det samlede websted. Vær venlig Klik her for at dele dine tanker om dette websted. Det tager næppe et par minutter at gennemføre. Vi værdsætter din feedback og dine forslag. Fortæl os, hvad vi kan gøre for at forbedre din oplevelse med SoftwareTestingHelp.com
hvordan man konverterer char til int i c ++
Hvad du lærer:
Beskrivende programmering i QTP
Beskrivende programmering er en mekanisme til oprettelse af tests, hvor du bruger “Programmatisk beskrivelse” af objekter i stedet for at optage dem.
Ved hjælp af denne teknik kan QTP laves til at identificere objekter, der ikke er i arkivet.
Der er 2 variationer af beskrivende programmering:
- Statisk beskrivende programmering
- Dynamisk beskrivende programmering
Statisk beskrivende programmering
En statisk metode er, når du prøver at få adgang til et objekt ved hjælp af et sæt egenskaber og værdier direkte i en VB-sætning.
Syntaks: TestObject (“Ejendomsnavn1: = egenskabsværdi”, ”egenskabsnavn 2: = egenskabsværdi”,… .n)
Sådan bruger du det:
hvilket lag af osi-modellen bruges til ting som signaler, bits, kabler og stik?
Browser(“creationtime:=0”).Page(“title:=Google”).WebButton(“name:=Google Search”)
Dynamisk beskrivende programmering
Dette fungerer ved at oprette et beskrivelsesobjekt. Se på følgende eksempel for at oprette et webButton-objekt.
Set Testdesc=description.create Testdesc(“micClass”).value= “webButton”
- micClass refererer til de foruddefinerede klasser i QTP. De værdier, du kan tildele, kan være webbutton, webliste osv.
- I QTP er 10 micClass-værdier store og små bogstaver, men i QTP 11 og fremefter er de ikke. Hvis du skriver webbutton i QTP 10, vil den mislykkes. Du bliver nødt til at skrive webButton. Men den samme webbutton vil passere i QTP 11.
Du kan udtrække alle objekter fra en bestemt klasse på en side ved hjælp af følgende udsagn:
Set ObjectList=Browser(“creationtime:=0”).Page(“title:=*”).ChildObjects(Testdesc) Msgbox ObjectList.count
Ovenstående sæt sætninger udtrækker alle knapperne på en side og gemmer dem i ObjectList-objektet.
Alsidigheden ved at bruge beskrivende programmering er, at disse kodelinjer fungerer på enhver åben side. Du kan åbne google.com i din browser, og det tæller, hvor mange knapper der er på den side. Det fungerer nøjagtigt på samme måde, hvis du havde amazon.com eller et andet websted åbent.
Dette skyldes, at vi har navnet på titlen på siden sat til *, hvilket er et regulært udtryk.
Så du kan se, hvordan vi kan skrive kode, der kan bruges i mere end en lejlighed ved ikke hårdt at kode egenskabsværdierne og ved opretter objekterne ved kørsel .
Lad os tage vores eksempel lidt længere. Sig, at jeg prøver at udskrive navnene på alle båndknapperne på siden efter hinanden.
Hvis der er 4 knapper på en side, kan du få adgang til hver af dem på følgende måde:
Msgbox ObjectList (0) .GetRoProperty (“navn”) –Dette udskriver navnet på den første knap.
Msgbox ObjectList (1) .GetRoProperty (“navn”)
Msgbox ObjectList (2) .GetRoProperty (“navn”)
Msgbox ObjectList (3) .GetRoProperty (“navn”)
Noter det:
- Indekset for underordnede objekter starter fra 0
- Da objektet opnår sine egenskaber ved kørsel, bruger vi GetRoProperty-metoden til at hente det samme.
Vi kan ændre ovenstående kode til at fungere for et hvilket som helst antal knapper på siden ved at bruge en 'For-loop' og gentage udsagnene inden for 'For block', indtil den når slutningen af objektantalet.
For i=0 to ObjectList.count -1 to Step 1 Msgbox ObjectList (i).GetRoProperty(“name”) Next
Det er bedre at bruge en 'For-loop', fordi du i dette tilfælde ikke behøver at vide, hvor mange objekter der er i dit beskrivelsesobjekt.
Et par punkter at bemærke:
- Du har brug for øvelsen for at mestre beskrivende programmering. Uanset hvor mange eksempler du ser på og forstår, skal du have praktisk erfaring for virkelig at arbejde med det.
- Som tester forventes det ikke, at du ved, hvordan objekterne er kodet i din AUT, og hvilke værdier de er indstillet til. Så brug ObjectSpy fra tid til anden til at vælge de rigtige egenskaber til at se egenskaberne.
- Testresultaterne vil indikere, at testobjektet blev oprettet dynamisk under kørselssessionen ved hjælp af en programmeringsbeskrivelse eller ChildObject-metoderne.
Oprettelse af forbindelse til almindeligt anvendte eksterne datakilder fra QTP
Der vil være mange forekomster, mens du forbereder testene, at du bliver nødt til at oprette forbindelse til en ekstern DB eller andre datakilder. Når du er tilsluttet, skal du også flytte data til og fra disse apps til QTP og omvendt.
Selv om det er uden for disse artikels rækkevidde at give en komplet vejledning til arbejde med eksterne grænseflader, vil vi se på et par, der er mest brugt.
hvordan man får vist en bin-fil
Databaseforbindelse i QTP
For at oprette forbindelse til en database bruger vi typisk et ADO-forbindelsesobjekt. ADO er Microsofts ActiveX-dataobjekter.
Følgende er de trin, der skal følges:
# 1) Opret et DSN. Se databasekontrolpunktvejledningen for at se, hvordan dette gøres, eller opret en fra kontrolpanelet.
#to) Opret et forbindelsesobjekt:
Indstil conn = CreateObject (“ADODB.connection”)
# 3) Opret et recordset-objekt. Recordset-objektet indeholder resultaterne af den forespørgsel, som vi skal køre.
Indstil rs = CreateObject (“ADODB.RecordSet”)
# 4) Åbn forbindelsesobjektet, og kør forespørgslen:
konn.Åbn “DSN = testDB2; UID = swatiseela; pwd = testing @ 123”
rs. Åbn “Vælg * fra abc”, tilslutning
# 5) Nu kan du få adgang til alle forespørgselsresultater ved hjælp af 'rs' -objektet.
# 6) For eksempel, hvis du vil få antallet af rækker tilbage, kan du bruge
rs.getrows
# 7) For eksempel har tabellen 2 rækker og 3 kolonner (a, b, c), du kan få adgang til værdierne som følger:
Msgbox rs.fields (0) .a
Msgbox rs.fiels (0) .b
Msgbox rs.fields (0) .c
# 8) Du kan bruge en loop-sætning, hvis der er for mange værdier til at få adgang til.
# 9) Nogle af de funktioner, som et indstillet objekt kan bruge, er: rs.move, rs.movenext, rs.getrows, rs.close, rs.open osv.
Lad os se på al koden på én gang:
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
Opretter forbindelse til MS Excel-ark
Vi ved alle, at når vi åbner en excel-applikation, er hele filen en projektmappe, der har ark med kolonner og rækker, hvor vi lægger i dataene.
Følgende er koden og kommentarerne for at hjælpe dig med at forstå, hvordan det gøres.
‘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
Bortset fra ovenstående funktioner har vi følgende, som vi kan bruge afhængigt af dine behov.
- excelobj.activeworkbook.sheets.add - For at tilføje et nyt ark
- excelobj.activeworkbook.sheets (i) .delete - For at slette et ark med indeks i
- excelobj.activeworkbook.sheeets (i) .name = “Valgfrit navn” - Sådan ændres navnet på et ark med indekset i.
- x = excelobj.activeworkbook.sheets.count - for at få optællingen af, hvor mange ark der er i en projektmappe
- excelobj. activeworkbook.saves “CompletePathWithNewName.xls” - for at gemme projektmappen under et nyt navn
Dette afslutter ikke kun denne artikel, men vores QTP-træningsserie. I den næste artikel vil vi dække nogle vigtigere QTP-interviewspørgsmål med svar . Fortæl os venligst dine kommentarer og spørgsmål.
=> Besøg her for QTP Training Tutorials Series
Hold øje med flere nyttige artikler og tutorials om softwaretest! Hvis du ikke abonnerer på vores gratis nyhedsbrev via e-mail, skal du gøre det nu inden klik her .
Anbefalet læsning
- QTP Tutorials - 25+ Micro Focus Quick Test Professional (QTP) Training Tutorials
- Parameterisering i QTP (del 2) - QTP-vejledning nr. 20
- QTP-tutorial # 18 - Datadrevne og hybridrammer forklaret med QTP-eksempler
- Parameterisering i QTP forklaret med eksempler (del 1) - QTP-vejledning nr. 19
- QTP Tutorial # 6 - Forståelse af QTP Record og Run-indstillinger til vores første test
- QTP-tutorial # 24 - Brug af virtuelle objekter og gendannelsesscenarier i QTP-tests
- MongoDB Opret databasevejledning
- Databasetestning med JMeter