what is hybrid framework selenium
Deze informatieve zelfstudie legt uit wat een hybride raamwerk, toepassingen en componenten van Selenium Hybrid Driven Framework is en hoe het te implementeren:
Wat is een hybride raamwerk?
Hybrid Driven Framework is een combinatie van zowel het Data-Driven als het Keyword-Driven framework.
Hier worden de trefwoorden, evenals de testgegevens, extern gemaakt. Trefwoorden worden bijgehouden in een afzonderlijk Java-klassebestand en testgegevens kunnen worden bijgehouden in een eigenschappenbestand / Excel-bestand / kunnen de gegevensprovider van een TestNG-framework gebruiken.
Kijk hier om AZ van Selenium-trainingshandleidingen hier te zien.
Wat je leert:
linkse verbinding versus linkse buitenste verbinding
Inleiding tot hybride raamwerk
Hier is de video-tutorial:
Hybrid Driven framework is meestalgebruikt door handmatige testers die geenveel kennis van programmeertalen. Zulke mensen kunnen gewoon een kijkje nemen in de trefwoorden, testgegevens, objectrepository en meteen beginnen met het maken van de testcase, zonder iets in het framework te hoeven coderen.
Componenten van hybride aangedreven raamwerk
Componenten van het Hybrid Framework zijn vergelijkbaar met de componenten van het Keyword Driven Frameworkwaarin alle testgegevens, evenals de trefwoorden, worden extern gemaakt, waardoor het script in een meer algemene vorm verschijnt
- Functiebibliotheek
- Excel-blad om trefwoorden op te slaan
- Ontwerp testcase sjabloon
- Objectrepository voor elementen / locators
- Testscripts of stuurprogrammascript
# 1) Functiebibliotheek
Voor elke gebruikersactie worden door de gebruiker gedefinieerde methoden gemaakt. Met andere woorden: trefwoorden worden gemaakt in het bibliotheekbestand.
Bijvoorbeeld: Laten we een voorbeeld nemen om de onderstaande testcases te automatiseren.
Testgeval nr | Omschrijving | Teststappen | verwacht resultaat | ||
---|---|---|---|---|---|
AssertElement | xpath | // div (bevat (@ id, 'usericon')) | Weergegeven | ||
een | Controleer of het Amazon-logo aanwezig is | 1. Voer de URL in - https://www.amazon.com | Het Amazon-logo moet op de startpagina worden weergegeven | ||
twee | Controleer de geldige aanmelding | 1. Voer de URL in - https://www.amazon.com 2. Klik op de link 'Aanmelden' 3. Voer een geldig e-mailadres in 4. Klik op doorgaan 5. Voer een geldig wachtwoord in 6. Klik op SignInButton | Het gebruikerspictogram moet aanwezig zijn op de startpagina | ||
3 | Ongeldige login | 1. Voer de URL in - https://www.amazon.com 2. Klik op de link 'Aanmelden' 3. Voer een ongeldig e-mailadres in 4. Klik op doorgaan | Dit foutbericht moet bevatten 'kan geen account vinden' |
Eerst worden de testgevallen en de bijbehorende teststappen geanalyseerd en worden de acties genoteerd.
Zeg, in TC 01: Controleer of het Amazon-logo aanwezig is - de gebruikersacties zijn: URL invoeren
In TC 02: Verifieer geldige aanmelding - de gebruikersacties zijn URL invoeren, klikken, typen
In TC03: Controleer ongeldige login - de gebruikersacties zijn URL invoeren, klikken, typen
Nu wordt het bibliotheekbestand gemaakt met trefwoorden die voor elke actie zijn gedefinieerd, zoals hieronder:
hoe je een array van een methode in java retourneert
Trefwoorden.java
# 2) Excel-blad om trefwoorden op te slaan
Trefwoorden die in het bibliotheekbestand worden gemaakt, worden opgeslagen in een Excel-blad met een beschrijving voor iedereen die dit framework gebruikt om het te begrijpen.
# 3) Ontwerp testcase-sjabloon
Er wordt een Test Case-sjabloon gemaakt voor het framework. Er is geen specifiek sjabloon om te volgen. Volgens het hybride raamwerk moeten zowel testgegevens als trefwoorden worden extern gemaakt. Er wordt dus een sjabloon gemaakt. Bijvoorbeeld:
Voor testgeval 2 - Controleer of de aanmelding geldig is
Teststappen | Type locator | Locator-waarde | Testgegevens | AssertionType | Verwachte waarde |
---|---|---|---|---|---|
URL invoeren | https://www.amazon.com | ||||
Klik | xpath | // div (bevat (@ id, 'SignIn')) | |||
typ in | xpath | // div (bevat (@ id, 'email')) | test@gmail.com | ||
Klik | xpath | // div (bevat (@ id, 'continue')) | |||
typ in | ID kaart | wachtwoord | Wachtwoord @ 123 | ||
Klik | ID kaart | Inloggen |
Evenzo worden teststappen voor elk testgeval ingevuld in een apart blad.
# 4) Objectrepository voor elementen
Er wordt een aparte Repository bijgehouden voor alle elementen op de webpagina. Elk WebElement wordt verwezen met een naam gevolgd door zijn waarde in een Object Repository (in dit geval is het een eigenschappenbestand). Testcase-sjabloon bevat de objectnaam en de waarde ervan wordt uit de repository gehaald, zoals hieronder:
Hier is LoginLink de naam van het object en de waarde ervan wordt gelezen uit OR.properties als ‘// div (bevat (@id,’ SignIn ’))
Dienovereenkomstig wordt code om de waarde uit ObjectRepository te lezen, opgenomen in het script Keywords.java
Bijvoorbeeld Bibliotheekbestand: overweeg een ‘klik’ -actie in Keywords.java
Objectrepository voor testgegevens in testgevallen
Ik zal u een eenvoudig voorbeeld laten zien van hoe alle testgegevens die bij het script zijn betrokken, worden geëxternaliseerd, waarbij het raamwerk algemener is.
- Testgegevens extern maken uit testcase-sjabloon:
Evenzo worden testgegevens ook gelezen uit het eigenschappenbestand.
- Object Repository voor testgegevens in algemeen script
Andere algemene gegevens zoals de browsernaam, de locatie van het uitvoerbare stuurprogramma, de bestandsnaam van de testcase, enz. Kunnen ook worden geëxternaliseerd in een aparte opslagplaats.
In het bovenstaande voorbeeld wordt de browserparameter extern gemaakt in een eigenschappenbestand - Basic.properties.
- Testgegevens van TestNG Suite doorgeven:
TestData kan ook worden doorgegeven vanuit een suite-bestand van TestNG naar de methode.
c ++ willekeurig tussen 0 en 1
We gebruiken een tag genaamd in het TestNG.xml-bestand net boven de klasse waarin deze wordt gebruikt.
Syntaxis:
Zodra de testsuite is gespecificeerd met de parameternaam en zijn waarde, worden annotaties in het script gebruikt om aan te geven welke methode de waarde gebruikt. Dit wordt gespecificeerd met de annotatie @Parameters.
Syntaxis: @Parameters ({'value_to_be_passed'})
Meerdere parameters kunnen ook aan een methode worden doorgegeven, zoals:
Syntaxis:
Houd er rekening mee dat dit niet verwijst naar meerdere waarden van dezelfde parameter, er zijn alleen meerdere waarden van verschillende parameters nodig.
# 5) Stuurprogrammascript
Dit bevat de hoofdlogica om alle testgevallen uit het Excel-blad van de testcase-sjabloon te lezen en voert de overeenkomstige actie uit door uit het bibliotheekbestand te lezen. Het script is ontworpen op basis van de gemaakte testcase-sjabloon.
Gevolgtrekking
Zo kan een Hybrid Framework worden gemaakt en gebruikt om elke applicatie te automatiseren. Dit vermindert op zijn beurt de manuren die worden besteed aan het scripten van de automatiseringscode, aangezien een eenmaal gemaakt raamwerk kan worden gebruikt om meerdere applicaties te automatiseren.
Evenzo kunnen kaders worden gecreëerd op basis van de projectbehoeften en worden gebruikt voor automatiseringsdoeleinden.
We hopen dat je genoten hebt van de reeks informatieve tutorials over Selenium!
Bekijk hier ALLE Selenium-handleidingen.
Aanbevolen literatuur
- Data Driven Framework in Selenium WebDriver met Apache POI
- Selenium Framework maken en toegang krijgen tot testgegevens vanuit Excel - Selenium Tutorial # 21
- Inleiding tot JUnit Framework en het gebruik ervan in Selenium Script - Selenium Tutorial # 11
- TestNG Framework gebruiken voor het maken van Selenium-scripts - TestNG Selenium-zelfstudie # 12
- Datagestuurd of geparametriseerd testen met Spock Framework
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Inleiding tot Selenium WebDriver - Selenium Tutorial # 8
- Gegevens lezen of schrijven vanuit Excel-blad in Selenium Web Driver