what is hybrid framework selenium
In diesem informativen Lernprogramm wird erläutert, was ein Hybrid-Framework ist, welche Verwendungen und Komponenten ein Selenium Hybrid Driven Framework verwendet und wie es implementiert wird:
Was ist ein Hybrid-Framework?
Hybrid Driven Framework ist eine Kombination aus datengesteuertem und schlüsselwortgesteuertem Framework.
Hier werden die Schlüsselwörter sowie die Testdaten externalisiert. Schlüsselwörter werden in einer separaten Java-Klassendatei verwaltet, und Testdaten können entweder in einer Eigenschaftendatei / Excel-Datei verwaltet werden oder können den Datenprovider eines TestNG-Frameworks verwenden.
=> Überprüfen Sie hier, um A-Z von Selen Training Tutorials hier zu sehen.
Was du lernen wirst:
Testen von Cross Site Scripting
Einführung in das Hybrid Framework
Hier ist das Video-Tutorial:
Hybrid Driven Framework ist meistenswird von manuellen Testern verwendet, die keine habenviele Kenntnisse der Programmiersprachen. Solche Personen können sich einfach die Schlüsselwörter, Testdaten und das Objekt-Repository ansehen und sofort mit der Erstellung des Testfalls beginnen, ohne etwas im Framework codieren zu müssen.
Komponenten des Hybrid Driven Frameworks
Die Komponenten des Hybrid Frameworks ähneln den Komponenten des Keyword Driven FrameworkDabei werden alle Testdaten sowie die Schlüsselwörter externalisiert, sodass das Skript in einer allgemeineren Form angezeigt wird
- Funktionsbibliothek
- Excel-Tabelle zum Speichern von Schlüsselwörtern
- Entwurfstestfallvorlage
- Objekt-Repository für Elemente / Locators
- Testskripte oder Treiberskripte
# 1) Funktionsbibliothek
Für jede Benutzeraktion werden benutzerdefinierte Methoden erstellt. Mit anderen Worten, Schlüsselwörter werden in der Bibliotheksdatei erstellt.
Zum Beispiel: Nehmen wir eine Instanz, um die folgenden Testfälle zu automatisieren.
Testfall Nr | Beschreibung | Testschritte | erwartetes Ergebnis | ||
---|---|---|---|---|---|
AssertElement | xpath | // div (enthält (@ id, 'usericon')) | Wird angezeigt | ||
1 | Überprüfen Sie, ob das Amazon-Logo vorhanden ist | 1. Geben Sie die URL ein - https://www.amazon.com | Das Amazon-Logo sollte auf der Startseite angezeigt werden | ||
zwei | Überprüfen Sie die gültige Anmeldung | 1. Geben Sie die URL ein - https://www.amazon.com 2. Klicken Sie auf den Link 'Anmelden' 3. Geben Sie eine gültige E-Mail-Adresse ein 4. Klicken Sie auf Weiter 5. Geben Sie ein gültiges Passwort ein 6. Klicken Sie auf SignInButton | Das Benutzersymbol sollte auf der Homepage vorhanden sein | ||
3 | Ungültiger Login | 1. Geben Sie die URL ein - https://www.amazon.com 2. Klicken Sie auf den Link 'Anmelden' 3. Geben Sie eine ungültige E-Mail-Adresse ein 4. Klicken Sie auf Weiter | Diese Fehlermeldung sollte enthalten, dass kein Konto gefunden werden kann. |
Zunächst werden die Testfälle und ihre Testschritte analysiert und ihre Aktionen notiert.
Sagen Sie, in TC 01: Überprüfen Sie, ob das Amazon-Logo vorhanden ist. Die Benutzeraktionen lauten wie folgt: Geben Sie die URL ein
Im TC 02: Überprüfen Sie die gültige Anmeldung. Die Benutzeraktionen sind URL eingeben, Klicken, Eingeben
Im TC03: Überprüfen Sie die ungültige Anmeldung. Die Benutzeraktionen sind URL eingeben, Klicken, Eingeben
Jetzt wird die Bibliotheksdatei mit Schlüsselwörtern erstellt, die für jede Aktion wie folgt definiert sind:
bestes Spionagegerät für Handys
Keywords.java
package Keywords.Defined; import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; public class Keywords { String path = System.getProperty('user.dir'); WebDriver driver; // driver object is declared //method for entering URL – Keyword is ‘enter_URL’ public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); } //method for typing action – Keyword is ‘type’ public void typeIn(WebDriver driver, String locatorValue, String locatorType, String testdata) { driver.findElement(this.getObject(ObjectName,locatorType)).sendKeys(testdata); } //method for click action – Keyword is ‘click’ public void click(WebDriver driver, String locatorValue, String locatorType) { driver.findElement(this.getObject(ObjectName,locatorType)).click(); } }
# 2) Excel-Tabelle zum Speichern von Schlüsselwörtern
Schlüsselwörter, die in der Bibliotheksdatei erstellt werden, werden in einer Excel-Tabelle mit ihrer Beschreibung gespeichert, damit jeder, der dieses Framework verwendet, sie verstehen kann.
# 3) Design Test Case Template
Für das Framework wird eine Testfallvorlage erstellt. Es gibt keine spezifische Vorlage, der man folgen könnte. Gemäß dem Hybrid Framework sollten sowohl Testdaten als auch Schlüsselwörter externalisiert werden. Daher wird eine Vorlage entsprechend erstellt. Zum Beispiel:
Für Testfall 2 - Überprüfen Sie die gültige Anmeldung
Testschritte | Locator-Typ | Locator-Wert | Testdaten | AssertionType | Erwarteter Wert |
---|---|---|---|---|---|
URL eingeben | https://www.amazon.com | ||||
Klicken | xpath | // div (enthält (@ id, 'SignIn')) | |||
eintippen | xpath | // div (enthält (@ id, 'email')) | test@gmail.com | ||
Klicken | xpath | // div (enthält (@ id, 'continue')) | |||
eintippen | Ich würde | Passwort | Passwort @ 123 | ||
Klicken | Ich würde | Einloggen |
Ebenso werden Testschritte für jeden Testfall in einem separaten Blatt ausgefüllt.
# 4) Objekt-Repository für Elemente
Für alle Elemente auf der Webseite wird ein separates Repository verwaltet. Jedes WebElement wird mit einem Namen gefolgt von seinem Wert in einem Objekt-Repository referenziert (in diesem Fall handelt es sich um eine Eigenschaftendatei). Die Testfallvorlage enthält den Objektnamen und ihr Wert wird wie folgt aus dem Repository übernommen:
Hier ist LoginLink der Name des Objekts und sein Wert wird aus OR.properties als '// div (enthält (@id,' SignIn ')) gelesen.
Dementsprechend wird Code zum Lesen des Werts aus ObjectRepository in das Skript Keywords.java aufgenommen
Zum Beispiel Bibliotheksdatei: Betrachten Sie die Aktion 'Klicken' in Keywords.java
public class Keywords { public void click(WebDriver driver, String ObjectName, String locatorType) throws IOException{ driver.findElement(this.getObject(ObjectName, locatorType)).click(); } By getObject(String ObjectName, String locatorType) throws IOException{ //Object Repository is opened File file = new File(path+'\Externals\Object Repository.properties'); FileInputStream fileInput = new FileInputStream(file); //Properties file is read Properties prop = new Properties(); //find by xpath if(locatorType.equalsIgnoreCase('XPATH')){ return By.xpath(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } //find by class else if(locatorType.equalsIgnoreCase('ID')){ return By.Id(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } //find by name else if(locatorType.equalsIgnoreCase('NAME')){ return By.name(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } return null; } }
Objekt-Repository für Testdaten in Testfällen
Lassen Sie mich Ihnen ein einfaches Beispiel dafür zeigen, wie alle am Skript beteiligten Testdaten externalisiert werden, wobei das Framework allgemeiner ist.
- Externalisierung von Testdaten aus der Testfallvorlage:
In ähnlicher Weise werden Testdaten auch aus der Eigenschaftendatei gelesen.
- Objekt-Repository für Testdaten im allgemeinen Skript
Andere allgemeine Daten wie Browsername, Speicherort des ausführbaren Treibers, Dateiname des Testfalls usw. können ebenfalls in einem separaten Repository ausgelagert werden.
Im obigen Beispiel wird der Browserparameter in einer Eigenschaftendatei - Basic.properties - externalisiert.
- Übergeben von Testdaten aus der TestNG Suite:
TestData kann auch aus einer Suite-Datei von TestNG an die Methode übergeben werden.
Unterschied zwischen Teststrategie und Testplan
Wir verwenden ein Tag, das in der Datei TestNG.xml direkt über der Klasse aufgerufen wird, in der es verwendet wird.
Syntax:
Sobald die Testsuite mit dem Parameternamen und ihrem Wert angegeben wurde, werden im Skript Anmerkungen verwendet, um anzugeben, welche Methode den Wert verwendet. Dies wird mithilfe der Annotation @Parameters angegeben.
Syntax: @Parameters ({'value_to_be_passed'})
Es können auch mehrere Parameter an eine Methode übergeben werden:
Syntax :
@Parameters({“Chrome”}, {“ TestCase.xls”}, {“ chromedriver.exe”}) public void init(String Browser, String SheetName, String DriverLocation){ ….. …… ………. }
Beachten Sie, dass sich dies nicht auf mehrere Werte desselben Parameters bezieht, sondern nur auf mehrere Werte verschiedener Parameter.
# 5) Treiberskript
Diese enthält die Hauptlogik zum Lesen aller Testfälle aus dem Excel-Blatt der Testfallvorlage und führt die entsprechende Aktion durch Lesen aus der Bibliotheksdatei aus. Das Skript basiert auf der erstellten Testfallvorlage.
Fazit
Somit kann ein Hybrid Framework erstellt und verwendet werden, um jede Anwendung zu automatisieren. Dies reduziert wiederum den Arbeitsaufwand für die Skripterstellung des Automatisierungscodes, da ein einmal erstelltes Framework zur Automatisierung mehrerer Anwendungen verwendet werden kann.
Ebenso können Frameworks entsprechend den Projektanforderungen erstellt und für Automatisierungszwecke verwendet werden.
Wir hoffen, Ihnen hat die Reihe informativer Tutorials zu Selen gefallen!
=> Überprüfen Sie ALLE Selen-Tutorials hier.
Literatur-Empfehlungen
- Datengesteuertes Framework in Selenium WebDriver mit Apache POI
- Selenium Framework Erstellung und Zugriff auf Testdaten aus Excel - Selenium Tutorial # 21
- Einführung in JUnit Framework und seine Verwendung in Selenium Script - Selenium Tutorial # 11
- Verwendung des TestNG-Frameworks zum Erstellen von Selenium-Skripten - TestNG Selenium Tutorial # 12
- Datengesteuertes oder parametrisiertes Testen mit Spock Framework
- Cucumber Selenium Tutorial: Integration von Cucumber Java Selenium WebDriver
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- Lesen oder Schreiben von Daten aus einer Excel-Tabelle in Selenium Web Driver