Taffy is a Test Automation Framework based on nosetests.
Taffy is usesd mainly to test interface including Http, dubbo/hessian, Webservice, Socket and etc.
Taffy also provided encapsulation and realized the interfaces of data check, config read, DB / redis operations, data encryption / decryption and etc.
The basic useage can be found at Tests/ folder.
Taffy 是基于 nosetests 的自动化测试框架。Github 地址:https://github.com/lovesoo/Taffy
Taffy 主要用来测试后台服务 (包括且不限于 Http, Dubbo/hessian, Webservice, Socket 等类型接口),也可集成 Selenium, Appium 进行 WEB 或 APP 的自动化测试,或集成 locust 进行性能测试。
Taffy 封装实现了结果对比,配置读取,DB/Redis 操作,数据加解密等接口。
基本用法可以参考Tests/目录下示例 demo.
QQ 交流群:25452556
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) config 配置文件
2) Tests 测试用例
3) Util 工具类
- checkTool 比较方法及结果校验
- commonTool 配置文件读取
- DBTool 数据库操作 (mysql,sqlserver)
- hessianTool hessian 接口调用
- httpTool http 接口调用
- locustTool locust 性能框架
- OATool 正交表设计测试用例
- redisTool redis 操作(支持 redis 及 redis cluster)
- securityTool 数据加解密
- seleniumTool selenium PageObject 对象封装
- webserviceTool webservice 接口调用
请下载安装 Python2.7.x 版本:
https://www.python.org/downloads/
推荐使用 PyCharm:
http://www.jetbrains.com/pycharm/
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 安装方法:
a) 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/
b) 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)
c) webdriver
这里只说下 chromedriver 的下载配置方法:
下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads
下载 chromedriver_win32.zip,解压后将 chromedriver.exe 放到 Python 安装路径下(如 C:\Python27\)
1) 运行 PyCharm,打开下载的项目:taffy
2)「File」–>「Settings 」–>「Project:Taffy」->「Project Interpreter」,配置 Python interpreter 为当前 python 版本安装目录
3)「File」–>「Settings 」–>「Tools」->「Python Integrated Tools」–>「Nosetests」,配置 Default test runner 为 Nosetests
4)「Run」–>「Edit Configurations」–>「Defaults」->「Python」,配置 Python interpreter 为当前 python 版本安装目录
5) 「Run」–>「Edit Configurations」–>「Defaults」->「Python tests」–>「Nosetests」,配置 Python interpreter 为当前 python 版本安装目录,并在 Interpreter options 中填入-s 用以显示 nose 运行及调试信息
taffy 目前只支持 nose 方式编写测试用例,详见附录 7-2
后续若有需求,可扩展支持其他方式,如以 excel,csv,yaml 等数据驱动形式保存用例
可以使用两种方式执行功能自动化测试脚本:
i) 图形用户界面 GUI
在 PyCharm 中,选中测试文件,如 Tests/test_demo.py
鼠标右键选择 Run 'Nosetests in test_demo.py'即可执行测试
注 1:也可使用快捷键:Ctrl+Shift+F10
注 2:在脚本里使用快捷键 Ctrl+Shift+F10,会单独执行选中的 test class 或 test func
ii) 命令行界面 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 官方文档
功能自动化测试执行完成后,在 Pycharm 左下方 Run 窗口的 Testing toolbar 中,选择 “Export Test Results” 按钮即可导出测试报告
详见《PyCharm 运行 Nosetests 并导出测试报告》
运行 test_locust.py 生成 locustfile 及执行性能测试,命令如下:
$ cd Taffy\Tests
$ python test_locust.py
i) 普通模式
locust 以普通模式运行时,可在web 页面实时查看运行结果,包括请求数,响应时间,RPS,失败率等
测试执行完成后可在 WEB 页面下载 CSV 格式测试报告(选择 Download Data -> Download response time distribution CSV)
ii) no-web 模式
locust 以 no-web 模式运行时,csv 格式数据会定时保存在运行目录下,如 locust_distribution.csv 和 locust_requests.csv
Taffy 集成 locust 性能测试框架使用说明,详见附录 7-1
QQ 交流群:25452556