UI自動化測試之selenium超神之路(1)

泰斯特test發表於2019-04-23

Background

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


Target

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


Main Body

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

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

測試用例(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 suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
複製程式碼

可以看到在上面輸出中看到了 PASSED 的字樣,代表此用例通過。 然後我們可以在當前專案目錄下找到TestNG自動生成的測試報告,如下所示:

簡陋的測試報告到此一遊

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


2. 未完待續...

版權宣告:本文為博主原創文章,歡迎大家轉載,但是要註明我的文章地址。 juejin.im/post/5cbeaf…


相關文章