2016-11-23 34 views
0
import java.io.File; 
import java.io.IOException; 
import java.util.concurrent.TimeUnit; 

import junit.framework.Assert; 

import org.junit.AfterClass; 
import org.junit.Before; 
import org.junit.BeforeClass; 
import org.junit.FixMethodOrder; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.chrome.ChromeOptions; 
import org.openqa.selenium.firefox.FirefoxDriver; 


public class Test { 
    static WebDriver driver; 
    String expectedurl="http://examplezone.com.au/account-page/"; 

    @BeforeClass 
    public static void setup() 
    { 
     System.setProperty("webdriver.chrome.driver", "E:\\Selenium Jar\\chromedriver.exe"); 
     driver = new ChromeDriver(); 
     driver.manage().window().maximize(); 
    } 

    @org.junit.Test 
    public void test1_login(){ 
     driver.get("http://examplezone.com.au/"); 
     WebElement loginmain=driver.findElement(By.id("menu-item-14235")); 
     loginmain.click(); 
    } 

    @org.junit.Test 
    public void test2_blankdata() 
    { 
     driver.get("http://examplezone.com.au/loginregister/"); 
     //driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS); 

     String userblank=" "; 
     String passblank=" "; 

     WebElement username=driver.findElement(By.name("log")); 
     username.clear(); 
     username.sendKeys(userblank); 

     WebElement password=driver.findElement(By.name("pwd")); 
     password.clear(); 
     password.sendKeys(passblank); 

     WebElement submit=driver.findElement(By.name("Submit")); 
     submit.click(); 

     String actual=driver.getCurrentUrl(); 

     Assert.assertEquals(expectedurl, actual); 
    } 

    @org.junit.Test 
    public void test3_blankpassword() 
    { 
     driver.get("http://examplezone.com.au/loginregister/"); 
    // driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS); 

     String userblank="rutvisoni"; 
     String passblank=""; 

     WebElement username=driver.findElement(By.name("log")); 
     username.clear(); 
     username.sendKeys(userblank); 

     WebElement password=driver.findElement(By.name("pwd")); 
     password.clear(); 
     password.sendKeys(passblank); 

     WebElement submit=driver.findElement(By.name("Submit")); 
     submit.click(); 

     String actual=driver.getCurrentUrl(); 

     Assert.assertEquals(expectedurl, actual); 
    } 

    @org.junit.Test 
    public void test4_blankusername() 
    { 
     driver.get("http://examplezone.com.au/loginregister/"); 
     //driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS); 

     String userblank=" "; 
     String passblank="12Abcd"; 

     WebElement username=driver.findElement(By.name("log")); 
     username.clear(); 
     username.sendKeys(userblank); 

     WebElement password=driver.findElement(By.name("pwd")); 
     password.clear(); 
     password.sendKeys(passblank); 

     WebElement submit=driver.findElement(By.name("Submit")); 
     submit.click(); 

     String actual=driver.getCurrentUrl(); 

     Assert.assertEquals(expectedurl, actual); 
    } 

    @org.junit.Test 
    public void test5_invaliddata() 
    { 
     driver.get("http://examplezone.com.au/loginregister/"); 
     //driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS); 

     String userblank="rutvisoni1"; 
     String passblank="12Abcdfdg"; 

     WebElement username=driver.findElement(By.name("log")); 
     username.clear(); 
     username.sendKeys(userblank); 

     WebElement password=driver.findElement(By.name("pwd")); 
     password.clear(); 
     password.sendKeys(passblank); 

     WebElement submit=driver.findElement(By.name("Submit")); 
     submit.click(); 

     String actual=driver.getCurrentUrl(); 

     System.out.println("Invaliddata->"+actual); 

     Assert.assertEquals(expectedurl, actual); 
    } 

    @org.junit.Test 
    public void test6_validdata(){ 
     driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 
     driver.get("http://examplezone.com.au/loginregister/"); 

     WebElement username=driver.findElement(By.name("log")); 
     username.clear(); 
     username.sendKeys("rutvisoni"); 

     WebElement password=driver.findElement(By.name("pwd")); 
     password.clear(); 
     password.sendKeys("12Abcd"); 

     WebElement submit=driver.findElement(By.name("Submit")); 
     submit.click(); 

     String actual=driver.getCurrentUrl(); 

     Assert.assertEquals(expectedurl, actual);  
    } 

    @AfterClass 
    public static void test7_close() 
    { 
     driver.close(); 
    } 
} 

我已經在eclipse IDE中使用JUnit創建了登錄頁面的測試用例。我想運行順序功能這樣way-如何設置junit中的函數序列

test2_blankdata() 
test3_blankpassword() 
test4_blankusername() 
test5_invaliddata() 
test6_validdata() 

但它不能正常工作,請通過上面的代碼,並給我在這個問題上有什麼建議?

回答

1

單元測試應該是無狀態的。你不能也不應該保證他們將運行的順序。如果你需要按照特定的順序運行,那麼你做錯了什麼。任何單元測試用例都不應該依賴於其他單元。而且,任何單元測試都不應該「污染」測試環境。您應該在開始之前設置測試環境,執行測試用例,然後清理所有髒東西。

一個更簡單的單元測試方法是模擬測試。

編輯:

嗯,你沒有真正做聯合測試。這更像Web測試/功能測試。我的錯。我應該多加註意。但是原則依然如此。設置測試環境(即使它需要點擊這個和那個鏈接,在某個地方輸入一些數據,點擊一個按鈕等等。執行測試用例,斷言結果,然後清理)。

1

只是有一個測試,並有該測試調用的方法依次是:

@org.junit.Test 
public void test6_validdata(){ 
    test2_blankdata() 
    test3_blankpassword() 
    test4_blankusername() 
    test5_invaliddata() 
    test6_validdata() 
} 

這主要是如何佈置你的代碼的問題。爲了進行有效的單元測試,您仍然應該遵循通用的指導原則。

0

通過方法名稱排列測試方法 @FixMethodOrder(MethodSorters.NAME_ASCENDING)