selenium framework creation
In de laatste tutorial hebben we u vertrouwd gemaakt met de basisprincipes van frameworks voor testautomatisering , de componenten en typen. De frameworks die in de vorige tutorial werden geïllustreerd, behoorden tot de meest populaire frameworks die door de testbroederschap werden gebruikt.
We bespraken kort op modules gebaseerde frameworks, op bibliotheekarchitectuur gebaseerd framework, op trefwoord gestuurd framework, datagedreven framework en hybride framework. Er zijn ook verschillende andere kaders in de plaats.
Houd er rekening mee dat we het zouden adopteren Data Driven Test Automation Framework voor de rest van onze tutorials.
In de huidige tutorial in deze serie , maken we u kennis met een voorbeeldraamwerk, de Excels die de testgegevens en hun Excel-manipulaties zouden opslaan Op dezelfde manier zouden we verder gaan en nieuwe strategieën en middelen introduceren om ons raamwerk te rijpen.
Dus laten we leren:
- Strategie voor het maken van een kader met behulp van een voorbeeldproject
- Toegang tot de testgegevens die zijn opgeslagen in de externe gegevensbron
Vooruitgaand zouden we beginnen met de beschrijving van de projecthiërarchie die we zouden creëren om de verschillende projectcomponenten te scheiden.
Raadpleeg de onderstaande afbeelding voor de projecthiërarchie die voor het voorbeeldproject is gemaakt. Het onderstaande Java-project kan eenvoudig worden gemaakt binnen de eclipse, zoals we de projecten in de eerdere tutorials hebben gemaakt.
Wat je leert:
Selenium-projectmapstructuur - overzicht
# 1) src - De map bevat alle testscripts, generieke geneesmiddelen, lezers en hulpprogramma's. Al deze bronnen zijn niets anders dan de eenvoudige Java-klassen. Onder de bronmap (src) hebben we een hiërarchie van mappen gemaakt.
een toets - De map 'test' bestaat voornamelijk uit twee ingrediënten: testsuite en de mappen die de verschillende modules van de te testen applicatie vertegenwoordigen. Elk van deze mappen bevat dus de testscripts die specifiek zijn voor de module waaraan ze zijn gekoppeld. Testsuite is een logische combinatie van meer dan één testscript. De gebruiker kan dus een invoer markeren van elk van de testscripts in de testsuite die hij / zij wenst uit te voeren in de volgende runs.
hoe java jar-bestanden te openen
b) nutsvoorzieningen - De map “hulpprogramma's” is samengesteld uit verschillende generieken, constanten, lezers en klassen voor het implementeren van door de gebruiker gedefinieerde uitzonderingen. Elk van de mappen onder hulpprogramma's heeft zijn eigen betekenis.
- Excel Reader - Er is een algemene en gemeenschappelijke klasse gemaakt om de testgegevens (invoerparameters en verwachte resultaten) uit de Excel-sheets te lezen
- Milieu Constanten - De map is de integratie van de Java-klassen die de statische variabelen opslaan die verwijzen naar de paden en andere omgevingsdetails. Deze details kunnen de toepassings-URL, URL naar de databases, referenties voor databases en URL naar een tool van derden zijn die wordt gebruikt. De ongelijksoortige applicatie-URL's kunnen worden ingesteld voor verschillende omgevingen (dev, prod, test, master, slave enz.).
- DataSetters - De map bevat de klassen die de getters en setters implementeren van de testgegevens die zijn opgehaald uit de Excels. Om meerdere sets testgegevens te laden, maken we ArrayLists.
- Gebruikersrollen - De map biedt plaats aan de klassen die zorgen voor de op rollen gebaseerde toegangscriteria voor instinctgebruikers.
- Functie Bibliotheek - De map bestaat uit de klassen die functies en methoden bevatten die kunnen worden gedeeld en gebruikt door de verschillende klassen. Heel vaak worden we verondersteld om bepaalde procedures uit te voeren voorafgaand aan en na de daadwerkelijke testuitvoering, zoals inloggen op de applicatie, het opzetten van omgevingen, activiteiten gerelateerd aan rollen, datamanipulaties, schrijfresultaten, methoden die pre / post-condities genereren voor andere methoden . Omdat we de neiging hebben om deze activiteiten uit te voeren voor alle of de meeste testscripts. Daarom wordt het altijd aanbevolen om een aparte klasse voor dergelijke activiteiten te maken in plaats van ze herhaaldelijk in elk van de testscripts te coderen.
- PreConditionalMethods
- PostConditionalMethods
Heel vaak worden we verondersteld om bepaalde procedures uit te voeren voorafgaand aan en na de daadwerkelijke testuitvoering, zoals inloggen op de applicatie, het opzetten van omgevingen, activiteiten gerelateerd aan gebruikersrollen, datamanipulaties, het schrijven van resultaten, methoden die pre / post-condities genereren voor andere methoden. Omdat we de neiging hebben om deze activiteiten uit te voeren voor alle of de meeste testscripts, wordt het daarom altijd aanbevolen om een aparte klasse voor dergelijke activiteiten te maken in plaats van ze herhaaldelijk in elk van de testscripts te coderen.
Gemeenschappelijke methoden
Net als pre- en postconditions kunnen er methoden en functies zijn die door meer dan één testscript kunnen worden gebruikt. Deze methoden zijn dus gegroepeerd in een klas. Het testscript heeft toegang tot deze methoden met behulp van het object van de gemeenschappelijke klasse.
# 2) Excel-bestanden - De Excel-bestanden worden beschouwd als de gegevensbron / gegevensproviders voor het uitvoeren van testscripts. Deze bestanden slaan de testgegevens op in sleutel / waarde-paren. Merk op dat we een apart Excel-blad maken voor elk testscript, d.w.z. elk testscript heeft zijn eigen testgegevensbestand. De naam van het testscript en de bijbehorende testdatabestanden / Excel-sheet is voor het traceerbaarheidsperspectief hetzelfde gehouden. Bekijk het onderstaande voorbeeld van testgegevensformaat:
Test gegevensformaat
Elk van de kolommen vertegenwoordigt een sleutel en elk van de rijen vertegenwoordigt een testgegevens / waarde. Specificeer de meerdere rijen om hetzelfde testscript uit te voeren met meerdere gegevenssets.
Markeer dat de testgegevensformaten uitsluitend door de gebruiker zijn gedefinieerd. Dus op basis van uw vereisten kunt u de testgegevensbestanden aanpassen.
# 3) Bibliotheek - De map fungeert als een repository / artifactory voor alle benodigde jar-bestanden, bibliotheken, stuurprogramma's enz. Om de testomgeving met succes te bouwen en om de testscripts uit te voeren. Raadpleeg de volgende afbeelding om de bibliotheken te bekijken die we binnen ons project zouden gebruiken.
# 4) logboeken - De map bevat een .txt-bestand waarin de logboekgegevens bij elke uitvoering worden opgeslagen.
# 5) testmateriaal - De map bevat de feitelijke testgegevens die eventueel moeten worden geüpload. Deze map zou in beeld komen als we testscenario's tegenkomen waarbij de gebruiker bestanden, documenten, afbeeldingen, rapporten etc. moet uploaden.
# 6) build.xml - Het xml-bestand wordt gebruikt door de 'Ant Server' om het hele bouwproces te automatiseren.
# 7) log4j.xml - Dit xml-bestand wordt gebruikt door een op Java gebaseerd hulpprogramma genaamd 'Log4j' om de uitvoeringslogboeken te genereren.
Notitie : We zouden meer in detail bestuderen over de logboeken, door de gebruiker gedefinieerde uitzonderingen en Ant in de komende tutorials. Raak dus niet in paniek als u tussen de begrippen in de war raakt.
Laten we nu, terwijl we verder gaan, het fenomeen begrijpen waarbij we toegang krijgen tot de Excel-bestanden en de testgegevens in onze testscripts vullen.
Om het proces gemakkelijker te begrijpen, splitsen we het proces op in de volgende stappen.
Test gegevenscreatie
Stap 1 De eerste en belangrijkste stap is het maken van de testgegevens waarmee we de testscripts zouden uitvoeren. Laten we, rekening houdend met het bovengenoemde testgegevensformaat, een Excel-bestand maken met de naam 'TestScript1'. Voorzie de waarden in de elementen.
Stap 2 De volgende stap is het downloaden van een standaard op Java gebaseerde API / bibliotheek met de naam 'Java Excel Library' (jxl) om toegang te krijgen tot de reeds gemaakte generieke methoden voor Excel-manipulatie.
Stap 3 Maak een generieke Excel Reader-klasse met de naam 'ExcelReader.java'. Kopieer de onderstaande code in ExcelReader.java.
Stap 4 Maak een generieke klasse - 'CommonMethods.java'. Maak een algemene methode binnen de klasse die de cellen van het Excel-blad zou lezen met behulp van de methoden die zijn geïmplementeerd in ExcelReader.java.
Stap 5 Maak een nieuwe Java-klasse met de naam 'TestData.java'. Deze klasse zou fungeren als een getter en setter voor Excel-gegevens. Kopieer en plak de volgende code in de klasse TestData.java.
Stap 6 De volgende stap is het maken van instanties van de Java-klassen 'TestData.java' en 'CommonMethods.java' in het testscript om toegang te krijgen tot de testgegevens en deze te vullen. Raadpleeg het onderstaande codefragment voor objectinitialisatie, het lezen van Excel-gegevens en het invullen van de waarden waar nodig.
Daarom kan met behulp van de instantie van testData.java klasse in combinatie met getters elke testgegevenswaarde in het script worden ingevuld.
Gevolgtrekking:
De tutorial draaide voornamelijk om begrippen als Framework Creation en Toegang krijgen tot testgegevens van de excels. Aan de hand van een voorbeeldproject hebben we u kennis laten maken met de Framework-creatie-strategie. We hebben kort de verschillende onderdelen en aspecten van ons raamwerk belicht.
soorten testen van computersysteem omvatten
Om toegang te krijgen tot de testgegevens die zijn opgeslagen in de externe gegevensbron, hebben we een op Java gebaseerde API - jxl. We hebben ook de voorbeeldcode gemaakt voor het lezen en invullen van de Excel-gegevens in de testscripts.
Volgende les # 22 In de volgende tutorial zouden we onze tutorial baseren op het concepten van generieke geneesmiddelen en hun toegankelijkheidsmechanisme We zouden een paar generieke voorbeeldmethoden maken en deze vervolgens openen in de testscripts. We laten u ook kennismaken met het concept van Testsuite en de ontwikkeling van voorbeeldcode.
Aanbevolen literatuur
- Inleiding tot JUnit Framework en het gebruik ervan in Selenium Script - Selenium Tutorial # 11
- Data Driven Framework in Selenium WebDriver met Apache POI
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Inleiding tot Selenium WebDriver - Selenium Tutorial # 8
- Diepgaande Eclipse-zelfstudies voor beginners
- TestNG Framework gebruiken voor het maken van Selenium-scripts - TestNG Selenium-zelfstudie # 12
- Efficiënte Selenium-scripts en scenario's voor probleemoplossing - Selenium-zelfstudie # 27
- Selenium-scripts debuggen met logboeken (Log4j-zelfstudie) - Selenium-zelfstudie # 26