天天看點

基于PO模式和單例模式的Python+Selenium UI自動化架構設計【多測師】

一、建立一個project、每個包的分層如下:

基于PO模式和單例模式的Python+Selenium UI自動化架構設計【多測師】

最終的架構結構:

二、config包中建立一個config.ini主要用于存儲目前項目的絕對路徑,[project]表示section節點   project_path表示option

globalconfig裡面首先通過ReadConfigIni這個類建立一個對象,用對象調用執行個體方法getConfigValue讀取ini檔案裡面的

section和option來擷取project_path對應的value,進而可以擷取到項目的絕對路徑

作用:

1、可以把項目的絕對路徑設定為一個常量

2、可以通過項目路徑拼接report、Data和TestCase的路徑來擷取報告、資料和測試用例的路徑、這個可以為後面的跑測試用例

打下基礎。

三、Data包當中下面有一個data.xlsx檔案、這個檔案主要用于存放需要被測對象的url位址和賬号密碼資訊等等,都可以通過xlrd子產品來進去讀取

四、DoExcel.py這個子產品當中實作的主要是用來讀取上面data.xlsx這個檔案内容的,首先要引入一個子產品xlrd這個子產品可以在dos視窗通過pip install xlrd來進行安裝

可以通過xlrd.open_workbook打開一個Excel檔案,然後通過 sheet_by_name方法來打開具體的哪個sheet檔案

然後通過cell方法去擷取對應行和列的value值

五、ReadConfigIni子產品主要是用來讀取ini格式結尾的檔案的,通過section節點和option來擷取對應的value值

六、建立一個BasePage子產品主要是封裝所有頁面的公共類,然後建立driver對象,這個driver對象而且是單例的并且把

元素定位方式也封裝了一遍這是為後面的PO設計模式做準備

七、Place_Order子產品封裝的是登入的整個流程、用到了PO設計模式

PO的意思就是page object頁面對象模型

1、所有目前頁面的元素都是目前頁面對象的屬性

2、優點就是元素定位容易修改

3、缺點就是代碼量過多

4、這裡隻舉了一個小例子、如果元素定位比較多的話需要單獨封裝在一個類當中

八、TestCase層開始編寫測試用例、繼承unittest.TestCase類

unittest單元測試架構是用來管理群組織測試用例的

可以按照類開始=》方法開始=》函數體=》方法結束=》類結束的步驟運作測試用例

九、run_all子產品裡面主要封裝了自動搜尋用例、并且通過runner對象運作測試用例并且生成測試報告

還封裝了發送郵件的方法

十、mail子產品當中主要封裝了發送郵件的類和方法、可以把生成的報告以附件和HTML格式發送到規定的郵箱中

十一、架構的總結:

'''

架構總結

優點:

1.層次分明

2.子產品化

3.降低耦合性

4.易于維護 -- 元素定位修改比較友善

5.代碼複用性大 -- 登入方法可以重複使用

缺點:

1.比較繁瑣,代碼量比較多

2.方法調用比較多,出現問題比較難定位'''

'''

對于驗證碼的處理1.開發會給一個萬能的驗證碼

2.背景資料庫對驗證碼會進行配置項管理 Y表示打開 N表示關閉

繼續閱讀