Unboxing von TestNG-Parametern und dataProvider-Annotationen

Im Gegensatz zum alten & zuverlässigen JUnit-Testframework ist TestNG das moderne Testautomatisierungstool. Es verfügt über eine integrierte Unterstützung für datengesteuerte Tests und bietet zwei Möglichkeiten, Daten an die Testfälle zu liefern, d. H. Über TestNG-Parameter und dataProvider-Annotationen.

Mit der Hinzufügung dieser beiden Anmerkungen füllte das TestNG-Framework eine signifikante Lücke, die sein Vorgänger hatte. Eine dieser Anmerkungen bietet die Möglichkeit, feste Datenwerte in den Testfällen zu verwenden, während die andere das Abfragen von Werten aus externen Datenquellen wie Excel oder den Eigenschaftendateien ermöglicht.

In den nächsten Abschnitten sehen Sie die Live-Verwendung der TestNG-Parameter und der dataProvider-Annotationen mit gebrauchsfertigen Beispielen.

Learn – TestNG-Parameter und dataProvider-Annotationen

Vorteile von parametrischen Tests

Bevor wir fortfahren, sollten wir den Nutzen des datengesteuerten / parametrischen Tests verstehen. Jedes Testautomatisierungstool, das über diese beiden Funktionen verfügt, kann die folgenden Fälle effizient behandeln.

  • Verarbeiten Sie den großen Datensatz gemäß den Geschäftsanforderungen.
  • Führen Sie denselben Test immer wieder mit unterschiedlichen Werten aus.

Mal sehen, wann und wie wir die Annotation <@Parameters> in TestNG-Projekten verwenden können.

@Parameters Annotation

Mit Hilfe dieser Annotation können Sie sowohl einzelne als auch mehrere Parameterwerte zu den Testmethoden zulassen.

Wir können es für Parametertests verwenden. Es ist ratsam, wenn die Daten klein und für die Testfälle festgelegt sind.

Beispiel – @Parameters Annotation

Befolgen Sie die folgenden Schritte, um die Annotation <@Parameters> zu verwenden.

Schritt-1

Erstellen Sie eine neue Java-Klasse und benennen Sie sie als <Parametertesting.Java>. Fügen Sie der Klasse die folgenden zwei Methoden hinzu.

i- OpenBrowser()

  • Es wird ein einzelner String-Parameter benötigt, dh browserName .
  • Fügen Sie dieser Methode die Annotation @Parameters(„BrowserName“) hinzu.

ii- FillLoginForm()

Schritt-2

Unten ist der TestNG.XML-Datei mit Parametern, die den Testmethoden zugeordnet sind.

Es ist nun an der Zeit, den <TestNG auszuführen.XML> Datei. Klicken Sie mit der rechten Maustaste auf die XML-Datei in der Eclipse-IDE und klicken Sie auf die Option „Ausführen als >> TestNG Suite“. Nach der Ausführung wird die Ausgabe wie im folgenden Screenshot angezeigt.

TestNG–Parameter und dataProvider-Annotationen – Parameterprüfung

Eine weitere interessante Tatsache am TestNG ist, dass optionale Parameter mit der Annotation @Optional übergeben werden können.

@Optional Annotation

Sie können damit einen optionalen Wert für einen Parameter angeben, der im TestNG nicht verfügbar ist.XML-Datei.

Beispiel – @Optionale Annotation

Siehe das folgende @Optionale Annotationsbeispiel.

TestNG XML

Hier ist der „TestNG.XML“ mit dem obigen Beispiel verknüpft.

Sie können von oben überprüfen <testng.xml> Datei, in der zwei Testmethoden definiert sind. Der erste Test hat keinen Parameter, während der zweite einen Parameter mit dem Namen „optional-value“ angibt.“

Ausgabe:

Nach dem Ausführen des <testng.xml> Als Testsuite wäre die Ausgabe wie folgt.

Wenn Sie die Testergebnisse beobachten, hat TestNG den optionalen Wert verwendet, während die erste Testmethode ausgeführt wurde. Dies geschah, weil TestNG in der XML-Datei für den ersten Test keinen Parameter mit dem Namen „optional-value“ finden konnte. Für den zweiten Test wird jedoch der Parameterwert aufgelöst, der auch während der Testausführung gedruckt wird.

Für Ihre Notiz können Sie die Parameteranmerkung mit jeder der annotierten Methoden Before/After, Factory und Test verwenden. Darüber hinaus können Sie damit Variablen festlegen und in Klassen, Tests oder Testsuiten verwenden.

@dataProvider Annotation

Der Datenprovider ist eine weitere Annotation, die datengesteuertes Testen unterstützt. Sie können es verwenden, um eine breite Palette komplexer Parameter wie die folgenden zu behandeln.

  • Java-Objekte
  • Objekte aus einer Datenbank
  • Daten aus Excel- oder Eigenschaftendateien

Fakten zur Annotation von @dataProvider

Nachfolgend finden Sie einige interessante Fakten zum Datenanbieter.

  • Diese Annotation hat ein String-Attribut, das ihr Name ist. Wenn Sie keinen Namen angeben, dient der Name der Methode als Standardname.
  • Eine Datenprovidermethode bereitet eine 2D-Liste von Objekten vor und gibt sie zurück.
  • Ein datengesteuerter Test würde einmal für jeden Datensatz ausgeführt, der vom Datenproviderobjekt angegeben wird.

Verwendung der Annotation @dataProvider

Sehen wir uns nun die Schritte an, die erforderlich sind, um die Annotation data Provider für datengesteuerte Tests zu verwenden.

  • Erstellen Sie eine neue Java-Klasse, z. B. den DataProviderTest.Java.
  • Definieren Sie die mit <@dataProvider> kommentierte Datenprovidermethode. Es sollte die 2D-Liste der Objekte zurückgeben.
  • Fügen Sie eine Testmethode hinzu und dekorieren Sie sie mit dem <@Test(dataProvider = „name des Datenproviders“)>.

Lesen Sie das folgende Codebeispiel sehr sorgfältig durch, um mehr Klarheit über die Annotation des Datenanbieters zu erhalten. In diesem Codebeispiel demonstrieren wir die drei verschiedenen Verwendungen von Datenanbietern.

  • Übergeben eines Java-Integer-Objekts mithilfe des Datenanbieters
  • Streaming eines Java-Bean-Objekts mithilfe des Datenanbieters

Beispiel mit der Annotation @dataProvider

TestNG-XML-Datei

Sie können den obigen Code von Eclipse aus als TestNG-Test ausführen. Oder Sie können den <TestNG generieren.XML> und führen Sie dann die XML-Datei als TestNG-Suite aus.

Ausgabe:

Nachdem Sie den obigen Code entweder als Test oder als Testsuite ausgeführt haben, wird die folgende Ausgabe angezeigt. Bitte überprüfen Sie aus dem folgenden Snippet.

Letztes Wort – TestNG-Parameter und dataProvider

Wir haben versucht, so viel wie möglich über die TestNG-Parameter und dataProvider-Annotationen zusammen mit ihren Beispielen zu berichten. Es gibt jedoch viele andere Anwendungsfälle von Datenanbietern, die wir in einem separaten Beitrag behandeln würden. Bis dahin viel Spaß beim Lesen dieses Beitrags und teilen Sie ihn in den sozialen Medien.

Alles Gute,

TechBeamers

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.