一. 目錄結構
二. 設計模式
基於page-object設計模式
1.lib-base
util--實現讀取配置文件
driver_manager--通過type參數啓動不同的瀏覽器driver
test_manager--通過type參數生成不同的類,實現多瀏覽器支持
2.lib-page
abstract_page實現
讀取配置:url、用戶信息
登錄功能
*:注意單獨調試的時候需要在開頭加上sys.path.append(r'D:\test_browser'),否則from lib.base.util import Util會報錯
XXXPage實現每個page頁功能,如創建bug、創建文檔功能
3.case
test_abstract實現
成員變量type,driver,config_file
在setup和teardown中實現driver啓停
截圖功能
TestXXXPage實現每個page頁測試用例
寫用例的時候先寫page再寫對應的case
三. 配置管理
使用ConfigParser模塊
[info]
url=http://127.0.0.1:8888/XXX/
admin_user=admin
admin_pswd=123456
admin_name=管理員
qa_user=test01
qa_pswd=123456
qa_name=測試1
rd_user=test02
rd_pswd=123456
rd_name=測試2
[test]
dir_screenshot=D:/test_browser/data/screenshot
import ConfigParser config=ConfigParser.ConfigParser() config.read('base.conf') print config.get('info','qa_user')
四. 多瀏覽器
採用類的繼承方式生成針對不同瀏覽器的類,實現多瀏覽器支持
from new import classobj Class TestManager: @staticmethod def getTest(clz,type): new_classname=str(clz.__name__)+'-'+str(type).capitalize() #駝峯式寫法,首字母大寫 new_clz=classobj(new_classname,(clz,),{'type':type}) return unittest.makeSuite(new_clz)