能把Selenium RC腳本和JUnit單元測試結合起來,既能涵蓋功能測試,又能涵蓋數據或後臺Java類測試,從而構成一個完整的Web應用測試解決方案。java
1. 方法或者執行步驟web
新建一個case.java文件,這裏面能夠寫咱們須要被測試的方法或者業務邏輯,就像是一條條用例,包含執行步驟執行結果chrome
package com.case; public class Java_demo { public static void main() { System.out.print("aa"); } public class Test_clik { //public Test_clik(){} public boolean oppo_com01() { boolean Result=false; System.out.println("我在運行......A"); return Result; } public int oppo_com02() { int Result=0; System.out.println("我在運行......B"); return Result; } public String oppo_com03() { String Result="no"; System.out.println("我在運行......C"); return Result; } } }
2. 測試驗證步驟瀏覽器
新建一個testcase.java的文件,引用junit的jar包和junit的註釋,在全部測試方法以前咱們要執行的步驟寫在@BeforeClass註釋方法內,在每一個方法以前要執行的步驟寫在@Before註釋方法內,在全部測試方法以後咱們要執行的步驟寫在@AfterClass註釋方法內,在每一個方法以後要執行的步驟寫在@After註釋方法內,不須要這樣的操做步驟咱們能夠不寫,能夠直接寫在@test註釋的測試方法內單元測試
package com.testcase; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.AfterClass; import org.junit.BeforeClass; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class JunitDemo { private static WebDriver driver; private Java_demo java_demo=new Java_demo(); private Java_demo.Test_clik tc; //在全部方法執行以前執行:打開瀏覽器驅動 @BeforeClass public static void init_driver() { System.out.println("打開Chrome瀏覽器"); System.setProperty("webdriver.chrome.driver","C:\\ProgramFiles(x86)\\Goo gle\\Chrome\\Application\\chromedriver.exe"); driver=new ChromeDriver(); } //在全部方法執行以後執行:關閉瀏覽器驅動 @AfterClass public static void exit_driver() { System.out.println("關閉Chrome瀏覽器"); System.out.println("--------------------"); driver.quit(); } //在每一個方法執行以前執行:去到www.oppo.com頁面 @Before public void init_www() { System.out.println("--------------------"); System.out.println("去到www.oppo.com"); driver.get("http://www.oppo.com/cn/"); tc = java_demo.new Test_clik(); } //在每一個方法執行以後執行:打印---------- @After public void print_() { System.out.println("--------------------"); } @Test public void testoppo_com01() { boolean a=tc.oppo_com01(); assertEquals(true,a); } @Test public void testoppo_com02() { int a=tc.oppo_com02(); //int a=1; assertEquals(1,a); } @Test public void testoppo_com03() { String a=tc.oppo_com03(); //int a=1; assertEquals("no",a); } }
junit代碼中的驗證代碼:測試
@Test public void testoppo_com01() { boolean a=tc.oppo_com01(); assertEquals(true,a); }
步驟文件中的執行代碼:ui
public boolean oppo_com01() { boolean Result=false; System.out.println("我在運行......A"); return Result; }
對比執行方法oppo_com01()與驗證方法testoppo_com01(),當執行方法中的返回值爲false時,assertEquals(true,a);斷言驗證執行結果不是指望結果。當執行方法中的返回值爲true時,assertEquals(true,a);斷言驗證執行結果不是指望結果。code
如圖上述junit代碼的執行結果,只有@test註釋下面的方法驗證結果在驗證結果中。blog
上述代碼testoppo_com01()和testoppo_com02()驗證結果是失敗的。get
這個是Console運行控制檯,這裏咱們能夠看到代碼各階段的運行狀態。
Junit經常使用的註解:
@Before 註解:在每一個測試方法以前執行;
@After 註解:在每一個測試方法以後執行;
@BeforeClass 註解:在全部方法執行以前執行;
@AfterClass 註解:在全部方法執行以後執行;
@Test(timeout = xxx) 註解:設置當前測試方法在必定時間內運行完,不然返回錯誤;
@Test(expected = Exception.class) 註解:設置被測試的方法是否有異常拋出。拋出異常類型爲:
Exception.class;
@Ignore 註解:註釋掉一個測試方法或一個類,被註釋的方法或類,不會被執行。