基于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页面非本人编写,部分代码实现设计受其约束