Поиск…


замечания

В этом разделе представлен обзор того, что такое testng, и почему разработчик может захотеть его использовать.

Следует также упомянуть о любых крупных предметах в рамках тестирования и ссылки на связанные темы. Поскольку Documentation for testng является новым, вам может потребоваться создать начальные версии этих связанных тем.

Версии

Версия Дата
1,0 2017-06-07

Установка или настройка

TestNG требует использования JDK 7 или выше.

Согласно http://testng.org/doc/download.html , чтобы установить testng, вам нужно добавить зависимость testng к файлу maven pom.xml или 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'
}

Дополнительные параметры можно найти на официальной странице .

Быстрая программа с использованием 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");
 }
 
}

Метод setUp() будет вызываться после создания тестового класса и до запуска любого тестового метода. В этом примере мы будем быстро запускать группу, поэтому aFastTest() будет вызываться, пока aSlowTest() будет пропущен.

Пример теста TestNG Hello World

Написание и выполнение простой программы TestNG - это в основном трехэтапный процесс.

  1. Код - написать бизнес-логику вашего теста и аннотировать его с помощью аннотаций TestNG
  2. Настроить - добавить информацию о своем тесте в testng.xml или в testng.xml build.xml
  3. Запустите TestNG - его можно вызвать из командной строки, ANT, IDE, например Eclipse, IDEA IntelliJ)

Краткое объяснение примера (что нужно проверить) :

У нас есть класс RandomNumberGenerator который имеет метод generateFourDigitPin который генерирует 4-значный PIN-код и возвращает его как int . Итак, здесь мы хотим проверить, имеет ли это случайное число 4 цифры или нет. Ниже приведен код:

Класс для тестирования :

package example.helloworld;

public class RandomNumberGenerator {

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

Класс тестирования 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>

Запустите комплект TestNG с Gradle

Файл образца 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')
            }
        }
    }
}

Как настроить TestNG в тесте Eclipse & Run с помощью xml

Как установить TestNG в eclipse

  1. Открыть затмение
  2. Нажмите «Справка»> «Установить новое программное обеспечение». Элемент списка
  1. Нажмите Добавить
  2. Укажите имя и URL-адрес - http://beust.com/eclipse введите описание изображения здесь
  1. Выберите TestNG
  2. Нажмите кнопку "Далее

Элемент списка

  1. Нажмите Готово
  2. Для установки TestNG потребуется некоторое время

После установки перезапустите eclipse.

Позволяет создать проект TestNG

  1. Файл> Создать> Проект Java> Укажите название и нажмите кнопку завершения

  2. Создайте класс как TestNGClass

  3. Создать следующий класс

    1.LoginPage.class

    2.HomePage.class

    3.FBLoginTest.class

Вот код:

Класс 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);
    }
}

Класс HomePage .

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

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

}

Здесь идет testng xml: Щелкните правой кнопкой мыши Project, создайте xml-файл и скопируйте его.

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

Как добавить отдельную банку из селена:
Загрузите последнюю отдельную банку selenium и добавьте ее в путь сборки проекта.

  1. Щелкните правой кнопкой мыши Project> Путь сборки> Настроить путь сборки> Выбрать библиотеки> Добавить внешние банки

Как запустить TestNG xml? Щелкните правой кнопкой мыши на xml> Выполнить как> TestNGSuite

Счастливое кодирование :)



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow