testng Tutoriel
Commencer à tester
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.
- Code - écrivez la logique métier de votre test et annotez-la avec les annotations TestNG
- Configure - ajoute des informations sur votre test dans
testng.xml
ou dansbuild.xml
- 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
- Cliquez sur Ajouter
- Indiquez le nom et l'URL - http://beust.com/eclipse
- Sélectionnez TestNG
- Cliquez sur Suivant
- Cliquez sur Terminer
- L'installation de TestNG prendra du temps
Une fois installé, redémarrez eclipse.
Permet de créer un projet TestNG
Fichier> Nouveau> Projet Java> Indiquez un nom et cliquez sur Terminer
Créez une classe comme TestNGClass
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.
- 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 :)