1. 程式人生 > >《一頭扎進》系列之Python+Selenium框架設計篇2- 價值好幾K的框架,不看白不看,看了還想看

《一頭扎進》系列之Python+Selenium框架設計篇2- 價值好幾K的框架,不看白不看,看了還想看

1. 簡介

   上一篇介紹了自動化框架的架構,今天巨集哥就帶領小夥伴或者童鞋們開始開工往這個框架裡開始添磚加瓦。主要是介紹一個框架unittest單元測試框架和一種設計思想POM。

2. unittest單元測試框架

前面文章已經簡單介紹了一些關於自動化測試框架的介紹,知道了什麼是自動化測試框架,主要有哪些特點,基本組成部分等。在繼續介紹框架設計之前,我們先來學習一個工具,叫unittest。

       unittest是一個單元測試框架,是Python程式設計的單元測試框架。有時候,也做叫做“PyUnit”,是Junit的Python語言版本。這裡瞭解下,Junit是Java語言的單元測試框架,Java還有一個很好用的單元測試框架叫TestNG,本系列只學習Python,所以只需要unittest是

Python裡的一個單元測試框架就可以了。

      unittest支援測試自動化,共享測試用例中的初始化和關閉退出程式碼,在unittest中最小單元是test,也就是一個測試用例。要了解unittest單元測試框架,先來了解以下幾個重要的概念。

2.1 測試韌體(test fixture)

      一個測試韌體包括兩部分,執行測試程式碼之前的準備部分和測試結束之後的清掃程式碼。這兩部分一般用函式setUp()和tearDown()表示。這裡舉例以下,例如要測試百度搜索selenium這個場景,我們的測試韌體可以這樣寫,setUp()裡寫開啟瀏覽器,瀏覽器最大

化,和開啟百度首頁等指令碼程式碼;在tearDown()裡寫結束搜尋後,退出並關閉瀏覽器的程式碼。

2.2 測試用例(test case)

       unittest中管理的最小單元是測試用例,一個測試用例,包括測試韌體,和具體測試業務的函式或者方法。一個測試用例中,測試韌體可以不寫,但是至少有一個已test開頭的函式。unittest會自動化識別test開頭的函式是測試程式碼,如果你寫的函式不是test開頭,

unittest是不會執行這個函式裡面的指令碼的,這個千萬要記住,所有的測試函式都要test開頭,記住是小寫的哦。

2.3 測試套件 (test suite)

       很簡單,就是很多測試用例的集合,叫測試套件,一個測試套件可以隨意管理多個測試用例。如果測試用例比作單個學生,測試套件就是好像是班級的概念。

2.4 測試執行器 (test runner)

       test runner是一個用來執行載入測試用例,並執行用例,且提供測試輸出的一個組建。test runner可以載入test case或者test suite進行執行測試任務。

我們舉例來,練習一下test fixture和test case的使用,學習unittest的簡單用法:

2.5 設計思路

1. 新建一個testbaidu.py的檔案

2. 匯入unittest模組

3. 當前測試類繼承unittest.TestCase,相當於當前利用unittest建立了一個test case,這個test case是能夠被unittest直接識別。

4. 寫setUP(),主要是開啟瀏覽器和開啟站點

5. 寫一個test_search()用例寫搜尋的程式碼

6. 寫tearDown(),主要是瀏覽器退出操作

相關指令碼程式碼如下:

2.5.1 程式碼實現:

2.5.2 參考程式碼:
# coding=utf-8