parameterization qtp explained with examples qtp tutorial 19
=> Faceți clic aici pentru seria Tutoriale QTP de formare
Ce veți învăța:
- Ce este parametrizarea QTP?
- Tipuri de parametrizare în QTP
- Parametrizarea în QTP folosind date cu exemplu
- Lectură recomandată
Ce este parametrizarea QTP?
Uneori aplicația nu acceptă înregistrări de date duplicate. În acest caz, dacă rulați același script de testare cu un set fix de date de intrare, o aplicație poate genera o eroare din cauza duplicării datelor. Pentru a evita această problemă, QTP oferă modalități de a accepta diferite intrări de test pentru scriptul de testare.
Acest proces de furnizare a diferitelor valori de intrare prin intermediul parametrilor externi se numește Parameterizare
Tipuri de parametrizare în QTP
Valoarea variabilă poate fi sau tipurile de parametri pot fi:
- Parametrii tabelului de date
- Parametrii de testare / acțiune
- Parametrii variabili de mediu
- Parametrii numărului aleatoriu
În acest tutorial QTP, ne vom concentra în principal pe Parametrizare folosind Datatable. Vom explica alte tipuri de metode de parametrizare în următorul tutorial.
Parametrizarea în QTP
Spuneți că încercați să scrieți un program care verifică valorile de conectare pentru câțiva utilizatori pe gmail.com. Următorul este codul pe care îl aveți pentru un utilizator, dar doriți ca același lucru să ia valori diferite de fiecare dată. Cum faci acest lucru?
Cod pentru conectare la Gmail pentru un utilizator:
SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebEdit('Email').Set 'swatiseela' Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebEdit('Passwd').SetSecure 'sfgs686898' Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebButton('Sign in').Click Browser('Gmail: Email from Google').Page('Gmail - Inbox').Link('Sign out').Click
Acum, accesați vizualizarea Cuvinte cheie și faceți clic pe coloana valoare pentru instrucțiunile setului de id-uri și parole de e-mail
Ecranul tipic care apare atunci când încercați să parametrați:
După cum puteți vedea, valoarea poate fi o constantă, „swatiseela”, în acest caz, ID-ul de autentificare.
Sau dacă alegeți opțiunea de parametrizare, atunci câmpurile corespunzătoare din ecran sunt activate.
c ++ char la șir
Din acest ecran, puteți alege să parametrizați valoarea aleasă fie cu o valoare a tabelului de date, cu o variabilă de mediu sau cu un număr aleatoriu. Deoarece cea mai des utilizată sursă este tabelul de date, vom discuta mai întâi acest lucru.
În afară de acestea, puteți utiliza valorile de intrare și ieșire ale unei anumite acțiuni ca parametru pentru o valoare. Vom discuta și despre asta peste un timp.
Parametrizarea în QTP folosind date cu exemplu
Parametrizarea în QTP folosind Excel
Am verificat valoarea parametrului ON și apoi există o locație în câmpul Datatable care urmează numele.
Nume Numele coloanei corespunzătoare din tabelul de date de unde trebuie preluate datele. În mod implicit, QTP va sugera un nume. Aveți opțiunea de a-l păstra așa cum este sugerat sau de a-l schimba după cum este necesar.
Global Foaie: Această foaie de date este disponibilă pentru toate acțiunile dintr-un test.
Foaia de acțiuni curentă sau foaia locală: după cum sugerează și numele, foaia de date este disponibilă pentru o anumită acțiune.
Voi accesa mai multe rânduri de date în foaia de date globală. Aici este util instrumentul de codificare a parolei. Puteți introduce valori criptate în foaia de date pe care o obțineți de la acest instrument.
Așa arată foaia mea de date:
După parametrizare, așa arată codul:
SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Email').Set DataTable('SignInName', dtGlobalSheet) Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Passwd').SetSecure DataTable('GPassword', dtGlobalSheet) Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebButton('Sign in').Click Browser('Gmail: Email from Google').Page('Gmail - Inbox').Link('Sign out').Click Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').Close
Veți vedea în codul de mai sus că valorile pentru ID-ul de e-mail și parola sunt preluate din tabelul de date.
Acest cod va rula pentru toate cele 4 rânduri de date din foaia globală dacă în următorul ecran am setat opțiunea „Rulați pe toate rândurile” PORNIT:
Pentru orice eventualitate, dacă nu doriți să utilizați ecranul de mai sus pentru a decide câte rânduri trebuie executat codul, puteți face acest lucru programatic. Pentru aceasta, trebuie să selectați opțiunea „Rulați o singură iterație” pe ecranul de mai sus și să scrieți codul în felul următor:
for i=1 to datatable.GetRowCount SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync datatable.SetCurrentRow(i) varName=datatable.value('SignInName') varPwd=datatable.Value('GPassword') Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Email').Set varName Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Passwd').SetSecure varPwd Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebButton('Sign in').Click Browser('Gmail: Email from Google').Page('Gmail - Inbox').Link('Sign out').Click Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').Close next
La executarea unui test care rulează pentru 2 iterații, așa va arăta ecranul rezultatelor testului:
Aș dori să petrec ceva timp examinând codul și încercând să înțeleg de ce fiecare linie și ordinea sa sunt importante pentru executarea cu succes a testului:
- De ce deschid browserul în bucla „for”?
- De ce există declarații de sincronizare peste tot?
- De ce închidem programar browserul la sfârșit, în loc să lăsăm opțiunea „Înregistrați și executați setările - Închideți browserul când testul se închide” să aibă grijă de asta pentru noi?
- Din nou, de ce este declarația de închidere în interiorul buclei „pentru”?
Vă rugăm să rețineți că în fragmentul de cod de mai sus, nu am declarat variabilele din acest test, nu am introdus afirmațiile sau am oferit comentarii. Acest lucru este deliberat, deoarece nu am vrut să diluez esența afirmațiilor. Următorul concept va răspunde la aceste întrebări:
Starea AUT:
implementarea c ++ a listei dublu legată
Regula de bază este - Fiecare iterație ar trebui să înceapă cu AUT fiind aceeași stare și se termină în aceeași stare.
- Dacă declarația de deschidere a paginii gmail.com ar fi în afara buclei for, testul ar rula bine pentru prima iterație, dar pentru următoarea pagina gmail.com nu ar fi fost deschisă și testul ar eșua.
- Dacă declarația de închidere a browserului nu este inclusă în test, atunci testul va deschide un browser cu fiecare iterație și veți ajunge să aveți cât mai multe instanțe ale browserului deschise la numărul de rânduri din tabelul de date.
- Imaginați-vă dacă declarația de închidere se afla în afara buclei for, atunci veți ajunge și cu prea multe browsere.
- Declarație de sincronizare: aceasta forțează testul QTP să aștepte până când o anumită pagină se încarcă complet înainte de a începe să efectueze o anumită operație pe ea.
Încercați întotdeauna să vă întoarceți cererea în statul în care a început. Acest lucru vă va asigura că furnizați aceeași interfață pentru fiecare dintre iterațiile dvs. pentru a interacționa.
Următorul este fragmentul de cod când utilizați o foaie locală în loc de global:
Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Email').Set DataTable('Name', dtLocalSheet) Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Passwd').SetSecure DataTable('Pwd', dtLocalSheet) Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebButton('Sign in').Click
În QTP puteți parametra valorile:
- Puncte de control.
- Proprietățile obiectului pentru un pas selectat.
- Argumente de operație definite pentru un pas selectat.
- Una sau mai multe proprietăți ale unui obiect stocat în depozitul local de obiecte din caseta de dialog Proprietăți obiect sau fereastra Depozit obiect.
Cele de mai sus sunt, de asemenea, un exemplu de date care conduc un anumit test. Vom vedea cum să parametrizăm folosind alte tipuri de parametri în articolul următor.
=> Vizitați aici pentru seria de instruiri QTP de formare
Lectură recomandată
- Parametrizarea în QTP (Partea 2) - Tutorial QTP # 20
- Tutoriale QTP - 25+ Tutoriale de formare Micro Focus Quick Test Professional (QTP)
- Tutorial Selenium Find Element By Text cu exemple
- Tutoriale detaliate pentru eclipsă pentru începători
- QTP Tutorial # 18 - Cadrele bazate pe date și hibride explicate cu exemple QTP
- QTP Tutorial nr. 6 - Înțelegerea setărilor de înregistrare și rulare QTP pentru primul nostru test
- QTP Tutorial # 24 - Utilizarea obiectelor virtuale și scenarii de recuperare în testele QTP
- Programare descriptivă în QTP și conexiune la baze de date în QTP - Tutorial nr. 25