那位同事的到来,然后在旁边学习了下如何使用Badboy和jmeter做性能测试。
1. 软件介绍 1.1 BadboyBadboy,第一眼看见这个单词,以为是坏孩子的意思,后来一想,它是专门用来给项目找茬来的,取名为Badboy
倒是平添了几分可爱,呵呵。
Badboy是用来录制操作过程的,它录制的结果是被jmeter做并发测试的素材使用。
Badboy首页:
1.2 Apache jmeterJmeter是Apache下的一个完全基于JAVA开发的测试工具, 可以很方便的用来进行并发测试。
Jmeter首页:
2. 使用过程 2.1 录制操作(1)打开badboy进行登录的录制工作。(我们来看下163邮箱的登录并发性能如何,嘿嘿。)
(2)点击登录,然后结束录制,将录制的过程保存下来,保存成jmeter能够使用的格式,Script.jmx:
2.2 测试并发(1)运行Apache Jmeter,文件à打开 ,然后选择刚才保存的录制文件 Script.jmx
(2)设置模拟并发的线程数量
(3)添加感兴趣的监听类型
(4)点击 运行à启动,开始执行并发登录163邮箱操作。
2.3 分析结果 理解 JMeter 聚合报告(Aggregate Report)Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”。今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅。
如果大家都是做Web应用的性能测试,例如只有一个登录的请求,那么在Aggregate Report中,会显示一行数据,共有10个字段,含义分别如下。
Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90%响应时间是什么意思?这个值在进行性能分析时有什么作用?本文争取用最简洁的文字来解答这个问题,并引申出“描述性统计”方法在性能测试结果分析中的应用。
为什么要有90%用户响应时间?因为在评估一次测试的结果时,仅仅有平均事务响应时间是不够的。为什么这么说?你可以试着想想,是否平均事务响应时间满足了性能需求就表示系统的性能已经满足了绝大多数用户的要求?
假如有两组测试结果,响应时间分别是 {1,3,5,10,16} 和 {5,6,7,8,9},它们的平均值都是7,你认为哪次测试的结果更理想?
假如有一次测试,总共有100个请求被响应,其中最小响应时间为0.02秒,最大响应时间为110秒,平均事务响应时间为4.7秒,你会不会想到最小和最大响应时间如此大的偏差是否会导致平均值本身并不可信?
为了解答上面的疑问,我们先来看一张表: