testng チュートリアル
testngを使い始める
サーチ…
備考
このセクションでは、testngの概要と、開発者がそれを使いたい理由について概説します。
また、testng内の大きなテーマについても言及し、関連するトピックにリンクする必要があります。 testngのドキュメンテーションは新しいものなので、それらの関連トピックの初期バージョンを作成する必要があります。
バージョン
バージョン | 日付 |
---|---|
1.0 | 2017-06-07 |
インストールまたはセットアップ
TestNGは、JDK 7以上を使用する必要があります。
http://testng.org/doc/download.htmlによると、testngをインストールするには、あなたのmaven pom.xmlまたはgradle build.gradleファイルにtestng依存関係を追加する必要があります
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
プログラムの作成と実行は、主に3ステップのプロセスです。
- コード - テストのビジネスロジックを記述し、 TestNG注釈で注釈を付ける
- 設定 -
testng.xml
またはbuild.xml
テストの情報を追加する - TestNGを実行する - コマンドライン、ANT、EclipseのようなIDE、IntelliJのIDEAから呼び出すことができる)
例の簡単な説明(テストする必要があるもの) :
私たちは、4桁のPINを生成しint
として返すメソッドgenerateFourDigitPin
を持つRandomNumberGenerator
クラスを持っています。ここでは、その乱数が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>
GradleでTestNGスイートを実行する
サンプル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')
}
}
}
}
EclipseでTestNGを設定する方法とxmlを使ってテストを実行する方法
TestNGをEclipseにインストールする方法
- 追加をクリックします
- 名前とURLを入力してください - http://beast.com/eclipse
- TestNGを選択
- 次へをクリックします
- Finishをクリックします。
- 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があります:プロジェクトを右クリックして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 standalone jarをダウンロードし、プロジェクトのビルドパスに追加します。
- [プロジェクト]> [ビルドパス]> [ビルドパスの設定]> [ライブラリの選択]> [外部Jarsの追加]を右クリックします。
TestNG xmlを実行するには? xml> Run As> TestNGSuiteを右クリックします。
ハッピーコーディング:)