web自動化 基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架php

 

by:授客 QQ1033553122html

 

  博客:http://blog.sina.com.cn/ishoukepython

 

歡迎加入軟件性能測試交流QQ羣:7156436mysql

 

 

 

目錄git

1           開發環境github

2           基本配置web

3           主要功能邏輯介紹sql

4           框架功能簡介chrome

5           服務端部署數據庫

6           框架模塊詳細介紹

7           頁面元素管理

8           用例管理

9           測試計劃管理

10        運行結果

11        源碼下載

12        說明

 

文檔裏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

 

python 3.3.2

 

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

下載地址1http://pan.baidu.com/s/1bFfY4Q

官方下載地址:https://pypi.python.org/pypi/selenium

 

 

火狐瀏覽器:47.0.2

 

geckodriver-v0.11.1-win64.zip

下載地址1http://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

下載地址1http://chromedriver.storage.googleapis.com/index.html?path=2.25/

下載地址2http://pan.baidu.com/s/1slGn5hV

 

PHP版本:Apache+PHP5.3

 

ftp服務器

 

二、  基本配置

安裝完Python後,把chromedriver.exegeckodriverIEDriverServer.exe瀏覽器驅動,放到python安裝目錄(例:D:\Program Files\python33)下,以下

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

 

若是火狐瀏覽器不是安裝在默認安裝目錄下,(例: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

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

 

三、  主要功能邏輯介紹

1

 

四、  框架功能簡介

一、框架採用PHP web頁面,管理頁面對象,測試計劃,測試用例,用例步驟,支持界面元素操做,支持函數執行

 

2、可經過配置文件靈活配置運行模式:

l  支持按測試計劃運行:一次運行單個、多個指定的測試計劃;

l  支持按測試用例運行:一次運行單條測試用例

l  支持按照執行流水編號運行:每啓動一種瀏覽器,每執行一次都會生成一個執行編號,按流水編號運行,會自動選擇上次執行的瀏覽器,重複運行該計劃對應的測試用例(注意:目前計劃建立後,其擁有的測試用例保持不變,即沒法刪,減)

 

三、可經過配置文件,配置須要運行的瀏覽器,支持自由擴展

 

四、可經過配置文件靈活選擇測試須要的web site,和數據庫

 

五、可自動生成HTML可視化接口測試報告

 

六、可根據配置在測試完成後,自動發送測試報告郵件,郵件發送支持SSL加密發送和非SSL加密發送,同時支持往多個郵箱發送郵件

 

七、支持文件、控制檯的日誌打印,可分別控制開關

 

八、可集成Jenkins自動運行腳本

參考文章:Jenkins添加Windows Slave遠程執行python項目腳本

 

五、  服務端部署

參考 Web自動化測試-服務端測試環境部署.doc」文件

 

六、  框架模塊詳細介紹

a)   config

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

db_evn.conf包含不一樣環境的測試數據庫,應用數據庫的配置信息(目前僅用到了測試數據庫

 

web_site包含不一樣環境的web站點信息,包括web url,賬號,密碼,驗證碼(目前只用到了url

 

browser.conf提供瀏覽器類型配置,即須要進行測試的瀏覽器

 

ftp.conf: 提供ftp站點配置信息,包括host,port,用戶,密碼

 

 

log.conf包含日誌配置信息,具體以下:

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

 

mail.conf包含郵件發送配置信息,以下,

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

注:不一樣類型的郵箱(發件人郵箱),須要修改配置文件爲對應郵件服務器的host和端口

smtp.163.com:25

smtp.qq.com:465

 

report.conf包含測試報告文件配置信息,以下

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

 

runmodeconfig.conf包含運行模式配置信息

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

 

screenshot.conf:提供截圖配置信息

 web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

 

test_env_swith: 提供環境切換

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

 

b)   publicpkg

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

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

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

 

說明:

1、提供程序入口,測試計劃,測試用例,測試步驟,測試報告類

2、因時間倉促及其餘緣由等,對象定義、設計上或多或少存在一些不合理的地方

 

七、  頁面元素管理

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

 

八、  用例管理

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

注:

1、目前「操做」僅支持元素操做,執行函數

2、時間關係,僅實現了小部分操做

3、關於步驟斷言的想法:這塊可把斷言當作是步驟,步驟失敗則斷言失敗,用例也失敗,不然成功

4、用例依賴:用例之間最好互不依賴,若是是按計劃執行,可考慮調整計劃中的用例執行順序,若是是按照單個用例的執行,可在runmode.conf配置文件中按順序添加全局初始化用例

5、個人感受:ui自動化這塊用例之間或多或少會存在依賴,由於元素的查找依賴頁面,不一樣操做會打開不一樣的頁面,如 果某個操做在某個頁面失敗了,沒返回到另外一個用例查找元素須要的頁面,這會執行另外一個頁面的操做時是否也就意味着失敗呢,除非每一個用例之間作到了互不依 賴?時間關係,沒來得及拿本框架去作更多實驗,這塊待研究

 

九、  測試計劃管理

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

 

 

十、運行結果

web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架


web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

 web自動化 <wbr>基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架

十一、源碼下載

下載地址: 暫不打算開源,若是開源,僅在QQ羣(羣號:7156436)內分享

 

下載後解壓,用pycharm導入項目便可

 

十二、說明

1、時間有限,精力有限,暫且就到這吧,有須要的能夠本身擴展、修改框架。

2PHP頁面非本人編寫,部分代碼實現設計受其約束

pdf版本下載:[授客]基於python+Selenium+PHP+Ftp實現的輕量級web自動化測試框架.pdf

相關文章
相關標籤/搜索