场景设计
1.哪些业务需要做压力测试?
- 比较常用的业务场景(or 功能模块)
- 单业务场景/或者多业务场景
- 项目要求做的业务场景
2.压力测试的并发数是多少?
- 有预期的数值?一次性达到?还是逐步达到?有上次性能测试的结果值?(参考上次的数值) ;
- 无预期的数值?只有参考的在线用户数(如果没有预期,没有参数值,那么只有参考在线用户数,遵循2:8原则:可以用在线用户数的20%作为参考去测试)
3.关注哪些参数?
- 响应时间:1s 3s 5s/2s 5s 8s 参考值;在性能测试的结果基础上,进行有必要的调整
- tps :越高越好,会有极限值,根据这个结果去做进一步的并发数/脚本的调参,去看tps
- 错误率:越低越好 正确率99.99% 不可能达成 90%的正确率可以
- cpu和内存/队列 磁盘的使用情况:cpu占有率最好不要超过80% 内存最好有20%的空余 队列<1 磁盘读写操作频率不要过高,若过高,响应时间会变长
目标项目的场景设计:
登录-投资-登出
核心业务是:投资
并发用户:目标100
如何设置线程线程数:
线程数:就是并发数,目标100 采取叠加的方式去进行添加
启动时间:每秒启动多少个(可以根据结果去进行调整),策略,想要服务器压力大点就时间少点,想要服务器的压力慢慢增加就时间长点
循环次数:指定次数 or 永远(跟下面的持续时间配合使用)
调度器:配合永远使用,去设置持续时间
Jmeter查看压力测试结果
压力测试查看结果:添加聚合报告
需要关注的几个数据:
Average:平均响应时间—默认情况下是单个 Request 的平均响应时间,当使用了Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% line:90% 用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量—默认情况下表示每秒完成的请求数(Request per Second),当使用了Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
压力测试结果分析
使用Assertion对结果进行简单的分类
响应断言:通常是用于对每一个request sampler进行额外验证的工具
响应时间断言:规定请求的响应时间不能超过多少毫秒
文件大小断言:单位bytes