如何使用 xml 在 Eclipse Run test 中配置 TestNG

如何在 eclipse 中安裝 TestNG

  1. 開啟日食

  2. 單擊幫助>安裝新軟體 StackOverflow 文件

  3. 單擊新增

  4. 提供名稱和 URL - ![StackOverflow 文件](http://beust.com/eclipse> <https://i.stack.imgur.com/6hni5.png)

  5. 選擇 TestNG

  6. 點選下一步

StackOverflow 文件

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

主頁課

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 獨立 jar:
下載最新的 selenium 獨立 jar 並在 Project 的 Build 路徑中新增它。

  1. 右鍵單擊 Project> Build path> Configure Build path> Select Libraries> Add external Jars

**如何執行 TestNG xml?**右鍵單擊 xml> Run as> TestNGSuite

快樂編碼:)