python自動化用例架構搭建--目錄結構規劃

來源:互聯網
上載者:User

標籤: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自動化用例架構搭建--目錄結構規劃

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.