testngAan de slag met testng


Opmerkingen

Deze sectie geeft een overzicht van wat testng is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen testng vermelden en een link naar de gerelateerde onderwerpen bevatten. Aangezien de documentatie voor testng nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

versies

Versie Datum
1.0 2017/06/07

Hoe TestNG te configureren in Eclipse & Run-test met xml

Hoe TestNG in Eclipse te installeren

  1. Open eclips
  2. Klik op Help> Nieuwe software installeren Lijstitem
  1. Klik op Toevoegen
  2. Geef naam en URL op - http://beust.com/eclipse voer hier de afbeeldingsbeschrijving in
  1. Selecteer TestNG
  2. Klik volgende

Lijstitem

  1. Klik op Voltooien
  2. Het duurt enige tijd om TestNG te installeren

Start de eclipse opnieuw op na installatie.

Laten we een TestNG-project maken

  1. Bestand> Nieuw> Java-project> Geef een naam op en klik op Voltooien

  2. Maak een klasse als TestNGClass

  3. Maak de volgende les

    1.LoginPage.class

    2.HomePage.class

    3.FBLoginTest.class

Hier komt de 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 komt de testng xml: klik met de rechtermuisknop op Project maak een xml-bestand en kopieer en plak deze inhoud.

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite">
  <test name="Test">
    <classes>
      <class name="com.testng.FBLoginTest"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->
 

Hoe voeg je een zelfstandige seleniumpot toe:
Download de nieuwste stand-alone pot van selenium & voeg die toe aan het Build-pad van het project.

  1. Klik met de rechtermuisknop op Project> Pad bouwen> Buildpad configureren> Bibliotheken selecteren> Externe potten toevoegen

Hoe de TestNG xml uit te voeren? Klik met de rechtermuisknop op de xml> Uitvoeren als> TestNGSuite

Happy Coding :)

Installatie of instellingen

TestNG vereist JDK 7 of hoger om te gebruiken.

Volgens http://testng.org/doc/download.html om testng te installeren, moet u testng-afhankelijkheid toevoegen aan uw bestand maven pom.xml of gradle build.gradle

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'
}
 

Meer opties zijn te vinden op de officiële pagina .

Snel programma met behulp van 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");
 }
 
}
 

De methode setUp() wordt aangeroepen nadat de testklasse is gebouwd en voordat een testmethode wordt uitgevoerd. In dit voorbeeld zullen we de groep snel uitvoeren, dus aFastTest() wordt aangeroepen terwijl aSlowTest() wordt overgeslagen.

Voer TestNG suite uit met Gradle

Voorbeeld build.gradle bestand:

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')
            }
        }
    }
}
 

TestNG Hallo wereld voorbeeld

Het schrijven en uitvoeren van een eenvoudig TestNG programma bestaat hoofdzakelijk uit 3 stappen.

  1. Code - schrijf bedrijfslogica van uw test en maak aantekeningen met TestNG-aantekeningen
  2. Configureren - voeg informatie van uw test toe in testng.xml of in build.xml
  3. Voer TestNG uit - het kan worden opgeroepen vanaf de opdrachtregel, ANT, IDE zoals Eclipse, IDEA van IntelliJ)

Korte uitleg van het voorbeeld (wat moet worden getest) :

We hebben een RandomNumberGenerator klasse die een methode heeft generateFourDigitPin dat een 4-cijferige pincode in en keert terug als genereert int . Dus hier willen we testen of dat willekeurige getal uit 4 cijfers bestaat of niet. Hieronder staat de code:

Te testen klasse :

package example.helloworld;

public class RandomNumberGenerator {

public int generateFourDigitPin(){
    return (int)(Math.random() * 10000);
}
}
 

De 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>