Unboxing TestNG Parameters en dataProvider annotaties

In tegenstelling tot de oude & betrouwbaar JUnit Test Framework, is TestNG het moderne test automation tool. Het heeft ingebouwde ondersteuning voor de data-driven testen en biedt twee manieren om gegevens te leveren aan de testcases, dat wil zeggen via TestNG Parameters en dataProvider annotaties.

met de toevoeging van deze twee annotaties vulde het TestNG-raamwerk een belangrijke leemte die zijn voorganger had. Een van deze annotaties voegt de mogelijkheid toe om vaste gegevenswaarden in de testgevallen te gebruiken, terwijl de andere waarden van externe gegevensbronnen zoals Excel of de eigenschappenbestanden kan opvragen.

in de volgende secties ziet u het live gebruik van zowel de TestNG Parameters als dataProvider annotaties met klaar om voorbeelden uit te voeren.

Learn-TestNG Parameters en dataProvider annotaties

parametrische testen voordelen

voordat we verder gaan, laten we het voordeel van de data-driven / parametrische testen begrijpen. Elke test automation tool die beide mogelijkheden heeft kan efficiënt zorgen voor de volgende gevallen.

  • verwerk de grote dataset volgens zakelijke vereisten.
  • keer op keer dezelfde test uitvoeren met verschillende waarden.

laten we nu eens kijken wanneer en hoe we de <@Parameters> annotatie in TestNG-projecten kunnen gebruiken.

@Parameters annotatie

met behulp van deze annotatie kunt u zowel enkele als meerdere parameterwaarden toestaan voor de testmethoden.

we kunnen het gebruiken voor het testen van parameters. Het is raadzaam wanneer de gegevens klein en vast voor de testgevallen zijn.

voorbeeld- @ Parameters annotatie

Volg de onderstaande stappen om gebruik te maken van de <@Parameters> annotatie.

Step-1

Maak een nieuwe Java-klasse aan en geef deze de naam <ParametersTesting.Java>. Voeg de volgende twee methoden in de klasse.

i-OpenBrowser()

  • het zal een enkele string type parameter, dat wil zeggen, browsernaam.
  • voeg de annotatie @Parameters(“BrowserName”) toe aan deze methode.

ii – FillLoginForm ()

Stap-2

Hieronder is de TestNG.XML-bestand met parameters geassocieerd met de testmethoden.

het is nu tijd om de <TestNG uit te voeren.XML> bestand. Klik met de rechtermuisknop op het XML-bestand van de Eclipse IDE, en druk op de “Run As >> TestNG Suite” optie. Na de uitvoering wordt de uitvoer weergegeven zoals die in de onderstaande schermafbeelding wordt weergegeven.

TestNG Parameters en dataProvider annotaties – Parametertests

een ander interessant feit over de TestNG is dat het mogelijk maakt om optionele parameters door te geven met behulp van de @Optional annotation.

@Optional Annotation

U kunt het gebruiken om een optionele waarde op te geven voor een parameter die niet beschikbaar is in de TestNG.XML-bestand.

voorbeeld – @Optional Annotation

refereer het onderstaande @Optional annotation voorbeeld.

TestNG XML

Hier is de ” TestNG.XML ” geassocieerd met het bovenstaande voorbeeld.

u kunt het bovenstaande controleren <testng.xml> bestand waarin twee testmethoden zijn gedefinieerd. De eerste test heeft geen parameter, terwijl de tweede een parameter specificeert met de naam “optional-value.”

Output:

na het uitvoeren van de <testng.xml> als test suite zou de uitvoer als volgt zijn.

Als u de testresultaten waarneemt, heeft TestNG de optionele waarde gebruikt tijdens het uitvoeren van de eerste testmethode. Het gebeurde omdat TestNG geen parameter kon vinden met de naam “optional-value” in het XML-bestand voor de eerste test. Echter, voor de tweede test, het opgelost de parameterwaarde die ook wordt afgedrukt tijdens de uitvoering van de test.

voor uw notitie kunt u de parameter annotatie gebruiken met een van de voor/na, fabriek, en test geannoteerde methoden. Daarnaast kunt u het gebruiken om variabelen in te stellen en ze te gebruiken in klasse, test of test suite.

@dataProvider Annotation

de data provider is een andere annotatie die data-driven testen ondersteunt. U kunt het gebruiken om een breed scala van complexe parameters te behandelen, zoals de volgende.

  • Java-objecten
  • objecten uit een database
  • gegevens uit Excel of eigenschapsbestanden

feiten over @DataProvider annotatie

hieronder vindt u enkele interessante feiten over de gegevensleverancier.

  • Deze annotatie heeft één string attribuut dat zijn naam is. Als u geen naam opgeeft, dient de naam van de methode als standaardnaam.
  • een data provider methode bereidt een 2-d lijst van objecten voor en geeft deze terug.
  • een gegevensgestuurde test zou eenmaal worden uitgevoerd voor elke reeks gegevens die door het object van de gegevensleverancier worden gespecificeerd.

hoe @dataProvider annotatie te gebruiken

laten we nu de stappen bekijken die nodig zijn om de data provider annotatie te gebruiken voor data-driven testen.

  • Maak een nieuwe Java-klasse aan, bijvoorbeeld de DataProviderTest.Java.
  • Definieer de methode van de gegevensleverancier die is geannoteerd met <@DataProvider>. Het zou de 2-d lijst van objecten moeten retourneren.
  • voeg een testmethode toe en versier deze met <@Test(dataProvider = “name of data provider”)>.

voor meer duidelijkheid over de data provider annotatie, lees het onderstaande code voorbeeld zeer zorgvuldig. In dit codevoorbeeld laten we de drie verschillende toepassingen van dataproviders zien.

  • Java integer object doorgeven met behulp van de data provider
  • Streaming Java bean object met behulp van de data provider

voorbeeld met behulp van @ DataProvider annotatie

TestNG XML bestand

U kunt de bovenstaande code van Eclipse uitvoeren als een TestNG-Test. Of u kunt de <TestNG genereren.XML> en voer het XML-bestand uit als een TestNG-Suite.

Output:

nadat u de bovenstaande code als een test of als een test suite uitvoert, zult u de volgende uitvoer zien. Controleer dit uit het onderstaande fragment.

Final Word – TestNG Parameters en DataProvider

we hebben geprobeerd zoveel mogelijk te behandelen over de TestNG Parameters en dataProvider annotaties samen met hun voorbeelden. Hoewel, er zijn veel andere data provider use cases die we zouden aanpakken in een aparte post. Tot dan geniet van het lezen van dit bericht en delen op sociale media.

All the Best,

TechBeamers

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.