QTP Tutorial # 18-Data Driven and Hybrid Frameworks Explained with QTP Examples
we werken ons een weg door uit te zoeken hoe we een Automation Framework kunnen afleiden dat het beste werkt voor een bepaald testproject en ook het definiëren van bepaalde frameworks die al bestaan.
het voorbeeld dat we gebruikten in het vorige QTP framework artikel was het aanmaken van een nieuw Gmail account.
om te beginnen codeerden we het creating a new account scenario door gewoon op te nemen en af te spelen op een lineaire manier. Toen we zagen hoeveel het ontbrak aan modulariteit, leesbaarheid en herbruikbaarheid, splitsten we het op in functies die zouden worden aangeduid als trefwoorden in de toekomst.
=> Klik hier voor de QTP trainingshandleidingen serie
we bereikten modulariteit, leesbaarheid en herbruikbaarheid door deze methode, maar we moesten het programma nog robuuster maken zodat het verschillende sets van waarden kan aannemen zonder het script zelf te hoeven wijzigen.
dat is precies wat we gaan bereiken met data die de tests aansturen.
Data-Driven Automation Framework met behulp van QTP
het maken van meerdere Google-gebruikersaccounts is een taak die we zullen proberen te volbrengen met behulp van dit framework.
in het eerdere voorbeeld hebben we de voornaam, achternaam, gebruikers-id-gegevens, enz. in onze code terwijl het proberen om een account aan te maken. We zullen de code van de gegevens moeten scheiden als we het aspect data driving voor dit script moeten bereiken.
de gegevens moeten afkomstig zijn van een bron die niet het programma zelf is.
gewoonlijk kan de invoer van gegevens Alles zijn:
- MS Excel-bestanden
- Database
- tekstbestanden
- XML-bestanden….etc.
Excel-bestanden worden het vaakst gebruikt. Het feit dat elke actie in QTP geïntegreerd wordt met een eigen datasheet verklaart waarom dat zo is.
u kunt één of meer gegevensbronnen gebruiken voor één script. Het excel-blad dat bij de actie wordt geleverd, kan worden gebruikt of u kunt ook een extern excel-blad gebruiken. Kortom, een data sheet kan elk relevant extern bestand zijn.
bijvoorbeeld,
hier is de code die we nodig hebben om data drive:
Browser("Gmail: Email from Google").Page("GoogleAccounts").WebEdit("FirstName").Set "swati"Browser("Gmail: Email from Google").Page("Google Accounts").WebEdit("LastName").Set "s"Browser("Gmail: Email from Google").Page("Google Accounts").WebEdit("GmailAddress").Set "test"
alle gegevens zijn nu gecodeerd. Laten we nu eens kijken hoe we deze waarden uit het datasheet kunnen halen.
Ga naar de expert view voor het statement in QTP en klik op de waarde kolom voor een stap.
het volgende venster wordt geopend:
Selecteer de parameter optie, Kies een naam voor de parameter (dit is de kolomnaam in het datasheet), en kies of u het globale blad of het lokale blad gaat gebruiken (globaal blad is beschikbaar voor alle acties in een test, maar het lokale blad is specifiek voor de huidige actie).
voor het veld” Naam ” op het scherm geeft QTP een standaardwaarde. De gebruiker heeft de optie om het hetzelfde te houden of te wijzigen.
na het klikken op OK wordt een nieuwe kolom aangemaakt in de gegevenstabel.
Dit is hoe het datasheet dat 3 sets bevat van de voornaam, achternaam en account-id eruit ziet:
eenmaal geparametreerd, ziet de code eruit zoals hieronder getoond:
Browser("Gmail: Email from Google").Page("Google Accounts").WebEdit("FirstName").Set DataTable("G_First_Name", dtGlobalSheet)Browser("Gmail: Email from Google").Page("Google Accounts").WebEdit("LastName").Set DataTable("G_Last_Name", dtGlobalSheet)Browser("Gmail: Email from Google").Page("Google Accounts").WebEdit("GmailAddress").Set DataTable("gmail_address", dtGlobalSheet)
als we deze 3 Gebruikers-ID ‘ s met de gegevens in het blad moeten maken, hebben we 3 iteraties nodig. Iteratie is niets anders dan een test.
zodra de gegevens zijn ingesteld, zullen we QTP moeten instrueren hoe vaak deze code moet worden uitgevoerd, of hoeveel iteraties.
zo doen we het: Ga naar Bestand – > instellingen en voer uit
stel in het bovenstaande scherm de iteratie-eigenschappen in zoals vereist.
afwisselend kunt u QTP programmatisch instrueren over de herhalingen. Zoals altijd zorgt dit voor meer controle en programmeervaardigheden. Dus het is echt aan het comfortniveau van de tester om een van deze methoden te kiezen.
de componenten van het gegevensgestuurde kader zijn::
- testscript
- gegevensbestanden
- gedeelde functionele bibliotheek (als het bestaat of een lineair programma kan zijn).
- Object repository (nogmaals, deze component zal niet bestaan als beschrijvend programmeren werd gebruikt om objecten te maken).
de testresultaten geven een “geslaagd” of “mislukt” status voor elke test.
afgezien van de standaard gegevenstabel kunnen we elk extern excel-bestand als invoerblad gebruiken.
Hybrid Framework
in het bovenstaande voorbeeld gebruikte u trefwoorden (namen van de functies die de gebruiker heeft aangemaakt) en hebt u de test aangestuurd om er zeker van te zijn dat verschillende gebruikers tegelijkertijd worden aangemaakt. Dit is niets anders dan een hybride kader.
de combinatie van twee of meer frameworks die we tot nu toe hebben besproken is een hybride framework. In mijn ervaring werkt geen enkel raamwerk effectief voor een bepaald project. Het hybride kader wordt het vaakst gebruikt.
weinig belangrijke punten over frameworks:
- het kader is slechts een oplossing die in een bepaalde situatie het beste werkte, maar niet moet worden opgevat als een reeks regels die definitief moeten worden gevolgd. Het moet meer worden gezien als richtlijnen.
- er kunnen veel andere frameworks in gebruik zijn, we hebben alleen de Algemene frameworks opgesomd en uitgelegd.
- nomenclatuur-verschillende mensen pakken hun kaders aan met verschillende namen. Dus als de namen enigszins verschillen van de ene toepassing naar de andere, dan is het normaal.
- de meeste frameworks kunnen in combinatie met elkaar worden gebruikt wanneer een van hen geen allround oplossing kan bieden voor uw testdoelen.
conclusie
omwille van een goed begrip hebben we de begrippen van het kader hier echt vereenvoudigd.
als u framework-gerelateerde problemen heeft waarmee u wordt geconfronteerd, maar die niet in deze artikelen worden behandeld, laat het ons dan weten. We zullen zeker proberen om uw vragen te beantwoorden. Post gerust uw vragen.
=> bezoek hier voor de QTP Training Tutorials Series
laatst bijgewerkt: 29 November 2021