专栏首页授客的专栏web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架

web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架

目录

1、 开发环境

2、 基本配置

3、 主要功能逻辑介绍

4、 框架功能简介

5、 服务端部署

6、 框架模块详细介绍

7、 页面元素管理

8、 用例管理

9、 测试计划管理

10、 运行结果

11、 源码下载

12、 说明

文档里qq群群号写错了,麻烦加交流QQ群:7156436

1、 开发环境

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

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

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

火狐浏览器:47.0.2

geckodriver-v0.11.1-win64.zip

下载地址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服务器

2、 基本配置

安装完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

3、 主要功能逻辑介绍

4、 框架功能简介

1、框架采用PHP web页面,管理页面对象,测试计划,测试用例,用例步骤,支持界面元素操作,支持函数执行

2、可通过配置文件灵活配置运行模式:

l 支持按测试计划运行:一次运行单个、多个指定的测试计划;

l 支持按测试用例运行:一次运行单条测试用例

l 支持按照执行流水编号运行:每启动一种浏览器,每执行一次都会生成一个执行编号,按流水编号运行,会自动选择上次执行的浏览器,重复运行该计划对应的测试用例(注意:目前计划创建后,其拥有的测试用例保持不变,即无法删,减)

3、可通过配置文件,配置需要运行的浏览器,支持自由扩展

4、可通过配置文件灵活选择测试需要的web site,和数据库

5、可自动生成HTML可视化接口测试报告

6、可根据配置在测试完成后,自动发送测试报告邮件,邮件发送支持SSL加密发送和非SSL加密发送,同时支持往多个邮箱发送邮件

7、支持文件、控制台的日志打印,可分别控制开关

8、可集成Jenkins自动运行脚本

参考文章:为Jenkins添加Windows Slave远程执行python项目脚本

5、 服务端部署

参考 “Web自动化测试-服务端测试环境部署.doc”文件

6、 框架模块详细介绍

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、因时间仓促及其他原因等,对象定义、设计上或多或少存在一些不合理的地方

7、 页面元素管理

8、 用例管理

注:

1、目前“操作”仅支持元素操作,执行函数

2、时间关系,仅实现了小部分操作

3、关于步骤断言的想法:这块可把断言看成是步骤,步骤失败则断言失败,用例也失败,否则成功

4、用例依赖:用例之间最好互不依赖,如果是按计划执行,可考虑调整计划中的用例执行顺序,如果是按照单个用例的执行,可在runmode.conf配置文件中按顺序添加全局初始化用例

5、我的感觉:ui自动化这块用例之间或多或少会存在依赖,因为元素的查找依赖页面,不同操作会打开不同的页面,如 果某个操作在某个页面失败了,没返回到另一个用例查找元素需要的页面,这会执行另一个页面的操作时是否也就意味着失败呢,除非每个用例之间做到了互不依 赖?时间关系,没来得及拿本框架去做更多实验,这块待研究

9、 测试计划管理

10、运行结果

11、源码下载

下载地址: 暂不打算开源,如果开源,仅在QQ群(群号:7156436)内分享

下载后解压,用pycharm导入项目即可

12、说明

1、时间有限,精力有限,暂且就到这吧,有需要的可以自己扩展、修改框架。

2、PHP页面非本人编写,部分代码实现设计受其约束

pdf版本下载:[授客]基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架.pdf

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python 获取被调用函数名称,所处模块,被调用代码行

    print(sys._getframe().f_code.co_filename)

    授客
  • Jenkins 开启用户注册机制及用户权限设置

    授客
  • selenium win7+selenium2.0+python环境搭建

    担心最新版的支持不太好,这里我下载的是python 2.7(selenium之前不支持python3.x)

    授客
  • Tcl之$$a 80%的概率......

    看一个典型的例子,如下图所示。变量x被赋值为10,变量a被赋值为字符x。之后,给变量b赋值$a。最终变量b的值将会是x,而不是10。

    Lauren的FPGA
  • Python Django Cheat Sheet

    virtualenv 是一个创建隔绝的Python环境的工具。 virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。

    李郑
  • 收了!这100 个容器技术相关技能栈

    大规模的容器技术运用从来不是一项独立工程,而是一个汇集虚拟化技术、容器编排、任务调度、操作系统、容器仓库、跨节点网络、分布式存储、动态扩缩、负载均衡、日志监控、...

    用户6543014
  • 编程小白 | 每日一练(111)

    这道理放在编程上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从编程小白进阶到高手,需要经历的是日积月累的学习,那么如何学习呢?当然是每天都...

    闫小林
  • Mac下图像标注工具labelImg的安装

    版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.cs...

    Tyan
  • Python3网络爬虫(十四):跟股神巴菲特学习炒股之财务报表入库(MySQL)

    版权声明:本文为博主原创文章,未经博主允许不得转载。个人网站:http://cuijiahua.com。 ...

    Jack_Cui
  • web前端安全机制问题全解析

    web前端安全方面技术含有的东西较多,这里就来理一理web安全方面所涉及的一些问题。 一、xss与sql攻击 入门级的安全知识,攻击手段和防范方法这里略过,不...

    IMWeb前端团队

扫码关注云+社区

领取腾讯云代金券