WEB类型:
- User Driver:以用户量作为衡量系统性能的主要指标的系统,典型如IM系统、企业 内部业务系统;
- TPS-Driver:以tps作为衡量系统性能的主要指标的系统,典型的如消息系统、支付系统、批量处理系统。
建立用户模型、日活跃量、分析用户的行为....
二八原则
假设网站得到如下数据:
550*80%/400/2=0.55次 每个用户每小时登陆次数
计算平均每个用户在高峰时间段每小时的活动频率---》workload
日活跃用户,该数据用于容量测试,如之前计算出的登录2次/秒,可乘以500
(日活跃用户是相对于流失用户来说的,是对网站真正有登录操作过行为的用户。流失用户曾经注册过之后不再登录的用户,对于一个网站而言,真正有意义的是活跃用户数而非总用户数,因为只有这些用户在为网站创造着价值)
比方说拿一个网站测试
第一确定测试目标
响应时间:<2s
点击率:10次/秒
第二确定用户模型
登录平均每天500次
交易明细查询300次
退出100次
在高峰时间段2小时同时在线人数300人
建立workload:
第三JMeter页面参数设置
设置线程数75个,Ramp-Up 600秒,循环次数为6次
此处存在的疑问:线程数和Ramp-Up的值设置多少合理?
解析: 如果你是模拟300个用户的话,需要75个线程(4个用户一个线程)。 资料里说ramp的设置需要慢慢调整,这点确实是这样的,当然我还是可以预先做一些计算使得尽快到达合理的值。比如,上面设置的一个线程一共有6个请求,一个小时内完成,设置的是等长时间达到;像你这样ramp是10s的话,10s后所有75个线程都启动,这个75个线程基本会差不多同一时间来后后面的几个请求,虽然总的算下来确实符合每小时xx个请求,但是请求分布不均匀。
可以这样计算,上面计算到每个线程一个小时发6个请求,也就是每10分钟发一个请求,我们想要这10分钟内后面线程的请求能够均匀的分布,也就是 10*60/75=8s;也就是说线程按照8s一个的间隔开始运行(每个线程一开始就要发一个请求,通常是这样做的),在10分钟时,最后一个线程刚开始启动,第一个线程此时要发第二个请求了,一次类推,每10分钟内我们的请求都是比较均匀的。
根据上面的估算,可以设置 rampup=8*75,也就是10分钟,这个数值基本是合适的。
4、设置监听器
5、查看并分析结果
根据loadosophia.org结果显示:
Average Response Time: 15 ms
90% Response Time: 24 ms
Min Response Time: 5 ms
Max Response Time: 33 ms
响应时间是否符合要求需要预先跟团队协商,没有非常硬性的标准,团队协商大致可以这样:
1.评估请求从客户端发出到服务端处理完毕的每个环节需要的时间
2.网络延迟可以从一些渠道获取或者参考目前同类网站的响应时间