Recherche…


Remarques

Cette section fournit une vue d'ensemble de ce qu'est le test, et pourquoi un développeur peut vouloir l'utiliser.

Il devrait également mentionner tous les grands sujets dans le test, et établir un lien avec les sujets connexes. La documentation de testng étant nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes.

Versions

Version Rendez-vous amoureux
1.0 2017-06-07

Installation ou configuration

TestNG nécessite JDK 7 ou supérieur pour être utilisé.

Selon http://testng.org/doc/download.html pour installer testng, vous devez ajouter une dépendance testng à votre fichier maven pom.xml ou 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'
}

Plus d'options peuvent être trouvées dans la page officielle .

Programme rapide utilisant 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");
 }
 
}

La méthode setUp() sera appelée après la construction de la classe de test et avant toute méthode de test. Dans cet exemple, nous allons exécuter le groupe rapidement, donc aFastTest() sera invoqué pendant que aSlowTest() sera ignoré.

TestNG Bonjour World Exemple

Ecrire et exécuter un simple programme TestNG est principalement un processus en 3 étapes.

  1. Code - écrivez la logique métier de votre test et annotez-la avec les annotations TestNG
  2. Configure - ajoute des informations sur votre test dans testng.xml ou dans build.xml
  3. Exécutez TestNG - il peut être appelé depuis la ligne de commande, ANT, IDE comme Eclipse, IDEA d'IntelliJ)

Brève explication de l'exemple (ce qui doit être testé) :

Nous avons une classe RandomNumberGenerator qui a une méthode generateFourDigitPin qui génère un code PIN à 4 chiffres et renvoie en tant que int . Donc, ici, nous voulons tester si ce nombre aléatoire est de 4 chiffres ou non. Voici le code:

Classe à tester :

package example.helloworld;

public class RandomNumberGenerator {

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

La classe de test TestNG :

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>

Exécuter la suite TestNG avec Gradle

Exemple de fichier 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')
            }
        }
    }
}

Comment configurer TestNG dans Eclipse & Run test en utilisant xml

Comment installer TestNG dans éclipse

  1. Éclipse ouverte
  2. Cliquez sur Aide> Installer un nouveau logiciel Élément de la liste
  1. Cliquez sur Ajouter
  2. Indiquez le nom et l'URL - http://beust.com/eclipse entrer la description de l'image ici
  1. Sélectionnez TestNG
  2. Cliquez sur Suivant

Élément de la liste

  1. Cliquez sur Terminer
  2. L'installation de TestNG prendra du temps

Une fois installé, redémarrez eclipse.

Permet de créer un projet TestNG

  1. Fichier> Nouveau> Projet Java> Indiquez un nom et cliquez sur Terminer

  2. Créez une classe comme TestNGClass

  3. Créer la classe suivante

    1.LoginPage.class

    2.HomePage.class

    3.FBLoginTest.class

Voici le code:

Classe LoginPage

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

Classe de page d'accueil

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

Classe FBLoginTest

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

}

Voici le xml testng: Faites un clic droit sur Project créez un fichier xml et copiez-le coller.

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

Comment ajouter le pot autonome de sélénium:
Téléchargez le dernier bocal autonome au sélénium et ajoutez-le au chemin de construction du projet.

  1. Cliquez avec le bouton droit de la souris sur Projet> Créer un chemin> Configurer le chemin de génération> Sélectionnez les bibliothèques> Ajouter des fichiers Jars externes.

Comment exécuter le XML TestNG? Faites un clic droit sur le xml> Exécuter en tant que> TestNGSuite

Bonne codage :)



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow