web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架
基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架
by:授客 QQ:1033553122
博客:http://blog.sina.com.cn/ishouke
欢迎加入软件性能测试交流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
web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架的更多相关文章
- 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试
Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...
- 一次简单完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试
Web登录测试是很常见的测试,手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文就基于python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动化 ...
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉 ...
- Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试(自由风格)
Jenkins简介 Jenkins是Java编写的非常流行的持续集成(CI)服务,起源于Hudson项目.所以Jenkins和Hudson功能相似. Jenkins支持各种版本的控制工具,如CVS.S ...
- web自动化一(selenium+python+pycharm环境搭建)
年前公司刚刚搭起了web自动化测试框架的环境,趁着过完年还没全部忘掉,准备把如何搭建环境的方法和大家分享下,有哪里不对的地方,请批评指正,共同进步,共勉! 为此我把搭建环境所需的软件打包上传到百度云, ...
- 基于Python, Selenium, Phantomjs无头浏览器访问页面
引言: 在自动化测试以及爬虫领域,无头浏览器的应用场景非常广泛,本文将梳理其中的若干概念和思路,并基于代码示例其中的若干使用技巧. 1. 无头浏览器 通常大家在在打开网页的工具就是浏览器,通过界面上输 ...
- 自动化选课(Python + selenium
前几天听到朋友说自己选课事情,突发奇想想要搞这样一个东西,但是由于各种原因只做到以下的完成度,具体的情况也会在解释的最后留下.这个只适用于曲师大的教务系统,因为用的这个系统来进行的一个调试,对于其 ...
- 接口自动化 基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]
基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版] by:授客 QQ:1033553122 由于篇幅问题,,暂且采用网盘分享的形式: 下载地址: [授客] ...
- 接口自动化 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)
基于python实现的http+json协议接口自动化测试框架(实用改进版) by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 目录 1. ...
随机推荐
- 【PHP篇】变量与常量
变量: 变量的作用域为函数区域 判断是否存在:isset($变量名)://返回bool 判断是否为空:empty($变量名)//变量未声明或者值为空返回1,否则返回false 清除变量:unset($ ...
- mysql 开发进阶篇系列 48 物理备份与恢复(xtrabackup 的增量备份与恢复,以及备份总结)
一.增量备份概述 xtrabackup 和innobackupex 二个工具都支持增量备份,这意味着能复制自上次备份以来更改的数据.可以在每个完整备份之间执行许多增量备份,因此,您可以设置一个备份 ...
- selenium之 玩转鼠标键盘操作(ActionChains)
用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等.而selenium给我们提供了一个类来处理这类事件——ActionChains sele ...
- Python快速学习06:词典
系列文章:[传送门] 上面讲的,特别是对象和类,大家好好体会. Python对象是Python语言的核心部分.今天介绍一个新类:词典(dictionary) 基本概念 字典是Python 中的映射数据 ...
- JavaScript和Ajax部分(3)
21. 原生(native)Ajax使用实例 //创建XMLHttpRequest对象的方法 function createXmlHttpRequest(){ if(window.ActiveXObj ...
- 【原创】关于Git暂存区的理解
关于Git暂存区的理解 暂存区可以说是Git的三大重要的区域之一,另外两个分别是工作目录和Git仓库,所以说对暂存区的深入理解可以帮助我们理解很多Git命令背后隐藏的工作原理.今天,本文将以 ...
- Linux常用命令之网络和关机重启命令
目录 1.网络命令 一.给指定用户发送信息:write 二.给所有用户发送广播信息:wall 三.测试网络连通性:ping 四.查看和设置网卡信息:ifconfig 五.查看发送电子邮件:mail 六 ...
- 使用3D Slicer进行颅骨去除
关于3D Slicer的下载.安装及模块安装在上一篇博客中以及介绍过,以下将专注于使用3D Slicer进行颅骨去除 准备 此次,我们需要安装SwissSkullStripper模块,安装后需要重启软 ...
- Redis客户端操作之Jedis
在前面的文章给大家详细的介绍了Redis各种知识点,本文主要给大家介绍下java程序怎么操作Redis数据. Redis之集群环境搭建 Redis官网中提供了各种语言的客户端,使用起来很方便, ...
- C# winform程序怎么打包成安装项目(VS2010图解)
作为研发人员,在本机上开发的winform.wpf或者控制台程序需要发给其他人测试时候,一般需要对其进行打包生成setup安装文件,根据网上查找的资料并结合自己打包成功,记录如下: 注:本程序是一个利 ...