Sök…


Anmärkningar

Det här avsnittet ger en översikt över vad testng är och varför en utvecklare kanske vill använda den.

Den bör också nämna alla stora ämnen inom testng och koppla till relaterade ämnen. Eftersom dokumentationen för testng är ny kan du behöva skapa initialversioner av relaterade ämnen.

versioner

Version Datum
1,0 2017/06/07

Installation eller installation

TestNG kräver att JDK 7 eller högre används.

Enligt http://testng.org/doc/download.html för att installera testng måste du lägga till testng-beroende till din maven pom.xml eller gradle build.gradle-fil

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

Fler alternativ finns på den officiella sidan .

Snabbprogram med 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");
 }
 
}

Metoden setUp() kommer att påkallas efter att testklassen har byggts och innan någon testmetod körs. I det här exemplet kör vi gruppen snabbt, så aFastTest() kommer att aSlowTest() medan aSlowTest() hoppas över.

TestNG Hello World Exempel

Att skriva och genomföra ett enkelt TestNG program är i huvudsak 3-stegsprocess.

  1. Kod - skriv ditt affärslogik för ditt test och kommentera det med TestNG-anteckningar
  2. Konfigurera - lägg till information om ditt test i testng.xml eller i build.xml
  3. Kör TestNG - det kan åberopas från kommandoraden, ANT, IDE som Eclipse, IntelliJs IDEA)

Kort förklaring av exempel (vad som måste testas) :

Vi har en klass RandomNumberGenerator som har en metod generateFourDigitPin som genererar en fyrsiffrig PIN-kod och returnerar som int . Så här vill vi testa om det slumpmässiga antalet är om det är fyra siffror eller inte. Nedan är koden:

Klass som ska testas :

package example.helloworld;

public class RandomNumberGenerator {

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

TestNG-testklassen :

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>

Kör TestNG-svit med Gradle

Exempel build.gradle fil:

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

Hur man konfigurerar TestNG i Eclipse & Run-test med xml

Hur man installerar TestNG i eclipse

  1. Öppen förmörkelse
  2. Klicka på Hjälp> Installera ny programvara Listobjekt
  1. Klicka på Lägg till
  2. Ange namn och URL - http://beust.com/eclipse ange bildbeskrivning här
  1. Välj TestNG
  2. Klicka på Nästa

Listobjekt

  1. Klicka på Slutför
  2. Det kommer att ta lite tid att installera TestNG

När installationen är installerad, starta sedan om förmörkelse.

Låter skapa ett TestNG-projekt

  1. Fil> Nytt> Java-projekt> Ange ett namn och klicka på finish

  2. Skapa en klass som TestNGClass

  3. Skapa följande klass

    1.LoginPage.class

    2.HomePage.class

    3.FBLoginTest.class

Här går koden:

Inloggningssida

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

Hemsida klass .

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

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();
    }

}

Här kommer testng xml: Högerklicka på Project skapa en xml-fil och kopiera klistra in det här innehållet.

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

Hur man lägger till selen fristående burk:
Ladda ner den senaste fristående selen och lägg till den i projektets byggväg.

  1. Högerklicka på Projekt> Byggväg> Konfigurera Byggväg> Välj bibliotek> Lägg till externa burkar

Hur kör man TestNG xml? Högerklicka på xml> Kör som> TestNGSuite

Happy Coding :)



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow