Selenium入門之結合Junit進行自動化測試

能把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

 

attachments-2016-07-gwXp0FWo577cfb4f7d57

如圖上述junit代碼的執行結果,只有@test註釋下面的方法驗證結果在驗證結果中。blog

上述代碼testoppo_com01()和testoppo_com02()驗證結果是失敗的。get

attachments-2016-07-yWVZykGu577cfb589c7f

這個是Console運行控制檯,這裏咱們能夠看到代碼各階段的運行狀態。

Junit經常使用的註解:

@Before 註解:在每一個測試方法以前執行;

@After 註解:在每一個測試方法以後執行;

@BeforeClass 註解:在全部方法執行以前執行;

@AfterClass 註解:在全部方法執行以後執行;

@Test(timeout = xxx) 註解:設置當前測試方法在必定時間內運行完,不然返回錯誤;

@Test(expected = Exception.class) 註解:設置被測試的方法是否有異常拋出。拋出異常類型爲:

Exception.class;

@Ignore 註解:註釋掉一個測試方法或一個類,被註釋的方法或類,不會被執行。

相關文章
相關標籤/搜索