testng учебник
Начало работы с testng
Поиск…
замечания
В этом разделе представлен обзор того, что такое 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
- это в основном трехэтапный процесс.
- Код - написать бизнес-логику вашего теста и аннотировать его с помощью аннотаций TestNG
- Настроить - добавить информацию о своем тесте в
testng.xml
или вtestng.xml
build.xml
- Запустите 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
- Нажмите Добавить
- Укажите имя и URL-адрес - http://beust.com/eclipse
- Выберите TestNG
- Нажмите кнопку "Далее
- Нажмите Готово
- Для установки TestNG потребуется некоторое время
После установки перезапустите eclipse.
Позволяет создать проект TestNG
Файл> Создать> Проект Java> Укажите название и нажмите кнопку завершения
Создайте класс как TestNGClass
Создать следующий класс
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 и добавьте ее в путь сборки проекта.
- Щелкните правой кнопкой мыши Project> Путь сборки> Настроить путь сборки> Выбрать библиотеки> Добавить внешние банки
Как запустить TestNG xml? Щелкните правой кнопкой мыши на xml> Выполнить как> TestNGSuite
Счастливое кодирование :)