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

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

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

 



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

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

 

2、 基本配置

安装完Python后,把chromedriver.exegeckodriverIEDriverServer.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、时间有限,精力有限,暂且就到这吧,有需要的可以自己扩展、修改框架。

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

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

目录
相关文章
|
3月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
341 0
|
3月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
520 0
|
3月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
222 0
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
7月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1169 23
|
9月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1510 24
|
11月前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
896 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
9月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
429 2
|
11月前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
657 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
10月前
|
存储 JSON API
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。

推荐镜像

更多