自动化测试框架Taffy

 

Taffy

Taffy是基于nosetests的自动化测试框架。

Taffy主要用来测试后台服务(包括且不限于Http, Dubbo/hessian, Webservice, Socket等类型接口),也可集成Selenium, Appium进行WEB或APP的自动化测试,或集成locust进行性能测试。

Taffy封装实现了结果对比,配置读取,DB/Redis操作,数据加解密等接口。

1. 运行环境

  • macOS,linux,windows
  • nose 1.3.7
  • python 2.7

回到目录

2. 项目结构

  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接口调用

回到目录

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安装方法:

  1. mysql-python

    1. 首先安装Microsoft Visual C++ Compiler for Python 2.7:http://aka.ms/vcpython27

    2. 然后下载msi包安装:MySQL for Python - Browse /mysql-python/1.2.3 at SourceForge.net

  2. pymssql

    可直接下载exe包安装: pymssql · PyPI

    python2.7+32位windows系统,请选择:pymssql-2.1.1.win32-py2.7.exe (md5)

  3. webdriver

    这里只说下chromedriver的下载配置方法:

    1. 下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads

    2. 下载chromedriver_win32.zip,解压后将chromedriver.exe放到Python安装路径下(如C:\Python27\)

3.4 PyCharm配置

  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运行及调试信息

回到目录

4. 测试编写执行及报告导出

4.1 功能自动化测试

4.1.1 测试编写

taffy目前只支持nose方式编写测试用例,详见附录7-2

后续若有需求,可扩展支持其他方式,如以excel,csv,yaml等数据驱动形式保存用例

4.1.2 测试执行

可以使用两种方式执行功能自动化测试脚本:

  1. 图形用户界面GUI

    在PyCharm中,选中测试文件,如Tests/test_demo.py

    鼠标右键选择Run 'Nosetests in test_demo.py'即可执行测试

    注1:也可使用快捷键:Ctrl+Shift+F10

    注2:在脚本里使用快捷键Ctrl+Shift+F10,会单独执行选中的test class或test func

  2. 命令行界面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”按钮即可导出测试报告

详见《PyCharm运行Nosetests并导出测试报告》

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 测试报告

  1. 普通模式

    locust以普通模式运行时,可在web页面实时查看运行结果,包括请求数,响应时间,RPS,失败率等

    测试执行完成后可在WEB页面下载CSV格式测试报告(选择Download Data -> Download response time distribution CSV)

  2. no-web模式

    locust以no-web模式运行时,csv格式数据会定时保存在运行目录下,如locust_distribution.csv和locust_requests.csv

  Taffy集成locust性能测试框架使用说明,详见附录7-1


如果你想学习自动化测试,那么下面这套视频应该会帮到你很多 

如何逼自己1个月学完自动化测试,学完即就业,小白也能信手拈来,拿走不谢,允许白嫖....

最后我这里给你们分享一下我所积累和整理的一些文档和学习资料,有需要直接领取就可以了

以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值