Ce este programarea descriptivă?
Programarea descriptivă este utilizată pentru a executa operații pe un obiect din AUT a cărui definiție nu este stocată în depozitul de obiecte. Folosind acest mecanism, puteți ocoli identificarea din depozitul de obiecte și puteți furniza descrierea obiectului în declarația însăși.
Un nume de obiect este utilizat pur și simplu pentru a mapa un obiect în script cu descrierea acestuia într-un depozit de obiecte. Adică dacă schimbați numele obiectului în scriptul și în depozitul de obiecte, scriptul ar trebui să ruleze. Urmăriți următorul videoclip despre acest concept
Faceți clic aici dacă videoclipul nu este accesibil
Repere video
- Ștergeți descrierea obiectului casetei de editare câștigătoare a agentului din depozitul de obiecte. Dacă rulați din nou testul, acesta va eșua, deoarece nu poate recunoaște obiectul. Să examinăm motivul pentru care scriptul eșuează
- În timpul timpului de execuție, Micro Focus UFT identifică operația care se efectuează pe caseta WinEdit și Descrierea obiectului în depozitul de obiecte este stocată ca nume de agent. Folosește acest nume pentru a urmări obiectul dintr-un depozit de obiecte. Pentru un părinte, nu puteți avea două obiecte copil cu același nume. Prin urmare, QTP mapează în mod unic obiectul din depozit. Apoi folosește descrierea stocată în Depozitul de obiecte și înlocuiește numele cu descrierea. Apoi folosește această afirmație pentru a identifica obiectul din aplicația aflată sub test / li>
- Deoarece în cazul nostru am șters cu totul această descriere a obiectului scriptul eșuează / li>
- Dar ce se întâmplă dacă în loc de QTP să înlocuiască descrierea obiectului, în calitate de tester specificați direct descrierile obiectului în scriptul dvs. Aceasta nu este altceva decât „Programare descriptivă”
Tipuri de programare descriptivă
Puteți utiliza programarea descriptivă în două moduri
- Static
- Dinamic
Programare descriptivă statică
În Metoda statică, pentru identificarea obiectului, specificați proprietatea unui obiect în formatul următor
proprietate: = valori,
Acest format se numește pereche de valoare de proprietate și este inclus în virgule inversate>
Dacă obiectul dvs. folosește descrieri multiple pentru identificare, le puteți specifica folosind virgule >
Deci, în cazul nostru, descrierea pentru Agent Name devine
"nativeclass: = Edit", "text atașat: = Nume agent:"
Programare descriptivă dinamică
A doua metodă de a face aceeași acțiune este utilizarea programării descriptive dinamice
În cazul în care scriptul dvs. folosește obiectul de programare descriptiv candidat de mai multe ori, va fi foarte obositor să specificați toate perechile de valori ale proprietății pentru fiecare instrucțiune
În astfel de cazuri, puteți utiliza clasa de descriere furnizată de QTP
Sintaxa pentru crearea unui obiect de descriere este
Setați MyDescription = Description.Create ();MyDescription ("proprietate"). Value = "valoare-proprietate";
Aceasta este metoda dinamică
De ce să folosiți programarea descriptivă?
Transcriere video
- Întrebarea de milioane de dolari este de ce să folosim DP atunci când procesul de identificare a obiectelor este gestionat de QTP
- Să presupunem că sunteți desemnat să testați un portal de joburi. Introduceți o interogare de căutare în portal și
- testul dvs. vă așteaptă să selectați toate joburile disponibile .și faceți clic pe aplicația job
- Dar numărul de joburi reflectate va depinde de interogarea de căutare și de joburile disponibile în momentul executării scriptului, dar nu există nicio modalitate de a prezice în avans numărul de joburi care ar fi reflectat
- În astfel de cazuri, puteți utiliza programarea descriptivă. Chiar dacă nu cunoașteți numărul și numele casetelor de selectare, cunoașteți clasa obiectelor ca „WebCheckBox”
- Puteți utiliza metoda ChildObject pentru a returna obiecte aparținând unui anumit părinte
- O linie de cod ca -
Set allObjects = Browser ("Jobs"). Page ("QTP"). ChildObjects ()
- Va returna toate obiectele copil pentru această pagină.
- Dar vrem doar obiecte WebCheckBox. Pentru a face acest lucru, putem crea un obiect de creare a filtrului și putem seta proprietatea acestuia ca casetă de selectare web și să trecem acest filtru ca argument pentru metoda ChildObjects
- În acest caz, sunt returnate numai casetele de selectare.
- Apoi, puteți scrie un cod ca acesta care să acceseze întreaga colecție de casete de selectare începând de la zero și să activeze toate casetele de selectare.
- Apoi, puteți face clic pe butonul Aplicare pentru a finaliza testul
- De asemenea, puteți utiliza programarea descriptivă pentru a rula obiecte care sunt dificil de înregistrat, cum ar fi ascunderea automată a panourilor, obiecte cu ierarhii în schimbare, obiecte interioare imbricate, submeniuri.
- De asemenea, puteți face manipulări avansate de șiruri folosind programarea descriptivă
- Împreună cu proprietatea indexului, programarea descriptivă ar putea fi foarte utilă în identificarea obiectelor dificile.
- Dacă utilizați descrierea programatică pentru un obiect din ierarhia obiectelor, va trebui să utilizați programarea descrierii pentru obiectele secundare succesive
- De exemplu, pentru obiectul de pagină, a fost utilizată programarea descriptivă, dar pentru succesul obiectului copil se folosește Depozitul de obiecte WinEdit, care este incorect
- Dimpotrivă aici, atât pentru Page cât și pentru WinEdit se folosește programarea descriptivă care este corectă