# Joy_QA_Platform(目前已经停止维护!)
基于HttpRunner、Locust、Django Web框架的接口功能测试/压力测试/监控平台
## Design Philosophy
Joy_QA_Platform-QA测试平台基于Django搭建,内嵌*httprunner*(用于接口测试)、*locust*(用于接口压测)、*celery*(执行测试用例),外部依赖*MySQL*数据库(存储测试平台各种数据)、*redis*(提供平台和celery之间的通信),平台提供了常规的接口测试、接口压力测试、接口持续监控等功能。
[HttpRunner地址](https://github.com/HttpRunner/HttpRunner)、[locust地址](https://github.com/locustio/locust)、[mysql官网](https://dev.mysql.com)
## Key Features
- 分层设计:独立项目、模块、用例三个层面,方便用例管理、权限控制
- 独立环境:用例运行环境独立配置,一个用例可用于多个环境执行,避免重复编写用例
- 依赖HttpRunner:内嵌 *HttpRunner(1.4.7版本)* ,其支持的功能完全继承,用例编写便捷
- 压测支持:平台集成 *locust* 压测框架,接口测试用例支持直接用于接口压力测试
- 定时任务:定时任务支持定时单次运行,定时循环运行,支持最长间隔31天定时执行
- 基础测试功能:平台建有接口字段基础测试功能,通过配置基础测试库,可自动测试指定字段的各种特殊情况,如字段缺失、字段为空、字段含有特殊字符等
- 报告管理:独立模块管理所有报告,包括定时任务执行所生产的失败报告(成功报告过多,不存储)
## 本地开发环境部署(建议MAC系统,Windows未测试)
1. 项目依赖Python3,请确保安装Python3环境;
2. 安装MySQL数据库(建议5.7版本,其他未测试),启动服务,并创建项目对应数据库,在配置文件中配置好对应账号、密码等参数;
3. 项目各参数在 *Joy_QA_Platform/configs.py* 文件中配置
```
#线上环境数据库配置
DATABASES_NAME = ''
DATABASES_USER = ''
DATABASES_PWD = ''
DATABASES_HOST = ''
DATABASES_PORT = ''
```
4. 安装redis,启动服务
```
安装:brew install redis
启动:redis-server
```
5. 配置redis
```
#redis配置
REDIS_LOCATION = 'redis://127.0.0.1:6379'
REDIS_PASSWORD = ''
```
6. 发信邮箱配置
```
#邮件配置
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_FROM = ''
```
7. 压测相关配置
<font color=#A52A2A>此配置项在不使用压测功能时无需配置,locust相关配置主要用于主机和从机之间的资源测试用例分发,本地开发环境部署时不适用。</font>
```
# locust 主机工作目录名配置
LOCUST_WORKSPACE_DIR = ''
# locust 主机端口配置
LOCUST_MASTER_BIND_PORT = '8095'
# locust 从机下载配置
LOCUST_DOWNLOAD_URL = ''
# locust 从机登录用户名
LOCUST_DOWNLOAD_USER = ''
# locust 从机登录密码
LOCUST_DOWNLOAD_PWD = ''
```
8. 默认管理员账号配置
```
#默认管理员账号
SUPERUSER_NAME = ''
SUPERUSER_PWD = ''
```
9. 安装项目依赖
安装依赖库之前,请确认xcode command line是否已正确安装
```
命令行窗口执行pip install -r requirements.txt 安装工程所依赖的库文件,requirements.txt位于项目根目录
```
10. 生成数据库表
命令行窗口切换到项目根目录,执行Django相关命令生成表结构,请查看数据库,确认表结构正确创建
```
分应用先后执行 makemigrations和migrate --- 重要!!!
python manage.py makemigrations frame
python manage.py makemigrations ApiManager
python manage.py migrate frame
python manage.py migrate ApiManager
```
11. 启动项目 在项目根目录执行命令
```
python manage.py runserver 0.0.0.0:8000
```
FAQ:
1、https://stackoverflow.com/questions/50346326/programmingerror-relation-django-session-does-not-exist/50346820
12. 启动Celery,用于执行用例任务
在项目根目录执行命令
```
celery -A ApiManager.tasks worker -l info
```
13. 启动flower,用于任务执行的监控
在项目根目录执行命令,此处命令中redis地址、端口、账号等请自行更换
```
flower --broker=redis://localhost:6379/0 --broker_api=redis://localhost:6379/0
```
14. 访问项目
浏览器访问:http://127.0.0.1:8000/frame/login 进行注册、登录,开始使用测试平台
15. 任务监控可以使用平台内的任务监控功能,也可通过flower自带的页面进行查看,若flower正确执行后可通过5555端口查看http://127.0.0.1:5555
## 生产环境部署
生产环境部署依赖于uWSGI和Nginx,特别是主从机之间的用例同步功能,依赖于Nginx的权限控制功能以保证安全性。
需要注意的是:
1、Django默认使用8000端口
2、压测locust默认使用8089端口
3、压测用例文件同步,不项目使用8095、8096端口
4、flower任务监控使用5555端口
请确保服务器以上端口开房,否则可能会影响相应功能使用
1. 生产环境的部署与本地环境部署组件相似,请参照本地部署相应步骤进行
2. configs.py的配置内容请参考本地部署相关说明,将本地地址、端口替换为服务器地址、端口即可
3. 安装uWSGI,配置使用其启动项目
启动服务uWSGI配置注意建议:
在平台项目目录下,创建uwsgi.ini、uwsgi.log、uwsig.pid三个文件,分别为配置文件、日志文件和进程号配置文件
在uwsgi.ini中配置uwsgi启动的相关参数,
http:指定端口
module:指定项目所用wsgi.py文件(相对路径)
chdir:指定工作目录(项目目录,此目录注意正确设置,否则会报找不到app)
limit-as:2048(默认512,限制uwsgi进程占用虚拟内存的最大值,超过则会报错)
pidfile:指定进程号配置文件(uwsgi.pid文件内配置指定进程号即可)
daemonize:后台运行模式,并将日志输出到指定的日志文件内
pythonpath:指定python路径
指定django路径 (此两条不指定,在wsgi.py中可能会报错找不到django等)
enable-threads:多线程开关,由于测试平台用到了celery和请打开多线程开关,并设置合理的线程数,否则当进行定时任务时,会卡死测试平台。
uwsgi运行过程中,若出现MemoryError错误,建议提高配置limit-as配置的值,配合reload-on-as = 1024配置使用(在达到1024的时候重启进程)
参考:
https://uwsgi-docs.readthedocs.io/en/latest/
https://blog.csdn.net/wangpeng2011314/article/details/82527613
4. 安装Nginx,配置、启动代理服务
代理80端口至8000端口--Django端口,可修改
代理项目中static目录下的静态资源
代理项目中slave目录下的压测相关文件--请确保此目录Nginx代理有进行权限控制,否则可能有文件泄露的风险。
5. Nginx配置注意事项:
主、从机之间的压测用例等文件同步使用了Linux的wget功能,并依赖Nginx的权限控制功能保证文件安全性,请合理配置私密文件相关Nginx代理的权限。
没有合适的资源?快使用搜索试试~ 我知道了~
基于HttpRunner、Locust、Django Web框架的接口测试监控平台全部资料+详细文档.zip
共461个文件
js:93个
gif:78个
html:54个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 110 浏览量
2024-12-01
15:30:41
上传
评论
收藏 3.32MB ZIP 举报
温馨提示
【资源说明】 基于HttpRunner、Locust、Django Web框架的接口测试监控平台全部资料+详细文档.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于HttpRunner、Locust、Django Web框架的接口测试监控平台全部资料+详细文档.zip (461个子文件)
config 65B
bootstrap.css 143KB
bootstrap.css 143KB
bootstrap.min.css 118KB
bootstrap.min.css 118KB
layui.css 52KB
main.css 47KB
font-awesome.css 37KB
font-awesome.min.css 30KB
bootstrap-theme.css 26KB
bootstrap-theme.min.css 23KB
css-index.css 20KB
admin.css 19KB
layer.css 14KB
layer.css 14KB
jquery.dataTables.css 14KB
chartist.css 14KB
chartist-custom.css 14KB
bootstrap-datetimepicker.min.css 11KB
chartist.min.css 11KB
layui.mobile.css 10KB
daterangepicker.css 8KB
原始.css 8KB
style.css 8KB
toastr.css 7KB
laydate.css 7KB
fonts.css 7KB
style.css 7KB
toastr.min.css 6KB
layer.css 5KB
selectivity-jquery.css 5KB
postbirdAlertBox.css 3KB
prettify.css 2KB
modal.css 2KB
zebra_tooltips.css 2KB
googleapis.css 2KB
bootstrap-multiselect.css 1KB
code.css 1KB
jquery.json-viewer.css 1KB
common.css 680B
demo.css 378B
.DS_Store 6KB
.DS_Store 6KB
fontawesome-webfont.eot 162KB
Linearicons-Free.eot 55KB
iconfont.eot 37KB
glyphicons-halflings-regular.eot 20KB
59.gif 10KB
22.gif 10KB
24.gif 8KB
13.gif 7KB
16.gif 7KB
39.gif 6KB
64.gif 6KB
63.gif 6KB
50.gif 6KB
loading-0.gif 6KB
loading-0.gif 6KB
4.gif 6KB
1.gif 5KB
42.gif 5KB
71.gif 5KB
21.gif 5KB
20.gif 5KB
29.gif 5KB
70.gif 4KB
5.gif 4KB
17.gif 4KB
27.gif 4KB
9.gif 4KB
44.gif 4KB
11.gif 4KB
8.gif 4KB
3.gif 4KB
23.gif 4KB
34.gif 4KB
41.gif 4KB
38.gif 4KB
65.gif 3KB
32.gif 3KB
45.gif 3KB
7.gif 3KB
12.gif 3KB
26.gif 3KB
60.gif 3KB
2.gif 3KB
40.gif 3KB
25.gif 3KB
19.gif 3KB
66.gif 3KB
18.gif 3KB
46.gif 3KB
10.gif 3KB
28.gif 3KB
51.gif 3KB
57.gif 3KB
67.gif 3KB
0.gif 3KB
48.gif 3KB
43.gif 3KB
共 461 条
- 1
- 2
- 3
- 4
- 5
资源评论
Yuki-^_^
- 粉丝: 3099
- 资源: 1243
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Vue vs Angular:2024 年选择哪个框架
- 宽带账户密码生成器(获取上网帐号密码并自动保存到D盘)
- 防毒面具检测54-YOLO(v5至v9)、COCO、Darknet、VOC数据集合集.rar
- 算法(第4版).pdf
- 360占用解除器.rar
- 面试题记录1111111111111111111111111111111111111111111
- 大规模语言模型的查询语言:编程即提示
- 深度学习课设-基于resnet网络实现鼠标手写数字识别源码+数据集+模型+运行说明(带GUI界面,直接界面上手写).zip
- 蓝桥杯算法训练平台.zip
- 防护服检测40-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功