descriptive programming qtp
En aquest tutorial, aprendreu què és la programació descriptiva a QTP , i Connexió a la base de dades en QTP és a dir, com connectar-se a fonts de dades externes com ara bases de dades i fulls MS Excel mitjançant QTP.
La programació descriptiva és un mecanisme per crear proves en què utilitzeu la 'Descripció programàtica' d'objectes en lloc de gravar-los.
=> Feu clic aquí per veure la sèrie de tutorials de formació QTP
Una nota ràpida sobre aquesta sèrie d'articles QTP abans de passar als detalls d'aquest tutorial:
Aquest és l’últim tutorial de la nostra sèrie d’entrenaments en línia sobre QTP. Espero que a tots els hagi agradat aquests tutorials i que hagueu començat a aprendre d’ells.
Doneu-nos comentaris:
Estic buscant els vostres comentaris no només sobre aquesta sèrie de tutorials, sinó sobre el lloc general. Si us plau feu clic aquí per compartir els vostres pensaments sobre aquest lloc web. Difícilment trigaran un parell de minuts a completar-se. Valorem els vostres suggeriments i suggeriments. Feu-nos saber què podem fer per millorar la vostra experiència amb SoftwareTestingHelp.com
ordres unix amb exemples i sintaxi
Què aprendreu:
Programació descriptiva a QTP
La programació descriptiva és un mecanisme per crear proves en què utilitzeu la 'Descripció programàtica' d'objectes en lloc de gravar-los.
Mitjançant aquesta tècnica es pot fer QTP per identificar objectes que no es troben al dipòsit.
Hi ha 2 variacions de programació descriptiva:
- Programació descriptiva estàtica
- Programació descriptiva dinàmica
Programació descriptiva estàtica
Un mètode estàtic és quan intenteu accedir a un objecte mitjançant un conjunt de propietats i valors directament en una sentència VB.
Sintaxi: TestObject ('Nom de la propietat1: = valor de la propietat', 'nom de la propietat 2: = valor de la propietat', ... .n)
Així ho utilitzeu:
detecció de fuites de memòria c ++
Browser(“creationtime:=0”).Page(“title:=Google”).WebButton(“name:=Google Search”)
Programació descriptiva dinàmica
Això funciona creant un objecte de descripció. Mireu l'exemple següent per crear un objecte webButton.
Set Testdesc=description.create Testdesc(“micClass”).value= “webButton”
- micClass fa referència a les classes predefinides de QTP. Els valors que podeu assignar poden ser el botó web, la llista de pàgines web, etc.
- A QTP 10 els valors de micClass distingeixen entre majúscules i minúscules, però a QTP 11 en endavant no ho són. Si escriviu un botó web a QTP 10, fallarà. Haureu d’escriure webButton. Però el mateix botó web passarà a QTP 11.
Podeu extreure tots els objectes d'una classe determinada en una pàgina mitjançant l'afirmació següent:
Set ObjectList=Browser(“creationtime:=0”).Page(“title:=*”).ChildObjects(Testdesc) Msgbox ObjectList.count
El conjunt d’instruccions anteriors extreurà tots els botons d’una pàgina i els emmagatzemarà a l’objecte ObjectList.
La versatilitat d’utilitzar la programació descriptiva és que aquestes línies de codi funcionaran en qualsevol pàgina oberta. Podeu obrir google.com al navegador i comptarà quants botons hi ha en aquesta pàgina. Funcionarà exactament de la mateixa manera si teniu amazon.com o qualsevol altre lloc obert.
Això es deu al fet que el nom del títol de la pàgina és *, que és una expressió regular.
Per tant, podeu veure com podem escriure codi que es pot utilitzar en més d’una ocasió si no codifiquem els valors de les propietats i creant els objectes en temps d'execució .
Prenguem el nostre exemple una mica més enllà. Digueu que intento imprimir els noms de tots els botons web de la pàgina un darrere l’altre.
Si hi ha 4 botons en una pàgina, podeu accedir a cadascun d'ells de la manera següent:
Msgbox ObjectList (0) .GetRoProperty ('nom'): s'imprimirà el nom del primer botó.
Msgbox ObjectList (1) .GetRoProperty ('nom')
Msgbox ObjectList (2) .GetRoProperty ('nom')
Msgbox ObjectList (3) .GetRoProperty ('nom')
Tingues en compte que:
- L’índex dels objectes fills comença a partir de 0
- Com que l'objecte aconsegueix les seves propietats en temps d'execució, fem servir el mètode GetRoProperty per recuperar-ne el mateix.
Podem canviar el codi anterior perquè funcioni per a qualsevol nombre de botons de la pàgina mitjançant un bucle 'Per a' i repetir les sentències dins del bloc 'Per a' fins que arribi al final del recompte d'objectes.
diferència entre les proves de caixes negres i les proves de caixes blanques
For i=0 to ObjectList.count -1 to Step 1 Msgbox ObjectList (i).GetRoProperty(“name”) Next
Utilitzar un bucle 'For' és millor perquè, en aquest cas, no cal saber quants objectes hi ha al vostre objecte de descripció.
Un parell de punts a tenir en compte:
- Necessitareu la pràctica per dominar la programació descriptiva. Independentment de quants exemples vegeu i entengueu, necessitareu experiència pràctica per treballar-hi realment.
- Com a provador, no s’espera que sàpiga com es codifiquen els objectes al vostre AUT i quins valors s’han definit. Per tant, utilitzeu ObjectSpy de tant en tant per triar les propietats adequades per veure-les.
- Els resultats de la prova indicaran que l'objecte de prova s'ha creat dinàmicament durant la sessió d'execució mitjançant una descripció de programació o els mètodes ChildObject.
Connexió a fonts de dades externes d'ús comú des de QTP
Hi haurà molts casos mentre prepareu les proves que us haureu de connectar a una base de dades externa o a altres fonts de dades. Un cop connectat, també haureu de moure les dades cap a i des d'aquestes aplicacions a QTP i viceversa.
Tot i que està fora de l’abast d’aquests articles proporcionar una guia completa per treballar amb interfícies externes, estudiarem algunes que s’utilitzen més habitualment.
Connexió de base de dades a QTP
Per connectar-nos a una base de dades, normalment utilitzem un objecte de connexió ADO. ADO són els objectes de dades ActiveX de Microsoft.
A continuació es detallen els passos que cal seguir:
# 1) Creeu un DSN. Consulteu el tutorial del punt de control de la base de dades per veure com es fa o creeu-ne un des del tauler de control.
# 2) Creeu un objecte de connexió:
Estableix conn = CreateObject ('ADODB.connection')
# 3) Creeu un objecte de conjunt de registres. L'objecte de conjunt de registres conté els resultats de la consulta que executarem.
Estableix rs = CreateObject ('ADODB.RecordSet')
# 4) Obriu l'objecte de connexió i executeu la consulta:
conn.Open 'DSN = testDB2; UID = swatiseela; pwd = testing @ 123'
rs.Obriu “Selecciona * d’abc”, conn
# 5) Ara es pot accedir a tots els resultats de la consulta mitjançant l’objecte “rs”.
# 6) Per exemple, si voleu obtenir el recompte de files, podeu utilitzar-lo
rs.getrows
# 7) Per exemple, la taula té 2 files i 3 columnes (a, b, c) podeu accedir als valors de la següent manera:
Msgbox rs.fields (0) .a
Msgbox rs.fiels (0) .b
Msgbox rs.fields (0) .c
# 8) Podeu utilitzar una sentència de bucle si hi ha massa valors per accedir-hi.
# 9) Algunes de les funcions que poden utilitzar els conjunts de registre són: rs.move, rs.movenext, rs.getrows, rs.close, rs.open, etc.
Vegem tot el codi alhora:
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
Connexió a fulls de càlcul de MS Excel
Tots sabem que quan obrim una aplicació Excel, tot el fitxer és un llibre de treball que conté fulls amb columnes i files on posem les dades.
A continuació es mostra el codi i els comentaris per ajudar-vos a entendre com es fa.
‘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
A part de les funcions anteriors, tenim les següents que podem utilitzar en funció de les vostres necessitats.
- excelobj.activeworkbook.sheets.add - Per afegir un full nou
- excelobj.activeworkbook.sheets (i) .delete - Per suprimir un full amb l’índex i
- excelobj.activeworkbook.sheeets (i) .name = 'Nom que trieu' - Per canviar el nom d'un full amb l'índex i.
- x = excelobj.activeworkbook.sheets.count - per obtenir el recompte de quants fulls hi ha al llibre
- excelobj. activeworkbook.saves 'CompletePathWithNewName.xls' - per desar el llibre amb un nom nou
Això finalitza no només aquest article, sinó la nostra sèrie de formació QTP. En el proper article, tractarem alguns aspectes més importants Preguntes d'entrevistes QTP amb respostes . Feu-nos saber els vostres comentaris i preguntes.
=> Visiteu aquí la sèrie de tutorials de formació QTP
Estigueu atents a articles i tutorials més útils sobre proves de programari. Si no esteu subscrit al nostre butlletí de correu electrònic gratuït, feu-ho ara abans fent clic aquí .
Lectura recomanada
- Tutorials QTP: més de 25 tutorials de formació de Quick Focus Professional Quick Test Professional (QTP)
- Parametrizació a QTP (part 2): tutorial QTP núm. 20
- Tutorial QTP # 18: marcs basats en dades i híbrids explicats amb exemples de QTP
- La parametrització a QTP s'explica amb exemples (primera part) - Tutorial QTP núm. 19
- QTP Tutorial # 6: Descripció de la configuració de registre i execució de QTP per a la nostra primera prova
- Tutorial QTP # 24 - Ús d'objectes virtuals i escenaris de recuperació en proves QTP
- Tutorial de creació de bases de dades de MongoDB
- Proves de bases de dades amb JMeter