附件地址:https://shimo.im/docs/diosNvq2VasmdlQy
UItestframework項目目前具有以下功能:
1蜂林、對webdriver進行了第二次的簡單封裝叔磷,使用更加方便 public/common/pyselenium.py
(ps:這個是在蟲師的pyse基礎(chǔ)加了打印日志功能,參考:https://github.com/defnngj/pyse)
2、可以對excel表進行數(shù)據(jù)讀取,完成數(shù)據(jù)驅(qū)動:public/common/datainfo.py
3定铜、具有打印日志的功能阳液,打印在控制臺和文件中:public/common/log.py,日志保存在report/log/目錄下
4、讀取配置文件(.ini文件):public/common/readconfig.py
5揣炕、具有發(fā)郵件的功能:public/common/sendmail.py
6帘皿、生成測試報告:html測試報告的路徑:report/testreport/目錄下
7、使用了PageObject模式來編寫測試腳本
整個項目的目錄結(jié)構(gòu):
├─config 配置文件的目錄
│? │? config.ini? 存放配置文件
│? │? globalparam.py? 重要的全局參數(shù)畸陡,如log鹰溜、report的路徑配置等
│? │? __init__.py
│? │
│
├─data? 測試數(shù)據(jù)
│? ├─formaldata # 正式環(huán)境測試數(shù)據(jù)
│? └─testdata? # 測試環(huán)境的數(shù)據(jù)
│? ? ? ? ? user.xlsx
│
├─public? 公共的文件庫
│? │? __init__.py
│? │
│? ├─common? 封裝的公共方法
│? │? │? basepage.py
│? │? │? datainfo.py
│? │? │? log.py
│? │? │? mytest.py
│? │? │? publicfunction.py
│? │? │? pyselenium.py
│? │? │? pyselenium20161107.py
│? │? │? readconfig.py
│? │? │? sendmail.py
│? │? │? __init__.py
│? │?
│? ├─method? 封裝的公共模塊方法
│? │? │ login.py
│? │? │ __init__.py
│? │?
│? ├─pages 使用pageobject模式編寫測試腳本,存放page的目錄
│? │? │? zaozuo_shaidanPage.py
│? │? │? zaozuoBuyGoodsPage.py
│? │? │? zaozuo_shaidanPage.py
│? │? │? zaozuoindexPage.py
│? │? │? zaozuologinPage.py
│? │? │? zaozuoMyorder.py
│? │? │ zaozuoMyProfilePage.py
│? │? │? __init__.py
│
├─report 測試報告
│? ├─image 截圖目錄
│? ├─log 日志目錄
│? │? ? ? 2018-11-17.log
│? │
│? └─testreport? html測試報告目錄
│? ? ? ? ? TestResult2018-11-17_16_15_51.html
│
└─testcase 存放測試用例
? ? │? test_zaozuo_buygoods.py
? ? │? test_zaozuo_change_address.py
? ? │? test_zaozuo_Evaluation.py
? ? │? test_zaozuo_login.py
? ? │? test_zaozuo_logout.py
使用說明:
安裝響應(yīng)的庫: pip install xlrd,selenium,configparser
1丁恭、在config.ini中配置項目路徑:project_path
2曹动、測試數(shù)據(jù)放在data目錄下面
3、使用pageobject牲览,寫page頁面墓陈,在測試用例里面調(diào)用放在public/pages目錄下
4、一些公共使用的功能模塊第献,在public\method里邊寫入贡必,如login,在測試用例里邊調(diào)用
5庸毫、在testcase目錄下面仔拟,編寫測試用例,可以分模塊編寫飒赃,建相應(yīng)的目錄
6利花、執(zhí)行run.py,就可以執(zhí)行所有的測試用例
7、在report/log里面查看日志
8盒揉、在report/testreport里面查看html測試報告
9晋被、異常可以在report\image里面查看png截圖
關(guān)于pyselenium的使用:
該py文件是根據(jù)蟲師的pyse改的刚盈,加了一個日志羡洛,根據(jù)自己的需要加了幾個函數(shù)
可以參考蟲師的pyse,github地址:https://github.com/defnngj/pyse
蟲師的博客園地址:https://github.com/defnngj/pyse
導(dǎo)入PySlenium文件
import PySelenium
1、啟動瀏覽器:
啟動谷歌瀏覽器
dr = PySelenium.PySelenium('chrom')
啟動遠(yuǎn)程瀏覽器比如使用grid施行分布式執(zhí)行
dr = PySelenium.PySelenium(RChrome','127.0.0.1:8080')
2藕漱、在地址欄輸入網(wǎng)址:
dr.open('http://www.baidu.com')
3欲侮、窗口最大化
dr.max_window()
4、設(shè)置瀏覽器的窗口的大小
dr.set_window(800,500)
5肋联、不清除文本框的內(nèi)容直接輸入值(比如說:進行文件上傳時威蕉,上傳文件的路徑,如果清除就會報錯):
dr.type('id->su','小石頭tester')
6橄仍、先清除文本框的內(nèi)容韧涨,然后再輸入值(用得很多):
dr.clear_type('name->su','蟲師')
7牍戚、直接點擊元素
dr.click('css->#kw')
8、右鍵點擊元素:
dr.right_click('id->kw')
9虑粥、將鼠標(biāo)移動到一個元素上
dr.move_to_element('clas->btn1.btn-green.btn-search')
10如孝、雙擊元素
dr.double_click("id->kw")
11、將一個元素拖拽到另外一個元素上
dr.drag_and_drop('id->kw1','id->kw2')
12娩贷、根據(jù)連接的text來點擊(<a )
27第晰、返回原生的webdriver,進行個性化需求
dr.origin_driver()