most popular test automation frameworks with pros
In den letzten Selenium-Tutorials haben wir verschiedene häufig verwendete und im Volksmund verwendete besprochen Befehle in WebDriver , Umgang mit Webelementen wie Webtabellen, Frames und Umgang mit Ausnahmen in Selenium-Skripten.
Wir haben jeden dieser Befehle mit Beispielcode-Schnipsel und Beispielen besprochen, damit Sie diese Befehle effektiv verwenden können, wenn Sie auf ähnliche Situationen stoßen. Unter den Befehlen, die wir im vorherigen Tutorial besprochen haben, sind nur wenige von größter Bedeutung.
Während wir in der Selenium-Reihe vorankommen, würden wir uns darauf konzentrieren Erstellung des Automation Frameworks in den nächsten Tutorials. Wir würden auch verschiedene Aspekte eines Automatisierungsframeworks, Arten von Automatisierungsframeworks, die Vorteile der Verwendung eines Frameworks und die grundlegenden Komponenten, die ein Automatisierungsframework bilden, beleuchten.
Was du lernen wirst:
- Was ist Framework?
- Test Automation Framework
- Arten von Test Automation Framework
- # 1) Modulbasiertes Testframework
- # 2) Framework zum Testen der Bibliotheksarchitektur
- # 3) Datengesteuertes Test-Framework
- # 4) Keyword Driven Testing Framework
- # 5) Hybrid Testing Framework
- # 6) Verhaltensorientiertes Entwicklungs-Framework
- Fazit
- Literatur-Empfehlungen
Was ist Framework?
Ein Framework wird als eine Kombination von festgelegten Protokollen, Regeln, Standards und Richtlinien betrachtet, die als Ganzes integriert oder befolgt werden können, um die Vorteile des vom Framework bereitgestellten Gerüsts zu nutzen.
Betrachten wir ein reales Szenario.
Wir benutzen sehr oft Aufzüge oder Aufzüge. Es gibt einige Richtlinien, die im Aufzug aufgeführt sind und befolgt und beachtet werden müssen, um den maximalen Nutzen und den längeren Service des Systems zu nutzen.
Daher haben die Benutzer möglicherweise die folgenden Richtlinien bemerkt:
- Überprüfen Sie die maximale Kapazität des Aufzugs und steigen Sie nicht in einen Aufzug, wenn die maximale Kapazität erreicht ist.
- Drücken Sie die Alarmtaste im Notfall oder bei Problemen.
- Lassen Sie den Passagier vor dem Betreten des Aufzugs aus dem Aufzug aussteigen und halten Sie sich von den Türen fern.
- Vermeiden Sie im Falle eines Brandes im Gebäude oder in einer zufälligen Situation die Benutzung des Aufzugs.
- Spielen oder springen Sie nicht in den Aufzug.
- Rauchen Sie nicht im Aufzug.
- Rufen Sie um Hilfe / Unterstützung, wenn sich die Tür nicht öffnet oder wenn der Aufzug überhaupt nicht funktioniert. Versuchen Sie nicht, die Türen mit Gewalt zu öffnen.
Es kann viel mehr Regeln oder Richtlinien geben. Wenn diese Richtlinien befolgt werden, wird das System für die Benutzer vorteilhafter, zugänglicher, skalierbarer und weniger problematisch.
Wenn wir jetzt über „Test Automation Frameworks“ sprechen, konzentrieren wir uns auf diese.
Test Automation Framework
Ein „Test Automation Framework“ ist ein Gerüst, das eine Ausführungsumgebung für die Automatisierungstestskripte bereitstellt. Das Framework bietet dem Benutzer verschiedene Vorteile, mit denen er die Automatisierungstestskripte effizient entwickeln, ausführen und melden kann. Es ist eher ein System, das speziell zur Automatisierung unserer Tests entwickelt wurde.
In einer sehr einfachen Sprache können wir sagen, dass ein Framework eine konstruktive Mischung aus verschiedenen Richtlinien, Codierungsstandards, Konzepten, Prozessen, Praktiken, Projekthierarchien, Modularität, Berichtsmechanismen, Testdateninjektionen usw. zum Testen der Säulenautomatisierung ist. Somit kann der Benutzer diese Richtlinien befolgen und gleichzeitig die Anwendung automatisieren, um die Vorteile verschiedener produktiver Ergebnisse zu nutzen.
Die Vorteile können in verschiedenen Formen vorliegen, z. B. einfache Skripterstellung, Skalierbarkeit, Modularität, Verständlichkeit, Prozessdefinition, Wiederverwendbarkeit, Kosten, Wartung usw. Um diese Vorteile nutzen zu können, wird Entwicklern empfohlen, eine oder mehrere zu verwenden das Test Automation Framework.
Darüber hinaus entsteht die Notwendigkeit eines einzigen und standardmäßigen Test Automation Frameworks, wenn mehrere Entwickler an den verschiedenen Modulen derselben Anwendung arbeiten und wenn wir Situationen vermeiden möchten, in denen jeder Entwickler seinen Ansatz zur Automatisierung umsetzt.
Hinweis : Beachten Sie, dass ein Testframework immer anwendungsunabhängig ist, dh mit jeder Anwendung verwendet werden kann, unabhängig von den Komplikationen (wie Technologie-Stack, Architektur usw.) der zu testenden Anwendung. Das Framework sollte skalierbar und wartbar sein.
Vorteil des Test Automation Frameworks
- Wiederverwendbarkeit von Code
- Maximale Abdeckung
- Wiederherstellungsszenario
- Kostengünstige Wartung
- Minimaler manueller Eingriff
- Einfache Berichterstattung
Arten von Test Automation Framework
Nachdem wir eine grundlegende Vorstellung davon haben, was ein Automatisierungsframework ist, möchten wir Sie in diesem Abschnitt mit den verschiedenen Arten von Testautomatisierungsframeworks vertraut machen, die auf dem Markt verfügbar sind. Wir würden auch versuchen, die Vor- und Nachteile sowie die Empfehlungen zur Benutzerfreundlichkeit zu beleuchten.
Heutzutage gibt es eine Reihe unterschiedlicher Automation Frameworks. Diese Frameworks können sich aufgrund ihrer Unterstützung verschiedener Schlüsselfaktoren für die Automatisierung wie Wiederverwendbarkeit, Wartungsfreundlichkeit usw. voneinander unterscheiden.
Was ist ein SWF-Dateityp?
Lassen Sie uns die wenigen am häufigsten verwendeten Test Automation Frameworks diskutieren:
- Modulbasiertes Testframework
- Framework zum Testen der Bibliotheksarchitektur
- Datengesteuertes Test-Framework
- Keyword Driven Testing Framework
- Hybrid Testing Framework
- Verhaltensorientiertes Entwicklungs-Framework
(Klicken Sie auf das Bild, um es vergrößert anzuzeigen.)
Lassen Sie uns jeden von ihnen im Detail besprechen.
Zuvor möchte ich jedoch auch erwähnen, dass der Benutzer trotz dieses Frameworks immer die Möglichkeit hat, sein eigenes Framework zu erstellen und zu entwerfen, das für seine Projektanforderungen am besten geeignet ist.
# 1) Modulbasiertes Testframework
Das modulbasierte Testing Framework basiert auf einem der bekanntesten OOPs-Konzepte - Abstraction. Das Framework unterteilt die gesamte „Testanwendung“ in eine Reihe von logischen und isolierten Modulen. Für jedes Modul erstellen wir ein separates und unabhängiges Testskript. Wenn diese Testskripte zusammengenommen werden, wird ein größeres Testskript erstellt, das mehr als ein Modul darstellt.
Diese Module sind durch eine Abstraktionsschicht so getrennt, dass die in den Abschnitten der Anwendung vorgenommenen Änderungen keine Auswirkungen auf dieses Modul haben.
Vorteile:
- Das Framework führt den hohen Grad an Modularisierung ein, der zu einer einfacheren und kostengünstigeren Wartung führt.
- Das Framework ist ziemlich skalierbar
- Wenn die Änderungen in einem Teil der Anwendung implementiert sind, muss nur das Testskript, das diesen Teil der Anwendung darstellt, repariert werden, damit alle anderen Teile unberührt bleiben.
Nachteile:
- Während wir Testskripte für jedes Modul separat implementieren, binden wir die Testdaten (Daten, mit denen wir Tests durchführen sollen) in die Testskripte ein. Wenn wir also mit einem anderen Satz von Testdaten testen sollen, müssen die Manipulationen in den Testskripten vorgenommen werden.
# 2) Framework zum Testen der Bibliotheksarchitektur
Das Library Architecture Testing Framework basiert grundlegend auf einem modulbasierten Testing Framework mit einigen zusätzlichen Vorteilen. Anstatt die zu testende Anwendung in Testskripte zu unterteilen, trennen wir die Anwendung in Funktionen, oder vielmehr können allgemeine Funktionen auch von den anderen Teilen der Anwendung verwendet werden. Daher erstellen wir eine gemeinsame Bibliothek mit gemeinsamen Funktionen für die zu testende Anwendung. Daher können diese Bibliotheken bei Bedarf aus den Testskripten aufgerufen werden.
Die grundlegende Grundlage des Frameworks besteht darin, die allgemeinen Schritte zu bestimmen und sie in Funktionen unter einer Bibliothek zu gruppieren und diese Funktionen bei Bedarf in den Testskripten aufzurufen.
Beispiel : Die Anmeldeschritte können zu einer Funktion zusammengefasst und in einer Bibliothek gespeichert werden. Somit können alle Testskripte, die zum Anmelden bei der Anwendung erforderlich sind, diese Funktion aufrufen, anstatt den Code erneut zu schreiben.
Vorteile:
- Wie das modulbasierte Framework führt auch dieses Framework den hohen Grad an Modularisierung ein, was zu einer einfacheren und kostengünstigeren Wartung und Skalierbarkeit führt.
- Während wir gemeinsame Funktionen erstellen, die von den verschiedenen Testskripten im gesamten Framework effizient verwendet werden können. Somit führt das Framework ein hohes Maß an Wiederverwendbarkeit ein.
Nachteile:
- Wie bei Module Based Framework werden die Testdaten in den Testskripten abgelegt, sodass jede Änderung der Testdaten auch Änderungen im Testskript erfordern würde.
- Mit der Einführung von Bibliotheken wird das Framework etwas kompliziert.
# 3) Datengesteuertes Test-Framework
Während der Automatisierung oder des Testens einer Anwendung kann es manchmal erforderlich sein, dieselbe Funktionalität mehrmals mit den verschiedenen Eingabedaten zu testen. In solchen Fällen können wir die Testdaten daher nicht in das Testskript einbetten lassen. Daher wird empfohlen, Testdaten außerhalb der Testskripte in einer externen Datenbank zu speichern.
Das Data Driven Testing Framework hilft dem Benutzer, die Testskriptlogik und die Testdaten voneinander zu trennen. Der Benutzer kann die Testdaten in einer externen Datenbank speichern. Die externen Datenbanken können Eigenschaftendateien, XML-Dateien, Excel-Dateien, Textdateien, CSV-Dateien, ODBC-Repositorys usw. sein. Die Daten werden üblicherweise in Schlüssel-Wert-Paaren gespeichert. Somit kann der Schlüssel verwendet werden, um auf die Daten in den Testskripten zuzugreifen und diese zu füllen.
Hinweis : Die in einer externen Datei gespeicherten Testdaten können sowohl zur Matrix des erwarteten Werts als auch zur Matrix der Eingabewerte gehören.
Wie führe ich SWF-Dateien aus?
Beispiel::
Lassen Sie uns den obigen Mechanismus anhand eines Beispiels verstehen.
Betrachten wir die Funktion 'Google Mail - Anmeldung'.
Schritt 1: In erster Linie müssen Sie eine externe Datei erstellen, in der die Testdaten (Eingabedaten und erwartete Daten) gespeichert sind. Betrachten wir zum Beispiel ein Excel-Blatt.
Schritt 2: Der nächste Schritt besteht darin, die Testdaten in das Automatisierungstestskript einzufügen. Zu diesem Zweck können mehrere APIs zum Lesen der Testdaten verwendet werden.
public void readTD(String TestData, String testcase) throws Exception { TestData=readConfigData(configFileName,'TestData',driver); testcase=readConfigData(configFileName,'testcase',driver); FileInputStream td_filepath = new FileInputStream(TestData); Workbook td_work =Workbook.getWorkbook(td_filepath); Sheet td_sheet = td_work.getSheet(0); if(counter==0) { for (int i = 1,j = 1; i <= td_sheet.getRows()-1; i++){ if(td_sheet.getCell(0,i).getContents().equalsIgnoreCase(testcase)){ startrow = i; arrayList.add(td_sheet.getCell(j,i).getContents()); testdata_value.add(td_sheet.getCell(j+1,i).getContents());}} for (int j = 0, k = startrow +1; k <= td_sheet.getRows()-1; k++){ if (td_sheet.getCell(j,k).getContents()==''){ arrayList.add(td_sheet.getCell(j+1,k).getContents()); testdata_value.add(td_sheet.getCell(j+2,k).getContents());}} } counter++; }
Die obige Methode hilft beim Lesen der Testdaten und der folgende Testschritt hilft dem Benutzer, die Testdaten auf der GUI einzugeben.
element.sendKeys (obj_value.get (obj_index));
Vorteile:
- Das wichtigste Merkmal dieses Frameworks ist, dass es die Gesamtzahl der Skripte, die erforderlich sind, um alle möglichen Kombinationen von Testszenarien abzudecken, erheblich reduziert. Daher ist weniger Code erforderlich, um einen vollständigen Satz von Szenarien zu testen.
- Eine Änderung in der Testdatenmatrix würde den Testskriptcode nicht beeinträchtigen.
- Erhöht die Flexibilität und Wartbarkeit
- Ein einzelnes Testszenario kann ausgeführt werden, indem die Testdatenwerte geändert werden.
Nachteile:
- Der Prozess ist komplex und erfordert einen zusätzlichen Aufwand, um die Testdatenquellen und Lesemechanismen zu entwickeln.
- Erfordert Kenntnisse in einer Programmiersprache, die zum Entwickeln von Testskripten verwendet wird.
# 4) Keyword Driven Testing Framework
Das schlüsselwortgesteuerte Testframework ist eine Erweiterung des datengesteuerten Testframeworks in dem Sinne, dass es nicht nur die Testdaten von den Skripten trennt, sondern auch den bestimmten Codesatz, der zum Testskript gehört, in einer externen Datendatei speichert.
Diese Codesätze werden als Schlüsselwörter bezeichnet, und daher wird das Framework so genannt. Die Schlüsselwörter geben selbst an, welche Aktionen für die Anwendung ausgeführt werden müssen.
Die Schlüsselwörter und die Testdaten werden in einer tabellarischen Struktur gespeichert und werden daher im Volksmund auch als tabellengesteuertes Framework angesehen. Beachten Sie, dass Schlüsselwörter und Testdaten Entitäten sind, die vom verwendeten Automatisierungstool unabhängig sind.
BeispielTestfall des Keyword Driven Test Framework
Im obigen Beispiel werden im Code Schlüsselwörter wie Anmelden, Klicken und Überprüfen des Links definiert.
Abhängig von der Art der Anwendung können Schlüsselwörter abgeleitet werden. Alle Schlüsselwörter können in einem einzigen Testfall mehrfach wiederverwendet werden. Die Locator-Spalte enthält den Locator-Wert, mit dem die Webelemente auf dem Bildschirm oder die Testdaten identifiziert werden, die angegeben werden müssen.
Alle erforderlichen Schlüsselwörter werden entworfen und in den Basiscode des Frameworks eingefügt.
Vorteile:
- Zusätzlich zu den Vorteilen, die datengesteuertes Testen bietet, erfordert das Keyword-gesteuerte Framework im Gegensatz zu datengesteuertem Testen nicht, dass der Benutzer über Skriptkenntnisse verfügt.
- Ein einzelnes Schlüsselwort kann für mehrere Testskripte verwendet werden.
Nachteile:
- Der Benutzer sollte mit dem Mechanismus zur Erstellung von Schlüsselwörtern vertraut sein, um die Vorteile des Frameworks effizient nutzen zu können.
- Das Framework wird allmählich kompliziert, wenn es wächst und eine Reihe neuer Schlüsselwörter eingeführt werden.
# 5) Hybrid Testing Framework
Wie der Name schon sagt, ist das Hybrid Testing Framework eine Kombination aus mehr als einem der oben genannten Frameworks. Das Beste an einem solchen Setup ist, dass es die Vorteile aller Arten von zugehörigen Frameworks nutzt.
Beispielvon Hybrid Framework
Das Testblatt würde sowohl die Schlüsselwörter als auch die Daten enthalten.
Im obigen Beispiel enthält die Schlüsselwortspalte alle erforderlichen Schlüsselwörter, die im jeweiligen Testfall verwendet werden, und die Datenspalte steuert alle im Testszenario erforderlichen Daten. Wenn für einen Schritt keine Eingabe erforderlich ist, kann er leer gelassen werden.
# 6) Verhaltensorientiertes Entwicklungs-Framework
Das Behaviour Driven Development Framework ermöglicht Business Analysts, Entwicklern, Testern usw. die Automatisierung von Funktionsvalidierungen in leicht lesbarem und verständlichem Format. Für solche Frameworks muss der Benutzer nicht unbedingt mit der Programmiersprache vertraut sein. Für BDD stehen verschiedene Tools wie Gurke, Jbehave usw. zur Verfügung. Details zum BDD-Framework werden später im Gurken-Tutorial erläutert. Wir haben auch Details zur Gurkensprache besprochen, um Testfälle in Gurke zu schreiben.
Komponenten des Automation Testing Framework
Obwohl die obige bildliche Darstellung eines Frameworks selbsterklärend ist, möchten wir dennoch einige Punkte hervorheben.
- Objekt-Repository : Das Akronym Object Repository als OR setzt sich aus der Gruppe von Locator-Typen zusammen, die Webelementen zugeordnet sind.
- Testdaten: Die Eingabedaten, mit denen das Szenario getestet werden würde, und es können die erwarteten Werte sein, mit denen die tatsächlichen Ergebnisse verglichen werden.
- Konfigurationsdatei / Konstanten / Umgebungseinstellungen : In der Datei werden die Informationen zur Anwendungs-URL, zu browserspezifischen Informationen usw. gespeichert. Im Allgemeinen bleiben die Informationen im gesamten Framework statisch.
- Generika / Programmlogiken / Leser : Dies sind die Klassen, in denen die Funktionen gespeichert sind, die im gesamten Framework häufig verwendet werden können.
- Erstellen Sie Tools und kontinuierliche Integration : Dies sind die Tools, die die Funktionen des Frameworks zum Generieren von Testberichten, E-Mail-Benachrichtigungen und Protokollierungsinformationen unterstützen.
Fazit
Die oben dargestellten Frameworks sind die beliebtesten Frameworks, die von der Test-Bruderschaft verwendet werden. Es gibt auch verschiedene andere Frameworks im Ort. Für alle weiteren Tutorials würden wir uns auf die stützen Datengesteuertes Test-Framework .
In diesem Tutorial haben wir die Grundlagen eines Automation Frameworks erläutert. Wir haben auch die auf dem Markt verfügbaren Arten von Frameworks erörtert.
Nächstes Tutorial Nr. 21 : Im nächsten Tutorial würden wir kurz Einführung in das Beispiel-Framework, MS Excel, in dem die Testdaten, Excel-Manipulationen usw. gespeichert werden.
Bis dahin können Sie Ihre Fragen zu Automatisierungs-Frameworks stellen.
Literatur-Empfehlungen
- 7 Faktoren, die die Testschätzung des Selen-Automatisierungsprojekts beeinflussen - Selen-Tutorial Nr. 32
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- Effizientes Selenium-Scripting und Fehlerbehebungsszenarien - Selenium-Lernprogramm Nr. 27
- Debuggen von Selenium-Skripten mit Protokollen (Log4j Tutorial) - Selenium Tutorial # 26
- 30+ beste Selen-Tutorials: Lernen Sie Selen anhand realer Beispiele
- Ausführliche Eclipse-Tutorials für Anfänger
- So suchen Sie Elemente in Chrome- und IE-Browsern zum Erstellen von Selenium-Skripten - Selenium-Lernprogramm Nr. 7
- Cucumber Selenium Tutorial: Integration von Cucumber Java Selenium WebDriver