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

 

by:授客 QQ1033553122

 

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

 

欢迎加入软件性能测试交流QQ群:7156436

 

 

 

目录

1           开发环境

2           基本配置

3           主要功能逻辑介绍

4           框架功能简介

5           服务端部署

6           框架模块详细介绍

7           页面元素管理

8           用例管理

9           测试计划管理

10        运行结果

11        源码下载

12        说明

 




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

下载地址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
、可通过配置文件灵活配置运行模式:




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




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




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


 


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自动化测试框架的更多相关文章

  1. 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试

    Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...

  2. 一次简单完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试

    Web登录测试是很常见的测试,手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文就基于python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动化 ...

  3. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

    目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构   前言 学习Python也有一个半月时间了,学到现在感觉 ...

  4. Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试(自由风格)

    Jenkins简介 Jenkins是Java编写的非常流行的持续集成(CI)服务,起源于Hudson项目.所以Jenkins和Hudson功能相似. Jenkins支持各种版本的控制工具,如CVS.S ...

  5. web自动化一(selenium+python+pycharm环境搭建)

    年前公司刚刚搭起了web自动化测试框架的环境,趁着过完年还没全部忘掉,准备把如何搭建环境的方法和大家分享下,有哪里不对的地方,请批评指正,共同进步,共勉! 为此我把搭建环境所需的软件打包上传到百度云, ...

  6. 基于Python, Selenium, Phantomjs无头浏览器访问页面

    引言: 在自动化测试以及爬虫领域,无头浏览器的应用场景非常广泛,本文将梳理其中的若干概念和思路,并基于代码示例其中的若干使用技巧. 1. 无头浏览器 通常大家在在打开网页的工具就是浏览器,通过界面上输 ...

  7. 自动化选课(Python + selenium

    ​ 前几天听到朋友说自己选课事情,突发奇想想要搞这样一个东西,但是由于各种原因只做到以下的完成度,具体的情况也会在解释的最后留下.这个只适用于曲师大的教务系统,因为用的这个系统来进行的一个调试,对于其 ...

  8. 接口自动化 基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]

    基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]   by:授客 QQ:1033553122 由于篇幅问题,,暂且采用网盘分享的形式: 下载地址: [授客] ...

  9. 接口自动化 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)

    基于python实现的http+json协议接口自动化测试框架(实用改进版)   by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436     目录 1.      ...

随机推荐

  1. 如何配置React Native真机调试-iOS

    说在前面,本教程是建立在项目已经成功在模拟器上运行的基础上,如果你是还未配置好环境的新手,建议先从官网快速入门开始:官网英文版 . 中文版 ok, 切入正题,当你已经完成好环境配置,在模拟器上成功的运 ...

  2. 部署 YApi 接口管理服务

    安装 Node curl -sL https://rpm.nodesource.com/setup_8.x | bash - yum install -y nodejs 安装 MongoDB vi / ...

  3. 浅谈canvas中的拖尾效果

    引言 很早就想了解以下 canvas 中的拖尾效果(如彗星,烟花等效果)是怎么实现的,但是一直没有深入了解,正巧在 codepen 上看到一个 demo,代码简单,效果炫酷,故有此文. 什么黑科技 在 ...

  4. Spring Security + OAuth系统环境搭建(一)

    最近在做权限管理系统的重构工作,系统基于Spring Security + OAuth架构,整体架构.技术和之前调研的结果差不多,架构调研时有在这篇博客做过简单记录“Spring Cloud微服务下的 ...

  5. SLAM入门之视觉里程计(3):两视图对极约束 基础矩阵

    在上篇相机模型中介绍了图像的成像过程,场景中的三维点通过"小孔"映射到二维的图像平面,可以使用下面公式描述: \[ x = MX \]其中,\(c\)是图像中的像点,\(M\)是一 ...

  6. XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax

    本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...

  7. Python机器学习笔记——随机森林算法

    随机森林算法的理论知识 随机森林是一种有监督学习算法,是以决策树为基学习器的集成学习算法.随机森林非常简单,易于实现,计算开销也很小,但是它在分类和回归上表现出非常惊人的性能,因此,随机森林被誉为“代 ...

  8. 【CSS】flex布局初认识

     1. 父容器为Flex容器,它有以下六个属性: 1)flex-direction: 作用:决定主轴的方向(如果为row,那么x方向为主轴:如果为column,那么y方向为主轴) 属性:row | r ...

  9. Perl列表相关函数

    内置的列表函数有: grep, join, map, qw//, reverse, sort, unpack join:将多个元素使用给定字符串联起来join grep:从列表中筛选符合条件的元素执行 ...

  10. 【转】JQuery上传插件Uploadify使用详解及错误处理

    转自:http://www.jb51.net/article/43498.htm 关于JQuery上传插件Uploadify使用详解网上一大把,基本上内容都一样.我根据网上的步骤配置完成后,会报一些错 ...