基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架php
by:授客 QQ:1033553122html
博客:http://blog.sina.com.cn/ishoukepython
歡迎加入軟件性能測試交流QQ羣:7156436mysql
目錄git
1、 開發環境github
2、 基本配置web
3、 主要功能邏輯介紹sql
4、 框架功能簡介chrome
5、 服務端部署數據庫
文檔裏qq羣羣號寫錯了,麻煩加交流QQ羣:7156436
win7 64
PyCharm 4.0.5
setuptools-29.0.1.zip
下載地址:http://pan.baidu.com/s/1mhMSAkK
官方下載地址:https://pypi.python.org/pypi/setuptools#downloads
mysql-connector-python-2.1.4-py3.3-win64
下載地址:http://pan.baidu.com/s/1cDtP1O
官方下載地址:http://dev.mysql.com/downloads/connector/python/
selenium-3.0.2
下載地址1:http://pan.baidu.com/s/1bFfY4Q
官方下載地址:https://pypi.python.org/pypi/selenium
火狐瀏覽器:47.0.2
下載地址1:http://pan.baidu.com/s/1jI0SHTG
官方下載地址:https://github.com/mozilla/geckodriver/releases
IE8
IEDriverServer
下載地址:http://pan.baidu.com/s/1bHhOC2
Chrome瀏覽器 54.0.2840.59 m
下載地址:http://pan.baidu.com/s/1kUOreMr
chromedriver_win32 2.2.5
下載地址1:http://chromedriver.storage.googleapis.com/index.html?path=2.25/
下載地址2:http://pan.baidu.com/s/1slGn5hV
PHP版本:Apache+PHP5.3
ftp服務器
安裝完Python後,把chromedriver.exe,geckodriver和IEDriverServer.exe瀏覽器驅動,放到python安裝目錄(例:D:\Program Files\python33)下,以下
若是火狐瀏覽器不是安裝在默認安裝目錄下,(例:D:\Program Files (x86)\Mozilla Firefox\),須要在path中添加firefox.exe所在的安裝目錄,不然會報錯,相似以下:
Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line
而後重啓瀏覽器和pycharm
一、框架採用PHP web頁面,管理頁面對象,測試計劃,測試用例,用例步驟,支持界面元素操做,支持函數執行
2、可經過配置文件靈活配置運行模式:
l 支持按測試計劃運行:一次運行單個、多個指定的測試計劃;
l 支持按測試用例運行:一次運行單條測試用例
l 支持按照執行流水編號運行:每啓動一種瀏覽器,每執行一次都會生成一個執行編號,按流水編號運行,會自動選擇上次執行的瀏覽器,重複運行該計劃對應的測試用例(注意:目前計劃建立後,其擁有的測試用例保持不變,即沒法刪,減)
三、可經過配置文件,配置須要運行的瀏覽器,支持自由擴展
四、可經過配置文件靈活選擇測試須要的web site,和數據庫
五、可自動生成HTML可視化接口測試報告
六、可根據配置在測試完成後,自動發送測試報告郵件,郵件發送支持SSL加密發送和非SSL加密發送,同時支持往多個郵箱發送郵件
七、支持文件、控制檯的日誌打印,可分別控制開關
八、可集成Jenkins自動運行腳本
參考文章:爲Jenkins添加Windows Slave遠程執行python項目腳本
參考 「Web自動化測試-服務端測試環境部署.doc」文件
a) config
db_evn.conf:包含不一樣環境的測試數據庫,應用數據庫的配置信息(目前僅用到了測試數據庫
web_site:包含不一樣環境的web站點信息,包括web url,賬號,密碼,驗證碼(目前只用到了url
browser.conf:提供瀏覽器類型配置,即須要進行測試的瀏覽器
ftp.conf: 提供ftp站點配置信息,包括host,port,用戶,密碼
log.conf:包含日誌配置信息,具體以下:
mail.conf:包含郵件發送配置信息,以下,
注:不一樣類型的郵箱(發件人郵箱),須要修改配置文件爲對應郵件服務器的host和端口
smtp.163.com:25
smtp.qq.com:465
report.conf:包含測試報告文件配置信息,以下
runmodeconfig.conf:包含運行模式配置信息
screenshot.conf:提供截圖配置信息
test_env_swith: 提供環境切換
b) publicpkg
broserconf.py:瀏覽器配置類
database.py:提供數據庫初始化配置,封裝數據庫操做,增刪改查等
ftp.py:實現ftp上傳下載,封裝ftp操做
mail.py:實現郵件發送
runmode.py:運行模式配置類
web.py:瀏覽器配置類
othertools.py: 工具類,實現其它功能,好比批量建立目錄,轉換php頁面存儲的數據,遞歸遍歷指定目錄下的特徵文件
globalvar.py:主要提供全局變量,全局實例等
注意:這裏使用了__all__控制import * 能導入的名稱(全局變量,全局實例等
seleniumutil.py:主要是封裝了selenium的一些基礎操做,及極少部分的py函數,支持自由擴展
c) web_auto_test
說明:
1、提供程序入口,測試計劃,測試用例,測試步驟,測試報告類
2、因時間倉促及其餘緣由等,對象定義、設計上或多或少存在一些不合理的地方
注:
1、目前「操做」僅支持元素操做,執行函數
2、時間關係,僅實現了小部分操做
3、關於步驟斷言的想法:這塊可把斷言當作是步驟,步驟失敗則斷言失敗,用例也失敗,不然成功
4、用例依賴:用例之間最好互不依賴,若是是按計劃執行,可考慮調整計劃中的用例執行順序,若是是按照單個用例的執行,可在runmode.conf配置文件中按順序添加全局初始化用例
5、個人感受:ui自動化這塊用例之間或多或少會存在依賴,由於元素的查找依賴頁面,不一樣操做會打開不一樣的頁面,如 果某個操做在某個頁面失敗了,沒返回到另外一個用例查找元素須要的頁面,這會執行另外一個頁面的操做時是否也就意味着失敗呢,除非每一個用例之間作到了互不依 賴?時間關係,沒來得及拿本框架去作更多實驗,這塊待研究
下載地址: 暫不打算開源,若是開源,僅在QQ羣(羣號:7156436)內分享
下載後解壓,用pycharm導入項目便可
1、時間有限,精力有限,暫且就到這吧,有須要的能夠本身擴展、修改框架。
2、PHP頁面非本人編寫,部分代碼實現設計受其約束