测试项目
在测试之前需要我们单独搭建一套测试环境。
搭建环境
根据上面文档搭建测试环境。
测试脚本
测试场景
- 针对注册场景进行 压力测试 (有拉新人活动)
一般情况下,有注册接口,但是 我们目前的测试系统没有接口,需要抓包获取。
根据抓包,找到对应的数据
创建对应的请求
根据抓包的信息,创建对应的请求。
因为要模拟批量注册,所以用户名和密码,邮箱使用内置函数生成。
randomstring 生成随机字符串
再在请求中使用对应的数据
因为这个接口注册成功之后返回的是html页面,添加断言。
注册成功会返回页面;
设置线程组
线程组-用户注册.jmx
上面做好了注册接口。
测试场景:
- 模拟100个并发,压测时间为 10min;
- 检测的时候监控服务器
设置线程数
线程数 设置为100 表示100个虚拟用户。
持续时间: 600秒 即 10分。
添加聚合报告
添加聚合报告
【线程组】—【添加】—【监听器】—【聚合报告】
服务器监控
使用 htop 命令监控服务器状态
yum install -y htop
执行
htop
查看聚合报告
- 样本数: 总共执行请求数量
- 平均值: 平均响应时间 (单位:毫秒)
- 中位数: 中间数
- 90% : 90%的响应时间
- 95%: 95%的响应时间
- 异常: 出错的比率
- 吞吐量: 每秒处理事务的数量
注册完成用户之后,激活用户
命令行中输入 mongo
命令进入到数据库中
mongo
use node_club_dev
db.users.update({"active" : false},{$set:{ "active" : true}},true,true)
用户导出
在服务器中执行 mongodb 导出数据命令
mongoexport -d node_club_dev -c users -f accessToken --csv -o /tmp/testusers.csv
- mongoexport mongodb的导出命令
- -d node_club_dev 导出的数据库
- -c users 导出表名称
- -f accessToken 导出的字段名
- —csv 导出的数据文件格式为 csv
- -o /tmp/testusers.csv 数据导出路径
压测—监控服务器
场景: 模拟100个用户同时发布话题,持续时间为5分钟,
观察 响应时间,错误率,以及服务器的状态;
使用csv 数据驱动
作业
测试场景
模拟 1000用户,
运行时长:10分钟
运行场景
- 用户A 新建主题
- 用户B 新建评论 用户A的主题
- 用户A 回复 用户B的评论
- 用户B 收藏用户A的话题
使用到上下游传参
使用到csv配置token
备注:
如果服务器崩了。重启服务
重启服务器
reboot
两分钟之后重新连接服务器
启动服务 ```json cd /root/nodeclub
pm2 start app.js
这样就可以了
---
如何清空数据库中冗余数据?
1. 登录服务器,使用 `mongo` 进入到数据库中
```json
mongo
使用 node_club_dev 数据库
use node_club_dev
查看库中所有的表
show tables;
清空表中的数据
db.topics.remove({});
- 清空 topics 表中所有的数据。
更过mongodb 使用方法
https://www.runoob.com/mongodb/mongodb-update.html