testng Handledning
Komma igång med testng
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.
- Kod - skriv ditt affärslogik för ditt test och kommentera det med TestNG-anteckningar
- Konfigurera - lägg till information om ditt test i
testng.xml
eller ibuild.xml
- 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
- Klicka på Lägg till
- Ange namn och URL - http://beust.com/eclipse
- Välj TestNG
- Klicka på Nästa
- Klicka på Slutför
- 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
Fil> Nytt> Java-projekt> Ange ett namn och klicka på finish
Skapa en klass som TestNGClass
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.
- 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 :)