descriptive programming qtp
In deze tutorial leer je wat beschrijvend programmeren in QTP is , en Databaseverbinding in QTP d.w.z. hoe u verbinding kunt maken met externe gegevensbronnen zoals database en MS Excel-sheets met behulp van QTP.
Beschrijvend programmeren is een mechanisme voor het maken van tests waarbij u 'Programmatische beschrijving' van objecten gebruikt in plaats van ze op te nemen.
Klik hier voor de serie QTP-trainingen
Een korte opmerking over deze serie QTP-artikelen voordat we naar de details van deze tutorial gaan:
Dit is de laatste tutorial in onze online QTP-trainingsreeks. Ik hoop dat jullie allemaal genoten hebben van deze tutorials en ervan zijn gaan leren.
Geef ons feedback:
Ik ben op zoek naar uw feedback, niet alleen voor deze tutorialserie, maar ook voor de algehele site. Alstublieft klik hier om uw mening te delen over deze website. Het duurt nauwelijks een paar minuten om te voltooien. We stellen uw feedback en suggesties zeer op prijs. Laat ons weten wat we kunnen doen om uw ervaring met SoftwareTestingHelp.com te verbeteren
rustgevende webservices interviewvragen en antwoorden voor ervaren
Wat je leert:
Beschrijvende programmering in QTP
Beschrijvend programmeren is een mechanisme voor het maken van tests waarbij u 'Programmatische beschrijving' van objecten gebruikt in plaats van ze op te nemen.
Met behulp van deze techniek kan QTP worden gemaakt om objecten te identificeren die niet in de repository staan.
Er zijn 2 varianten van beschrijvende programmering:
- Statisch beschrijvend programmeren
- Dynamisch beschrijvend programmeren
Statische beschrijvende programmering
Een statische methode is wanneer u probeert toegang te krijgen tot een object door een set eigenschappen en waarden rechtstreeks in een VB-instructie te gebruiken.
Syntaxis: TestObject ('Eigenschapnaam1: = eigenschapswaarde', 'eigenschapnaam 2: = eigenschapswaarde',… .n)
Dit is hoe je het gebruikt:
hoe u een array in omgekeerde volgorde afdrukt
Dynamische beschrijvende programmering
Dit werkt door een beschrijvingsobject te maken. Bekijk het volgende voorbeeld om een webButton-object te maken.
- micClass verwijst naar de voorgedefinieerde klassen in QTP. De waarden die u kunt toewijzen kunnen webbutton, weblijst etc. zijn.
- In QTP 10 zijn micClass-waarden hoofdlettergevoelig, maar in QTP 11 en later niet. Als u webbutton schrijft in QTP 10, zal deze mislukken. U moet webButton schrijven. Maar dezelfde webbutton zal passeren in QTP 11.
U kunt alle objecten van een bepaalde klasse op een pagina extraheren door de volgende instructie te gebruiken:
De bovenstaande set instructies extraheert alle knoppen op een pagina en slaat ze op in het ObjectList-object.
De veelzijdigheid van het gebruik van beschrijvende programmering is dat deze coderegels op elke geopende pagina werken. U kunt google.com in uw browser openen en het zal tellen hoeveel knoppen er op die pagina staan. Het werkt op precies dezelfde manier als u amazon.com of een andere site had geopend.
Dit komt omdat we de naam van de titel van de pagina hebben ingesteld op *, wat een reguliere expressie is.
U kunt dus zien hoe we code kunnen schrijven die in meer dan één gelegenheid kan worden gebruikt door de eigenschapswaarden niet hard te coderen en door het maken van de objecten tijdens runtime
Laten we ons voorbeeld een beetje verder nemen. Stel dat ik probeer de namen van alle webknoppen op de pagina een voor een af te drukken.
Als er 4 knoppen op een pagina zijn, kunt u ze allemaal op de volgende manier openen:
Msgbox ObjectList (0) .GetRoProperty ('naam') - Hiermee wordt de naam van de eerste knop afgedrukt.
Msgbox ObjectList (1) .GetRoProperty ('naam')
Msgbox ObjectList (2) .GetRoProperty ('naam')
Msgbox ObjectList (3) .GetRoProperty ('naam')
Let daar op:
- De index van de onderliggende objecten begint bij 0
- Omdat het object zijn eigenschappen tijdens runtime bereikt, gebruiken we de GetRoProperty-methode om hetzelfde op te halen.
We kunnen de bovenstaande code wijzigen om voor een willekeurig aantal knoppen op de pagina te werken door een ‘For-lus’ te gebruiken en de instructies in het ‘For-blok’ te herhalen totdat het einde van het aantal objecten is bereikt.
Het gebruik van een ‘For-lus’ is beter omdat u in dit geval niet hoeft te weten hoeveel objecten er in uw beschrijvingsobject zitten.
Een paar punten om op te merken:
- Je hebt de oefening nodig om beschrijvend programmeren onder de knie te krijgen. Het maakt niet uit hoeveel voorbeelden je bekijkt en begrijpt, je hebt praktijkervaring nodig om er echt mee te werken.
- Als tester wordt van u niet verwacht dat u weet hoe de objecten in uw AUT zijn gecodeerd en op welke waarden ze zijn ingesteld. Gebruik ObjectSpy dus van tijd tot tijd om de juiste eigenschappen te kiezen om de eigenschappen te bekijken.
- De testresultaten geven aan dat het testobject dynamisch is gemaakt tijdens de run-sessie met behulp van een programmeerbeschrijving of de ChildObject-methoden.
Verbinding maken met veelgebruikte externe gegevensbronnen van QTP
Er zullen veel gevallen zijn terwijl u de tests voorbereidt, die u moet verbinden met een externe database of andere gegevensbronnen. Eenmaal verbonden, moet u ook gegevens van en naar deze apps naar QTP verplaatsen en vice versa.
Hoewel het buiten het bestek van deze artikelen valt om een complete gids te bieden voor het werken met externe interfaces, zullen we er enkele bekijken die het meest worden gebruikt.
Databaseverbinding in QTP
Om verbinding te maken met een database, gebruiken we meestal een ADO-verbindingsobject. ADO is de ActiveX Data Objects van Microsoft.
Hieronder volgen de te volgen stappen:
# 1) Maak een DSN. Raadpleeg de zelfstudie over het controlepunt van de database om te zien hoe dit wordt gedaan, of maak er een via het bedieningspaneel.
#twee) Maak een verbindingsobject:
Set conn = CreateObject ('ADODB.connection')
# 3) Maak een recordset-object. Het recordset-object bevat de resultaten van de query die we gaan uitvoeren.
Set rs = CreateObject ('ADODB.RecordSet')
# 4) Open het verbindingsobject en voer de query uit:
conn.Open 'DSN = testDB2; UID = swatiseela; pwd = testing @ 123'
rs.Open “Select * from abc”, conn
# 5) Alle zoekresultaten zijn nu toegankelijk met het object 'rs'.
# 6) Als u bijvoorbeeld het aantal geretourneerde rijen wilt ophalen, kunt u
rs.getrows
# 7) De tabel heeft bijvoorbeeld 2 rijen en 3 kolommen (a, b, c), u hebt als volgt toegang tot de waarden:
Msgbox rs.fields (0). Een
Msgbox rs.fiels (0). B
Msgbox rs.fields (0) .c
# 8) U kunt een lusinstructie gebruiken als er te veel waarden zijn om te openen.
# 9) Enkele van de functies die het recordset-object kan gebruiken, zijn: rs.move, rs.movenext, rs.getrows, rs.close, rs.open, etc.
Laten we alle code in één keer bekijken:
Verbinding maken met MS Excel Sheets
We weten allemaal dat wanneer we een Excel-applicatie openen, het hele bestand een werkmap is met bladen met kolommen en rijen waarin we de gegevens invoeren.
Het volgende is de code en opmerkingen om u te helpen begrijpen hoe het moet.
Afgezien van de bovenstaande functies, hebben we de volgende die we kunnen gebruiken, afhankelijk van uw behoeften.
- excelobj.activeworkbook.sheets.add - Om een nieuw blad toe te voegen
- excelobj.activeworkbook.sheets (i). verwijderen - Om een blad met index i te verwijderen
- excelobj.activeworkbook.sheeets (i) .name = 'Naam van uw keuze' - Om de naam van een blad met de index i te wijzigen.
- x = excelobj.activeworkbook.sheets.count - om te zien hoeveel bladen er in een werkmap staan
- excelobj. activeworkbook.saves 'CompletePathWithNewName.xls' - om de werkmap onder een nieuwe naam op te slaan
Hiermee is niet alleen dit artikel voltooid, maar ook onze QTP-trainingsreeks. In het volgende artikel zullen we enkele belangrijkere behandelen QTP-interviewvragen met antwoorden Laat ons uw opmerkingen en vragen weten.
wat is een gekoppelde lijst c ++
Bezoek hier voor de QTP Training Tutorials-serie
Blijf ons volgen voor meer nuttige artikelen en tutorials over softwaretesten! Als u niet bent geabonneerd op onze gratis e-mailnieuwsbrief, doe dit dan nu door hier klikken
Aanbevolen literatuur
- QTP-zelfstudies - 25+ Micro Focus Quick Test Professional (QTP) -traininghandleidingen
- Parametrering in QTP (deel 2) - QTP Tutorial # 20
- QTP Tutorial # 18 - Datagestuurde en hybride frameworks uitgelegd met QTP-voorbeelden
- Parametrering in QTP uitgelegd met voorbeelden (deel 1) - QTP Tutorial # 19
- QTP Tutorial # 6 - QTP Record en instellingen voor uitvoeren van onze eerste test begrijpen
- QTP Tutorial # 24 - Virtuele objecten en herstelscenario's gebruiken in QTP-tests
- MongoDB Create Database-zelfstudie
- Database testen met JMeter