Taffy自动化测试框架简介
Taffy
Taffy是基于nosetests的自动化测试框架。
Taffy主要用来测试后台服务(包括且不限于Http, Dubbo/hessian, Webservice, Socket等类型接口),也可集成Selenium, Appium进行WEB或APP的自动化测试,或集成locust进行性能测试。
Taffy封装实现了结果对比,配置读取,DB/Redis操作,数据加解密等接口。
基本用法可以参考Tests/目录下示例demo.
Github地址:https://github.com/lovesoo/Taffy
QQ交流群:25452556
0. 更新记录
20171030 v1.6 支持模块自定义配置安装,详见setup.py
20171015 v1.5 新增《Taffy入门教学视频》
20171010 v1.4 支持分布式模式运行locust
20171009 v1.3 统一配置文件格式为YAML
20170928 v1.2 集成locust,同一脚本可同时进行功能自动化及性能测试,详见附录7-1
20170922 v1.1 集成selenium,新增相关测试demo
20170920 v1.0 第一个版本发布,支持http/hessian/webservice等类型接口功能自动化测试,并提供相关Util工具类
1. 运行环境
- macOS,linux,windows
- nose 1.3.7
- python 2.7
2. 项目结构
- config 配置文件
- Tests 测试用例
- Util 工具类
- checkTool 比较方法及结果校验
- commonTool 配置文件读取
- DBTool 数据库操作(mysql,sqlserver)
- hessianTool hessian接口调用
- httpTool http接口调用
- locustTool locust性能框架
- OATool 正交表设计测试用例
- redisTool redis操作(支持redis及redis cluster)
- securityTool 数据加解密
- seleniumTool selenium PageObject对象封装
- webserviceTool webservice接口调用
3. 环境部署
3.1 Python
请下载安装Python2.7.x版本:
https://www.python.org/downloads/
3.2 IDE
推荐使用PyCharm:
官网地址:http://www.jetbrains.com/pycharm/ 下载安装完成后,注册时选择License server,输入:http://idea.imsxm.com 即可激活^^
3.3 Lib
requirements.txt中存放了Taffy用到的第三方lib库,可以通过setup.py进行最大化、最小化及自定义模块安装配置:
# 默认最大化安装(安装全部模块)
$ python setup.py # -m或--min,最小化安装(只安装必须的nose,requests,PyYAML等)
$ python setup.py -m # -w或--without A B,不安装模块A,B
# 示例:不安装db redis locust模块
$ python setup.py --without db redis locust # --with A B,在最小化安装基础上,只安装模块A,B
# 示例:只安装db redis locust模块
$ python setup.py --with db redis locust # 其中,--with及--without选项支持的模块列表为:[redis,security,db,webservice,selenium,locust,hessian] # -h或--help,查看帮助
$ python setup.py -h
当默认最大化安装全部模块时,Windows系统下一些棘手的lib安装方法:
mysql-python
首先安装Microsoft Visual C++ Compiler for Python 2.7:http://aka.ms/vcpython27
然后下载msi包安装:https://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/
pymssql
可直接下载exe包安装: https://pypi.python.org/pypi/pymssql/2.1.1#downloads
python2.7+32位windows系统,请选择:pymssql-2.1.1.win32-py2.7.exe (md5)
webdriver
这里只说下chromedriver的下载配置方法:
下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads
下载chromedriver_win32.zip,解压后将chromedriver.exe放到Python安装路径下(如C:\Python27\)
3.4 PyCharm配置
运行PyCharm,打开下载的项目:taffy
「File」–>「Settings 」–>「Project:Taffy」->「Project Interpreter」,配置Python interpreter为当前python版本安装目录
「File」–>「Settings 」–>「Tools」->「Python Integrated Tools」–>「Nosetests」,配置Default test runner为Nosetests
「Run」–>「Edit Configurations」–>「Defaults」->「Python」,配置Python interpreter为当前python版本安装目录
「Run」–>「Edit Configurations」–>「Defaults」->「Python tests」–>「Nosetests」,配置Python interpreter为当前python版本安装目录,并在Interpreter options中填入-s用以显示nose运行及调试信息
4. 测试编写执行及报告导出
4.1 功能自动化测试
4.1.1 测试编写
taffy目前只支持nose方式编写测试用例,详见附录7-2
后续若有需求,可扩展支持其他方式,如以excel,csv,yaml等数据驱动形式保存用例
4.1.2 测试执行
可以使用两种方式执行功能自动化测试脚本:
图形用户界面GUI
在PyCharm中,选中测试文件,如Tests/test_demo.py
鼠标右键选择Run 'Nosetests in test_demo.py'即可执行测试
注1:也可使用快捷键:Ctrl+Shift+F10
注2:在脚本里使用快捷键Ctrl+Shift+F10,会单独执行选中的test class或test func
命令行界面CLI
在PyCharm下方Terminal终端中,输入命令执行测试:
# 执行测试文件test_demo.py
$ nosetests -v Tests/test_demo.py # 单独执行测试文件test_demo.py中测试类test_demo下的test_http测试方法
$ nosetests -v Tests/test_demo.py:test_demo.test_http
更多nosetests运行选项,请参考nostests官方文档
4.1.3 测试报告
功能自动化测试执行完成后,在Pycharm左下方Run窗口的Testing toolbar中,选择“Export Test Results”按钮即可导出测试报告
4.2 性能测试
4.2.1 配置config/locust.yml
4.2.2 运行locust
运行test_locust.py生成locustfile及执行性能测试,命令如下:
$ cd Taffy\Tests
$ python test_locust.py
4.2.3 测试报告
普通模式
locust以普通模式运行时,可在web页面实时查看运行结果,包括请求数,响应时间,RPS,失败率等
测试执行完成后可在WEB页面下载CSV格式测试报告(选择Download Data -> Download response time distribution CSV)
no-web模式
locust以no-web模式运行时,csv格式数据会定时保存在运行目录下,如locust_distribution.csv和locust_requests.csv
Taffy集成locust性能测试框架使用说明,详见附录7-1
5. 参考资料
6. 联络方式
QQ交流群:25452556
Taffy自动化测试框架简介的更多相关文章
- Taffy自动化测试框架Web开发,Python Flask实践详解
1. 前言 最近为Taffy自动化测试框架写了个页面,主要实现了用例管理.执行,测试报告查看管理.发送邮件及配置等功能. 本页面适用所有基于taffy/nose框架编写的自动化测试脚本,或基于un ...
- 使用jenkins + python + selenium一步步搭建web自动化测试“框架”(1) - 各部件简介
原先搭建过一个自动化测试框架,迷迷糊糊不求甚解,算是搭建了一个仅限于能用的.根本算不上框架的玩意儿. 现在回过头来好好看看究竟每一步是怎么联系起来的,是怎么运行起来的. 本次博客先说说各部件都是干什么 ...
- 自动化测试框架Taffy
Taffy Taffy是基于nosetests的自动化测试框架. Taffy主要用来测试后台服务(包括且不限于Http, Dubbo/hessian, Webservice, Socket等类型接口) ...
- RobotFramework自动化测试框架(1)- RobotFramework简介
对于RobotFramework自动化测试框架,我这里会从三个单元进行阐述,希望能对你有帮助. RobotFramework简介 RobotFramework是什么? Robotframework 是 ...
- Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)
简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...
- 《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
1.简介 页面对象模型(Page Object Model)在Selenium Webdriver自动化测试中使用非常流行和受欢迎,作为自动化测试工程师应该至少听说过POM这个概念.本篇介绍POM的简 ...
- Python3+Selenium2完整的自动化测试实现之旅(五):自动化测试框架、Python面向对象以及POM设计模型简介
前言 之前的系列博客,陆续学习整理了自动化测试环境的搭建.IE和Chrome浏览器驱动的配置.selenium-webdriver模块封装的元素定位以及控制浏览器.处理警示框.鼠标键盘等方法的使用,这 ...
- Robotium自动化测试框架实用教程(图)
一.简介 Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击.长按.滑动等).查找和断言机制的API,能够对各 ...
- Web自动化框架LazyUI使用手册(1)--框架简介
作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...
随机推荐
- 201521123007《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...
- 源码跟读,Spring是如何解析和加载xml中配置的beans
Spring版本基于: 跟踪代码源码基于: https://github.com/deng-cc/KeepLearning commit id:c009ce47bd19e1faf9e07f12086c ...
- 关于maven项目的一些报错问题
本文为自己记录的笔记略显粗糙后续会把遇到的问题追加进来.忘大神多指点 1.父工程红色感叹号 此类问题解决方法,一般打开pom文件查看红色标记处是否有报错,也就是看哪个jar包没有下下来.分为两种情况. ...
- mongodb 在windows下面进行副本建创建
一:主从复制 1: 首先看看模型图 2: 从上面的图形中我们可以分析出这种架构有如下的好处: <1> 数据备份. <2> 数据恢复. <3> 读写分离. 3: ...
- [android游戏开发初学]SurfaceView初探之缓冲区测试
先上测试代码 private static class PathView extends SurfaceView implements SurfaceHolder.Callback{ private ...
- L1正则化及其推导
\(L1\)正则化及其推导 在机器学习的Loss函数中,通常会添加一些正则化(正则化与一些贝叶斯先验本质上是一致的,比如\(L2\)正则化与高斯先验是一致的.\(L1\)正则化与拉普拉斯先验是一致的等 ...
- OC——继承
继承的其中一个很重要的目的是为了实现多态.我们现在先来看看OC的继承. 一.继承 父类: 头文件 // // Peason.h // 01-继承和多态 // // Created by zhangji ...
- IE无法获得cookie,ie不支持cookie的解决办法,火狐支持
发现用自己的电脑 IE7.0总是无法正常登录,别的电脑都可以. 每次登录后又被重定向回了登录页面. 可换成Firefox和google chrome 却一切OK,后来还把浏览器升级到IE8.0 问题依 ...
- ASP.NET Core中如何调整HTTP请求大小的几种方式
一.前言 一般的情况下,我们都无需调用HTTP请求的大小,只有在上传一些大文件,或者使用HTTP协议写入较大的值时(如调用WebService)才可能会调用HTTP最大请求值. 在ASP.NET Co ...
- 实战系列之 Node.js 玩转 Java
这些年以来,Node.js的兴起,JavaScript已经从当年的“世界最被误解的语言”变成了“世界最流行的语言”.且其发展之势,从语言本身的进化,库和包的增长,工具支持的完善,star项目和领域解决 ...