標籤:

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


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

作者:法狗狗自動化測試工程師 泰斯特

Background

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

Target

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

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

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

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

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

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

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

我們通過執行腳本的方式 , 自動化實現整個測試用例的執行過程 ,常見的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 suiteTotal tests run: 1, Failures: 0, Skips: 0===============================================

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

然後我們可以在當前項目目錄下找到TestNG自動生成的測試報告,如下所示:

至此一個自動化測試用例就算是實現了 , 當然 , 這裡只是最簡單的展示了一個完整自動化測試流程的一部分 , 但是我相信對於一些完全沒有接觸過UI自動化測試的人來說已經能夠起到一定的拋磚引玉的作用 , 在之後的章節中 , 將會繼續深入挖掘各種騷操作

文章發布自法狗狗官方技術博客 - 法狗狗的技術窩

推薦閱讀:

核心實驗:Selenium IDE->測試Agileone的公告管理
漫談自動化測試
Xebium詳解07-操作DB
matplotlib繪圖和可視化
Selenium python web自動化測試環境搭建

TAG:自動化測試 |