{"id":14985631,"url":"https://github.com/lovesoo/taffy","last_synced_at":"2025-04-11T22:04:42.847Z","repository":{"id":86742891,"uuid":"104178538","full_name":"lovesoo/Taffy","owner":"lovesoo","description":"Test Automation Framework Based On Nosetests. ✨🍰✨","archived":false,"fork":false,"pushed_at":"2019-02-12T00:56:29.000Z","size":332,"stargazers_count":97,"open_issues_count":0,"forks_count":42,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-04T10:28:05.324Z","etag":null,"topics":["dubbo","http","locust","nosetests","redis","selenium","sql","taffy","webservice","yml"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lovesoo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-20T07:01:48.000Z","updated_at":"2023-04-26T14:17:21.000Z","dependencies_parsed_at":"2023-03-13T19:54:22.101Z","dependency_job_id":null,"html_url":"https://github.com/lovesoo/Taffy","commit_stats":{"total_commits":74,"total_committers":1,"mean_commits":74.0,"dds":0.0,"last_synced_commit":"c59f0224985daafb8f5b37206bd32c404afa2d95"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovesoo%2FTaffy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovesoo%2FTaffy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovesoo%2FTaffy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovesoo%2FTaffy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lovesoo","download_url":"https://codeload.github.com/lovesoo/Taffy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239785307,"owners_count":19696754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dubbo","http","locust","nosetests","redis","selenium","sql","taffy","webservice","yml"],"created_at":"2024-09-24T14:11:23.867Z","updated_at":"2025-02-20T05:32:07.651Z","avatar_url":"https://github.com/lovesoo.png","language":"Python","readme":"# Taffy\n\nTaffy is a Test Automation Framework based on nosetests.\n\nTaffy is usesd mainly to test interface including Http, dubbo/hessian, Webservice, Socket and etc.\n\nTaffy also provided encapsulation and realized the interfaces of data check, config read, DB / redis operations, data encryption / decryption and etc.\n\nThe basic useage can be found at Tests/ folder.\n\nTaffy是基于nosetests的自动化测试框架。\n\nTaffy主要适用于服务端接口(包含且不限于Http, Dubbo/hessian, Webservice, Socket等协议)功能及性能自动化测试；也可集成Selenium, Appium进行WEB或APP的自动化测试。\n\nTaffy同时封装实现了配置读取、数据对比、DB/Redis操作、数据加解密、正交表生成测试用例等工具类。\n\n基本用法可以参考[Tests/](https://github.com/lovesoo/Taffy/tree/master/Tests)目录。\n\n欢迎加入QQ群交流讨论：[25452556](https://jq.qq.com/?_wv=1027\u0026k=5pqB0UV)\n\n# 目录\n- [Taffy](#taffy)\n- [0. 更新记录](#0-更新记录)\n- [1. 运行环境](#1-运行环境)\n- [2. 项目结构](#2-项目结构)\n- [3. 环境部署](#3-环境部署)\n    - [3.1 Python](#31-python)\n    - [3.2 IDE](#32-ide)\n    - [3.3 Lib](#33-lib)\n    - [3.4 PyCharm配置](#34-pycharm配置)\n- [4. 测试编写执行及报告导出](#4-测试编写执行及报告导出)\n    - [4.1 功能自动化测试](#41-功能自动化测试)\n        - [4.1.1 测试编写](#411-测试编写)\n        - [4.1.2 测试执行](#412-测试执行)\n        - [4.1.3 测试报告](#413-测试报告)\n    - [4.2 性能测试](#42-性能测试)\n        - [4.2.1 配置config/locust.yml](#421-配置configlocustyml)\n        - [4.2.2 运行locust](#422-运行locust)\n        - [4.2.3 测试报告](#423-测试报告)\n- [5. 参考资料](#5-参考资料)\n- [6. 联络方式](#6-联络方式)\n- [7. 附录](#7-附录)\n    - [7.1 locust框架集成使用说明](#71-locust框架集成使用说明)\n    - [7.2 nose编写测试用例方法](#72-nose编写测试用例方法)\n    - [7.3 Jenkins集成](#73-jenkins集成)\n\n# 0. 更新记录\n\n20181010 v1.7 Python 3.7版本适配，现已支持Python2.7 - 3.7\n\n20171030 v1.6 支持模块自定义配置安装，详见[**setup.py**](https://github.com/lovesoo/Taffy/blob/master/setup.py)\n\n20171015 v1.5 新增《[**Taffy入门教学视频**](http://v.youku.com/v_show/id_XMzA4NTk2MDI5Mg==.html)》\n\n20171010 v1.4 支持分布式模式运行locust\n\n20171009 v1.3 统一配置文件格式为YAML\n\n20170928 v1.2 集成locust，相同脚本可同时进行功能自动化及性能测试，详见[**附录7-1**](#71-locust框架集成使用说明)\n\n20170922 v1.1 集成selenium，新增相关测试demo\n\n20170920 v1.0 发布第一个版本，支持http/hessian/webservice等类型接口功能自动化测试，并提供相关Util工具类\n\n# 1. 运行环境\n- macOS，linux，windows\n- nose 1.3.7\n- python 2.7 - 3.7\n\n# 2. 项目结构\n1) config 配置文件\n2) Tests 测试用例\n3) Util 工具类\n    - checkTool 数据比较\n    - commonTool    配置文件读取\n    - DBTool    数据库操作\n    - hessianTool   hessian接口\n    - httpTool  http接口\n    - locustTool    locust集成\n    - OATool    正交表设计测试用例\n    - redisTool redis/redis cluster操作\n    - securityTool  数据加解密\n    - seleniumTool  selenium集成\n    - webserviceTool    webservice接口\n\n# 3. 环境部署\n## 3.1 Python\n\n请根据需要下载Python 2.7或3.7版本：https://www.python.org/downloads/\n\n## 3.2 IDE\n\n推荐使用PyCharm：http://www.jetbrains.com/pycharm/\n\n## 3.3 Lib\n\n[requirements.txt ](https://github.com/lovesoo/Taffy/blob/master/requirements.txt)中存放了Taffy用到的第三方lib库，可以运行[` python setup.py`](https://github.com/lovesoo/Taffy/blob/master/setup.py)进行模块安装配置，命令如下：\n\n```\n# 默认安装全部模块\n$ python setup.py\n\n# -h或--help，查看帮助\n$ python setup.py -h\n```\n\n## 3.4 PyCharm配置\n\n1) 运行PyCharm，打开下载的项目：taffy\n\n2) 「File」–\u003e「Settings 」–\u003e「Project:Taffy」-\u003e「Project Interpreter」，配置Python interpreter为当前python版本安装目录\n\n3) 「File」–\u003e「Settings 」–\u003e「Tools」-\u003e「Python Integrated Tools」–\u003e「Nosetests」，配置Default test runner为Nosetests\n\n4) 「Run」–\u003e「Edit Configurations」–\u003e「Defaults」-\u003e「Python」，配置Python interpreter为当前python版本安装目录\n\n5)  「Run」–\u003e「Edit Configurations」–\u003e「Defaults」-\u003e「Python tests」–\u003e「Nosetests」，配置Python interpreter为当前python版本安装目录，并在Interpreter options中填入-s用以显示nose运行及调试信息\n\n# 4. 测试编写执行及报告导出\n## 4.1 功能自动化测试\n\n### 4.1.1 测试编写\n\ntaffy目前只支持nose方式编写测试用例，详见[附录7-2](#72-nose编写测试用例方法)\n\n后续可扩展支持其他方式，如以excel,csv,yaml等数据驱动形式保存用例\n\n### 4.1.2 测试执行\n\n可以使用两种方式执行功能自动化测试脚本：\n\n1) 图形用户界面GUI\n\n    在PyCharm中，选中测试文件，如Tests/test_demo.py\n\n    鼠标右键选择Run 'Nosetests in test_demo.py'即可执行测试\n\n    快捷键：Ctrl+Shift+F10，在脚本中使用会单独执行选中的test class或func\n\n2) 命令行界面CLI\n\n在PyCharm下方Terminal终端中，输入命令执行测试：\n\n```\n# 执行测试文件test_demo.py\n$ nosetests -v Tests/test_demo.py\n\n# 单独执行测试文件test_demo.py中测试类test_demo下的test_http测试方法\n$ nosetests -v Tests/test_demo.py:test_demo.test_http\n```\n更多nosetests运行选项，请参考[nostests官方文档](http://nose.readthedocs.io/en/latest/man.html)\n\n### 4.1.3 测试报告\n\n功能自动化测试执行完成后，在Pycharm左下方Run窗口的Testing toolbar中，选择“Export Test Results”按钮即可导出测试报告\n\n详见[《PyCharm运行Nosetests并导出测试报告》](http://lovesoo.org/pycharm-run-nosetests-and-exports-test-report.html)\n\n## 4.2 性能测试\n\n### 4.2.1 配置config/locust.yml\n\n### 4.2.2 运行locust\n\n运行test_locust.py生成locustfile及执行性能测试，命令如下：\n\n```\n$ cd Taffy\\Tests\n$ python test_locust.py\n```\n\n### 4.2.3 测试报告\n\n1) 普通模式\n\n    locust以普通模式运行时，可在[web页面](http://localhost:8089/)实时查看运行结果，包括请求数，响应时间，RPS，失败率等\n\n    测试执行完成后可在WEB页面下载CSV格式测试报告（选择Download Data -\u003e Download response time distribution CSV）\n\n2) no-web模式\n\n    locust以no-web模式运行时，csv格式数据会定时保存在运行目录下，如locust_distribution.csv和locust_requests.csv\n\nTaffy集成locust性能测试框架使用说明，详见[附录7-1](#71-locust框架集成使用说明)\n\n\n# 5. 参考资料\n\n1. http://nose.readthedocs.io/en/latest/index.html\n\n2. https://docs.python.org/dev/library/unittest.html\n\n3. https://docs.locust.io/en/latest/\n\n4. http://www.cnblogs.com/yufeihlf/p/5764099.html\n\n\n# 6. 联络方式\n\nQQ交流群：[25452556](https://jq.qq.com/?_wv=1027\u0026k=5pqB0UV)\n\n\n# 7. 附录\n\n## 7.1 locust框架集成使用说明\n\n[《Taffy集成Locust性能测试框架使用说明》](http://lovesoo.org/taffy-using-locust-performance-testing.html)\n\n## 7.2 nose编写测试用例方法\n\n[《nose框架编写测试用例方法》](http://lovesoo.org/nose-writing-tests.html)\n\n## 7.3 Jenkins集成\n\n[《Jenkins集成taffy进行自动化测试并输出测试报告》](http://lovesoo.org/jenkins-integrated-taffy-for-automated-testing-and-output-test-reports.html)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flovesoo%2Ftaffy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flovesoo%2Ftaffy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flovesoo%2Ftaffy/lists"}