testng Tutorial
Erste Schritte mit testng
Suche…
Bemerkungen
In diesem Abschnitt erhalten Sie einen Überblick darüber, was testng ist und warum ein Entwickler es möglicherweise verwenden möchte.
Es sollte auch alle großen Themen in testng erwähnen und auf die verwandten Themen verweisen. Da die Dokumentation für testng neu ist, müssen Sie möglicherweise erste Versionen dieser verwandten Themen erstellen.
Versionen
Ausführung | Datum |
---|---|
1,0 | 2017-06-07 |
Installation oder Setup
TestNG erfordert die Verwendung von JDK 7 oder höher.
Gemäß http://testng.org/doc/download.html müssen Sie zur Installation von testng die Abhängigkeit von testng zu Ihrer maven pom.xml- oder gradle-Datei build.gradle hinzufügen
Maven:
<repositories>
<repository>
<id>jcenter</id>
<name>bintray</name>
<url>http://jcenter.bintray.com</url>
</repository>
</repositories>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.12</version>
<scope>test</scope>
</dependency>
Gradle:
repositories {
jcenter()
}
dependencies {
testCompile 'org.testng:testng:6.9.12'
}
Weitere Optionen finden Sie auf der offiziellen Seite .
Schnellprogramm mit TestNG
package example;
import org.testng.annotations.*; // using TestNG annotations
public class Test {
@BeforeClass
public void setUp() {
// code that will be invoked when this test is instantiated
}
@Test(groups = { "fast" })
public void aFastTest() {
System.out.println("Fast test");
}
@Test(groups = { "slow" })
public void aSlowTest() {
System.out.println("Slow test");
}
}
Die Methode setUp()
wird aufgerufen, nachdem die setUp()
wurde und bevor eine Testmethode ausgeführt wird. In diesem Beispiel werden wir die Gruppe schnell aFastTest()
, sodass aFastTest()
aufgerufen wird, während aSlowTest()
übersprungen wird.
TestNG Hello World Beispiel
Das Schreiben und Ausführen eines einfachen TestNG
Programms besteht hauptsächlich aus drei Schritten.
- Code - Schreiben Sie die Geschäftslogik Ihres Tests und kommentieren Sie sie mit TestNG-Anmerkungen
- Konfigurieren - fügen Sie Informationen zu Ihrem Test in
testng.xml
oder inbuild.xml
- TestNG ausführen - kann von der Befehlszeile, ANT, IDE wie Eclipse, IntelliJs IDEA aufgerufen werden.
Kurze Erläuterung des Beispiels (was getestet werden muss) :
Wir haben eine RandomNumberGenerator
Klasse, die über die Methode generateFourDigitPin
, die eine vierstellige PIN generiert und als int
zurückgibt. Wir wollen hier also testen, ob diese Zufallszahl aus 4 Ziffern besteht oder nicht. Unten ist der Code:
Zu testende Klasse :
package example.helloworld;
public class RandomNumberGenerator {
public int generateFourDigitPin(){
return (int)(Math.random() * 10000);
}
}
Die TestNG-Testklasse :
package example.helloworld;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class TestRandomNumberGenerator {
RandomNumberGenerator rng = null;
@BeforeClass
public void deSetup(){
rng = new RandomNumberGenerator();
}
@Test
public void testGenerateFourDigitPin(){
int randomNumber = rng.generateFourDigitPin();
Assert.assertEquals(4, String.valueOf(randomNumber).length());
}
@AfterClass
public void doCleanup(){
//cleanup stuff goes here
}
}
Ther testng.xml :
<suite name="Hello World">
<test name="Random Number Generator Test">
<classes>
<class name="example.helloworld.TestRandomNumberGenerator" />
</classes>
</test>
</suite>
Führen Sie die TestNG-Suite mit Gradle aus
Beispieldatei build.gradle
:
plugin: 'java'
repositories {
mavenLocal()
mavenCentral()
jcenter()
}
dependencies {
compile "org.testng:testng:6.9.12"
}
test {
useTestNG() {
suiteXmlBuilder().suite(name: 'Sample Suite') {
test(name : 'Sample Test') {
classes('') {
'class'(name: 'your.sample.TestClass')
}
}
}
}
So konfigurieren Sie TestNG in Eclipse & Run test mit xml
So installieren Sie TestNG in Eclipse
- Klicken Sie auf Hinzufügen
- Geben Sie Name und URL an - http://beust.com/eclipse
- Wählen Sie TestNG aus
- Weiter klicken
- Klicken Sie auf Fertig stellen
- Die Installation von TestNG wird einige Zeit dauern
Einmal installiert, starten Sie Eclipse neu.
Lassen Sie uns ein TestNG-Projekt erstellen
Datei> Neu> Java-Projekt> Geben Sie einen Namen ein und klicken Sie auf Fertig stellen
Erstellen Sie eine Klasse als TestNGClass
Erstellen Sie folgende Klasse
1.LoginPage.class
2.HomePage.class
3.FBLoginTest.class
Hier ist der Code:
LoginPage-Klasse
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
public class LoginPage {
@FindBy(id = "email")
private WebElement username;
@FindBy(id = "pass")
private WebElement password;
@FindBy(xpath = ".//input[@data-testid='royal_login_button']")
private WebElement login;
WebDriver driver;
public LoginPage(WebDriver driver){
this.driver = driver;
PageFactory.initElements(driver, this);
}
public void enterUserName(String name){
username.clear();
username.sendKeys(name);
}
public void enterPassword(String passwrd){
password.clear();
password.sendKeys(passwrd);
}
public HomePage clickLoginButton(){
login.click();
return new HomePage(driver);
}
}
HomePage-Klasse .
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
public class HomePage {
@FindBy(id = "userNavigationLabel")
private WebElement userDropdown;
WebDriver driver;
public HomePage(WebDriver driver){
this.driver = driver;
PageFactory.initElements(driver, this);
}
public boolean isUserLoggedIn(){
return userDropdown.isDisplayed();
}
}
FBLoginTest-Klasse
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import com.testng.pages.HomePage;
import com.testng.pages.LoginPage;
public class FBLoginTest {
WebDriver driver;
LoginPage loginPage;
HomePage homePage;
@BeforeClass
public void openFBPage(){
driver = new FirefoxDriver();
driver.get("https://www.facebook.com/");
loginPage = new LoginPage(driver);
}
@Test
public void loginToFB(){
loginPage.enterUserName("");
loginPage.enterPassword("");
homePage = loginPage.clickLoginButton();
Assert.assertTrue(homePage.isUserLoggedIn());
}
@AfterClass
public void closeBrowser(){
driver.quit();
}
}
Hier kommt die testng-XML: Klicken Sie mit der rechten Maustaste auf Projekt, erstellen Sie eine XML-Datei und kopieren Sie diesen Inhalt.
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite">
<test name="Test">
<classes>
<class name="com.testng.FBLoginTest"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
So fügen Sie Selen-Standalone-Glas hinzu:
Laden Sie den neuesten Standalone-Selenbehälter herunter und fügen Sie ihn im Build-Pfad des Projekts hinzu.
- Klicken Sie mit der rechten Maustaste auf Projekt> Erstellungspfad> Erstellungspfad konfigurieren> Bibliotheken auswählen> Externe Jars hinzufügen
Wie führe ich die TestNG-XML aus? Klicken Sie mit der rechten Maustaste auf xml> Ausführen als> TestNGSuite
Viel Spaß beim Codieren :)