关于一个好的Load Generator
作者:网络转载 发布时间:[ 2012/10/9 11:46:37 ] 推荐标签:
在做性能测试的时候,基本也是必需的一个工具是所谓的load Generator,说白了是用来产生测试流量的工具,或者是大的工具中的一个模块。Load Generator是LoadRunner的叫法,因为它用得比较广,所以这个名字也广为人知了。
更清楚一点,举个例子,为了模拟大量的HTTP客户端来向server发起请求,你可以请一群人,起几十个IE, 然后喊口令请大家一起点,但是基本上这样不work(不要问我原因,不信可以试一下,我倒是真在某处见过有单位这么干的)。实际中大家可能会用LoadRunner/JMeter/WAS等工具来模拟很多的并发用户,产生大的流量。这个时候,上面的工具是load generator了,当然它可能也同时被用作controller或者resource monitor。
HTTP可能不是个很好的例子,因为HTTP load generator满世界都是,要求不高的话找个free的很容易,谁叫web的performance普遍呢。如果是其他协议,可能没有这么普通了,或者说能满足实际项目要求的更少了,对冷门的或者私有的协议更惨一点。
既然没有很好的现成的,另一个途径是自己写一个,咱是QA,但也是programmer,写代码也是分内之事哈。而且现在的很多高级语言开发起来快得让你自己都觉得不好意思,似乎得来太容易。
近在看公司里面一个用Ruby写的automation的framework,于是顺便study了下Ruby,然后写了个SMTP client。其实team倒是不缺这个,不过当是POC了。
(为了保留Eclipse的颜色,看起来舒服点,用snapshot了,反正代码少到不值得copy :) )
区区三十行代码可以实现一个多线程的SMTP client,从15K.eml这个文件中读取mail header和boby,然后发出去。
如果不嫌弃的话,理论上这个可以用来作为SMTP performance测试的load generator,然后可以看你的MTA或者Mail server每秒可以处理多少封这种15KB size的纯文本mail,听起来有点意义。
世界真美好,我一边在感叹Ruby的简洁和快速。不过既然是load generator,自然要去看看这个小generator的极限能力是怎样,是看它能跑多快。之前对Ruby的性能也不了解。
测试环境很简单,在本地起一个类似postfix smtp-sink的fake的MTA, 称它fake是因为它收到mail之后全部在内存丢弃,所以没有IO的压力,相比真的mail server要快很多很多倍,而且从client的角度它是一个正常的MTA。之前试过这个fake的MTA在一个Thinkpad T60上可以把1Gbps 带宽用满,而且自己CPU usage还不是太高。说了这么多,意思是说测试中Mail server不会是bottleneck, 所以可以看出client的极限。
HW: PC, Core 2 E6550 @2.33 GHz, 2GB RAM.
15K的sample是一次读入内存,后面不会有大量的IO。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11