用Jmeter做性能测试时,我们是用不同的执行策略(多少线程循环多少次既模拟不同的场景)执行同意脚本,相当于我们控制了执行策略这唯一变量,那把这些脚本的测试结果放在一张表格中,我们就可以轻易的分析出其他数据和这一变量的关系。举几个栗子,举例的过程中我们来谈谈什么是有效数据。
先说明下各列参数的含义:
Scene:测试场景,如10* 1* 5min指 并发数为10,1秒内启动执行5min。
Sum:脚本执行的总量
TPS:系统吞吐量,若脚本中只有单个请求,脚本的吞吐量(Throughout per second)即为系统吞吐量(Transaction per second)
RET:这里是我自己给平均响应时间定义的名称
CPU:服务器CPU使用率
MEM:服务器内存使用率
ST:执行脚本时间,出现问题是,可以根据此时间查询各环节日志,排查问题。
ERROR%:错误率
REC:平均接收字节速度(Kb/s)
SNT:平均发送字节速度(Kb/s)
例1
表一中 Scene为 10并发的三行数据,同一场景数据并不一致,样本数不一致,吞吐率不一致,而且CPU的使用率也不稳定,这是为什么呢?我们可以看到这三行最后两列数据(网络收发速度)差别特别大,这也恰恰呼应了,前面所提到的网络带宽影响测试数据。因为我们不能预测或者保证本地网络什么时间网络最稳定或者速度最快,所以如果想要测试到有效的数据,也可以说有参考价值的数据,在云服务其上还是很有必要的。
表一 本地测试机 问卷访问
Scene | Sum | TPS | RET | CPU | MEM | ST | Error% | REC | SNT |
---|---|---|---|---|---|---|---|---|---|
10* 1* 5min | 12034 | 40.1 | 0.24 | 66% | 52% | 20:32 | 2.83% | 3050 | 8 |
10* 1* 5min | 4180 | 13.9 | 0.71 |