* 发现性能测试的核心
具体的工作是另外一个同事在做,但我一直也在思考,如何能让目前的性能测试更好更强大。某天在纸上写写划划的时候,突然脑袋里灵光一闪,煞那间,所有的障眼法似乎都烟消云散,留下了三个闪闪发光的单词。
1、虚拟用户(virtual user): 同时使用系统的用户数目
2、响应时间(response time): 一个用户请求,从发出到接受,经历的时间
3、吞吐量(throughput): 系统单位时间处理的用户请求数目
这三个量,形成了下面两个曲线。
1、虚拟用户与响应时间的关系曲线,
2、虚拟用户与吞吐量的关系曲线。
一个特定系统的性能到底怎么样,就由这两个曲线来描述; 有了这两个曲线,你就可以回答关于性能最主要的一些问题:
这个系统最大能支撑多少用户
用户响应时间不要超过6秒,最多能支持多少用户
未来半年,用户数会增加10000,需要加硬件吗
你给我一个 数值,我的系统到底性能如何?我不要看那么多的图表
… …
发现自己找到了"性能测试的奥秘",我按捺不足兴奋。跑去和一个用Loadrunner做过项目的同事交流,他肯定了我的观点,说以前用loadrunner做项目就是这样分析的(为什么不早告诉我啊…:( )。并且指出统计响应时间时,一般统计按照正态分布的90%的用户的平均值(所以Jmeter的Aggregate Report里有一个90%line)……
后来同老大的交流中,他特别强调了request的失败率。这是一个客户关心的问题。没有关系,小case,只要抓住了问题的核心,这些附属的指标加多加少,都不会干扰测试项目的开发,和对系统性能的分析。
* 当前项目新的调整
分成两个子项目
1) 子项目1
首先要把测试vu平均分成n组,
当一组启动后,运行 t分钟,获取响应的throughput和90%线内的平均值。
启动下一组,把每一组获取的数据收集,绘制出两张核心的曲线图。
顺便牢骚一下,当前版本Jmeter对此还没有完美的支持。我是启动多个Jmeter实例来达到这个目的。
2) 子项目2
根据曲线图,估计出系统性能最佳时的vu(满足response time的最大throughput的vu数目)。这个vu作为性能regression test的基础。
项目还在进行中。希望这是我进入性能测试领域的一个好的开始。
* 性能趋势图
(以上言论仅代表作者的个人观点,不代表51Testing观点)
版权声明:本文出自lifr的51Testing软件测试博客:http://www.51testing.com/?764
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。