性能测试场景设计之普通性能场景设计
常见的六种设计方法之一
普通性能场景设计
使用jmeter 线程组,模拟用户并发数,线程组Jmeter本身是没有对线程数做限制,但是对于机器本身性能有要求,受电脑cpu的主频限制,一台电脑不可能创建无限量的线程数。实际的情况,http协议的脚本,线程数,大概能 1500左右 2000个可能产生,但是可能会出错,可能能产生1000个左右的并发数,一台设备使用http协议参数最多能使用1000个并发用户数
如果在请求的过程中服务器报错了,默认是让它继续。做性能测试,大量的并发用户向服务器发起请求,请求的过程中,服务器可能偶尔出错。这种出错的频率非常低的情况下,没问题。如果对于产品的准确性,要求是99.9%,那么0.1%的报错是被允许的。
如果对于产品的准确性,要求是99.99%,那么0.01%的报错是被允许的。允许有一定的报错,但是这个报错的频率不能很高。但是出现连续的这种报错,就有性能问题。
ramp-up时间
启动所有线程数启动的时间 ,上图表示在5s中启动600个并发数
- 在ramp-up时间结束点,所有的人会产生
- 在ramp-up时间内,是否均匀产出并发用户数,是不确定
- 在启动时间内,产生的并发用户数,一产生,就去发起请求
- 启动了并发用户,就会去发起请求,不同时间产生的并发用户数,与前面产生的并发用户数,调用的接口可能不一样
- jmeter做性能测试,更多时候,使用的是,广义并发(同一时间请求同一个接口为狭义并发)
- ramp-up时间要大于等于1
线程数 和 ramp-up时间的设置区间范围
- 500 以内的并发用 户数, ramp-up 时间设置为 2~4s
- 500-1000 ramp-up设置为 5s
- \>1000 ramp-up设置为 5-8s
一个原则: ramp-up时间在总执行时间中,占比要很低
一般的情况,一个性能测试的总执行时间 几十秒钟 ~ 几十分钟
循环次数
默认必须 大于等于1
循环次数,就是每个并发用户 要去执行的请求数量
复习框 永远 一直循环,直到你点击停止,才会
永远 要与 调度器 一起使用
测试场景:
30个并发用户,持续运行300s
聚合报告: avgRT:2.937s 90%RT:3.382s avgTPS: 10.2 (吞吐量jmeter 常用于表示tps)
吞吐量是指系统在单位时间内处理请求的数量
压测结论:
90%RT:3.382s可以看到,这个响应时间是比较长的,已经超过了我们用户能容忍的范围了,用户满意度指数1.5s(行业指定的标准),说明我们的接口响应比较慢
30个用户并发平均响应tps avgTPS: 10.2 ,tps<并发用户数,每秒钟一个用户都不能正常发起一个请求,已经超过了我们项目这个接口能承受最大并发用户数了。
结论:服务器注册接口最大并发用户数小于30
根据当前网络带宽计算 网络瓶颈:
本机使用1M宽带 1Mb = 1 x 1024kb = 1024kb/8 = 128KB/s 图中传输速率远低于128kb,所以没有网络瓶颈