標籤:TE driver path 分類 sele 添加 訪問 方法 stc
目錄結構搭建
1 Test_framework 2 |--config(設定檔) 3 |--data(資料檔案) 4 |--drivers(驅動) 5 |--log(日誌) 6 |--report(測試報告) 7 |--test(程式碼) 8 |--case(測試案例) 9 |--common(抽象通用代碼)10 |--page(頁面類代碼)11 |--suit(測試套)12 |--utils(公用方法)13 |--ReadMe.md(加個說明性的檔案,告訴團隊成員架構需要的環境以及用法)
1.config層,放設定檔,把所有的項目相關的配置均放到這裡,用Python支援較好的設定檔格式如ini或yaml等進行配置。實現配置與代碼分離。
2.data層,放資料檔案,可以把所有的testcase的參數化相關的檔案放到這裡,一般可採用xlsx、csv、xml等格式。實現資料與代碼分離。
3.drivers層,放所需的驅動,如Chromedriver、IEDriverServer等。
4.log層,所有產生的日誌均存放在這裡,可將日誌分類,如運行時日誌test log,錯誤記錄檔error log等。
5.report層,放程式運行產生的報告,一般可有html報告、excel報告等。
6.test源碼層,放所有測試相關的檔案:
case——測試案例
common——跟項目、頁面無關的封裝,如瀏覽器封裝
page——頁面相關操作封裝
suite——組織的測試套件
7.utils層,所有的支撐代碼都在這裡,包括讀取config的類、寫log的類、讀取excel、xml的類、產生報告的類(如HTMLTestRunner)等類和方法,都在這裡。
8.ReadMe.md,說明性的檔案,告訴團隊成員架構需要的環境以及用法
二、已封裝公用方法陳列
1.傳入瀏覽器類型開啟瀏覽器,初始頁面為首頁
from test.page.main_page import MainPage #導包
self.page = MainPage(browser_type=‘firefox‘).get(self.URL, maximize_window=False)
browser_type:瀏覽器類型,firefox、ie、chrome
self.URL:需訪問的瀏覽器地址,如:URL = "http://www.baidu.com"
2.擷取excel檔案資料
from utils.file_reader import ExcelReader #導包
datas = ExcelReader(self.excel, title_line=False).data
self.excel:需要擷取的excel檔案地址,如:excel = ‘E:\Software\sichuantest\data\baidu.xlsx‘
title_line:是否有標題列,預設為true,如excel檔案如所示:
title_line=true,datas={‘search‘,‘selenium 灰藍‘,‘Python selenium‘}
title_line=false,datas={{‘search‘:‘selenium 灰藍‘},{‘search‘:‘Python selenium‘}}
3.產生測試報告
from utils.HTMLTestRunner import HTMLTestRunner #導包
file_name = os.path.split(__file__)[-1].split(‘.‘)[0] #擷取用例檔案名稱report = REPORT_PATH + ‘\\‘ + file_name + ‘_report.html‘ #通過用例檔案名稱拼接測試報告名
with open(report, ‘wb‘) as f:
runner = HTMLTestRunner(f, verbosity=2, title=‘html報告test‘, description=‘html報告內容‘) #設定測試報告的title,description
runner.run(TestBaiDu(‘test_search‘)) #設定測試報告顯示的用例內容
REPORT_PATH:測試報告產生路徑,如:E:\Software\sichuantest\report
TestBaiDu(‘test_search‘):需執行的用例函數,即測試報告顯示用例內容
4.log日誌列印,統一打在E:\Software\sichuantest\log\test.log檔案中
from utils.log import logger #導包
logger.info(link.text)
link.text:需列印內容
列印日誌內容格式如下,可通過檔案名稱及行數進行定位
2018-06-14 16:03:38,866 - client.py[line:47] - DEBUG - GET http://www.baidu.com
5.通過config.py擷取在config.yml組態變數值
如下,config.yml有配置URL變數
可以通過以下代碼直接擷取
from utils.config import Config #導包
URL = Config().get(‘URL‘)
6.斷言類:assertion.py
內容為一些公用斷言操作,斷言是判斷用例執行成功與否的依據,規範用例都應添加
7.頁面操作類:page/main_page.py,page/result_page.py..
內容為一些頁面公用操作,如通過id定位元素並賦值給它
python自動化用例架構搭建--目錄結構規劃