天天看點

UI自動化測試入門 - (1) Selenium 的使用

UI自動化測試入門 - Selenium 的使用

Background

随着時代車輪的轉動以及科技行業的蓬勃發展 , 越來越多的人開始選擇從事 IT 行業 , 在産品逐漸成型過程中,測試扮演着重要的角色 。 随着産品複雜度不斷上升,疊代過程中需要做非常大量的回歸測試 ,這個時候相信很多測試人員都有着這樣的想法: 如果能把重複繁重的回歸測試任務交給機器去做該多好啊! 作為一名有着些 (小) 許 (白) 開發能力的測試愛好者,經過一段時間的自學後,算是有所收獲 。在這裡 , 僅給大家展示一下 UI 自 (操) 動 (控) 化 (浏) 測 (覽) 試 (器) 的魅力。

Target

借助 selenium (UI 自動化測試架構),不僅可以實作 B\S 架構軟體自動化測試 , 也可以給工作、生活增添便利與色彩 (隻要是人通過使用浏覽器能夠做到的事情 , 就沒有不能自動化實作的!)

實作第一個自動化測試用例

首先,我們來了解一下什麼叫做測試用例:

測試用例(Test Case)即是為某個特殊目标而編制的一組測試輸入、執行條件以及預期結果,用于測試某個程式路徑或核實是否滿足某個特定需求。

然後,我們再來了解一下何謂自動化測試:

自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例并通過評審之後,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬體資源,提高測試效率,便引入了自動化測試的概念。

好的 , 在了解完基礎知識以後我們來模拟一次簡單的、真實的測試場景(驗證百度首頁連結的正确性) :

UI自動化測試入門 - (1) Selenium 的使用

我們通過執行腳本的方式 , 自動化實作整個測試用例的執行過程 ,常見的UI自動化測試環境搭建步驟(selenium + java OR selenium + python)在這裡就不做介紹了。

直接上代碼

public class BaiduTest {

    WebDriver driver = null;

    @BeforeSuite
    public void Setup() {
        System.setProperty("webdriver.chrome.driver",
                  "C:\\MyDownloads\\Download"
                  +"\\chrome-win32\\chromedriver.exe");
        driver = new ChromeDriver();
    }

    @Test(dataProvider = "data")
     public void Baidu_Homepage_0001(String url, String expectTitle) {
         driver.navigate().to(url);
         Assert.assertEquals(driver.getTitle(),expectTitle);
     }

     @DataProvider(name = "data")
     public Object[][] data(){
         return new Object[][]{
               { "http://www.baidu.com", "百度一下,你就知道" },
         };
     }

     @AfterSuite
     public void tearDown() {
        driver.quit();
     }      

這裡采用了單元測試架構 TestNG 進行了用例和測試資料的封裝 ,相信大家可以清晰的看到,在 @Test 中執行了整個測試用例 , 并且可以發現 @Test 方法名與測試用例編号一緻 。測試資料則由 @DataProvider 提供 。至于 @BeforeSuite 以及 @AfterSuite 則代表着整套測試的初始以及收尾工作 。以 TestNG Test 運作以後 , 控制台輸出如下:

PASSED: Baidu_Homepage_0001("http://www.baidu.com", "百度一下,你就知道")

===============================================
    Default test
    Tests run: 1, Failures: 0, Skips: 0
===============================================


===============================================
Default suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================      

可以看到在上面輸出中看到了 PASSED 的字樣,代表此用例通過。

繼續閱讀