Let's Go!

简单介绍下jmeter和badboy

上一篇 / 下一篇  2009-05-19 23:34:16 / 个人分类:测试工具

简单介绍下jmeter和badboy
JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,大家可以到http://jakarta.apache.org/jmeter/index.html下载源代码和查看相关文档。
JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。


Badboy也是一个强大的测试工具,是用C++开发的,被设计用于测试和开发复杂的动态应用。Badboy功能丰富(包括一个捕获/重播接口,强大的压力测试支持,详细的报告、图形)使得测试和开发更加容易。
官方网址:http://www.badboy.com.au/


为什么要把这俩工具放在一起说呢,也许有朋友对jmeter比较熟悉,jmeter本身功能就已经很强大了,为什么还要用badboy呢?它比jmeter的功能还要强大吗?答案是否定的,它不比jmeter功能多,但是有了badboy可以让你的测试脚步制作更加轻松。
用过jmeter的人都知道,jmeter测试简单点的静态页面还成,脚本制作也就三两步就搞定了。但是要是制作复杂点的测试脚步就非常困难了,比如登录系统输入用户名和密码,什么函数、参数配置之类的,肯定会把你搞晕。而且网上jmeter相关复杂点的案例也非常少,它本身提供的帮助文档也只有一个很简单的例子,用处不大。有了badboy就不一样了,它可以提供像loadrouner一样的录屏功能,不需要你自己去配置什么协议、参数、cookie manager之类的,只要你把你的测试过程录制出来,然后save as jmeter 脚本格式就ok了。
所以说这俩软件是绝配,谁用谁知道,badboy让你简单的制作测试脚本,而jmeter可以给你提供强大的测试功能和聚合报告。
 
 
 
 
 

jmeter 之短板以及建议解决方案


随着JMeter的应用,发现JMeter的局限性越来越多,急需进一步扩展改进
       
一 几百兆的sample 日志解析出现OutOfMemory

最近的几个项目都是Java sample 日志,应用都是高达300 tps的,而响应时间都在百毫秒级别,所以在 <60分钟的运行过程中,生成JMeter 采样日志到达几百兆。
用JMeter gui解析日志,多次出现OutOfMemory,不爽。
规避但不治本方法:
1) 放到>4G 内存的LINUX 机器上, 设置-Xmx2048m甚至更高启动JMeter.sh
2) 放到64位的java 版本上
3) 减少java sample运行时间或者次数,减少日志尺寸
4) 对要求长时间的场景,采用shell 方式启动-关闭jmeter-重命名生成日志 的方式减少日志尺寸

最根本方法:改写jmeter日志解析部分为NONE GUI,或者用C/c++效率更高的语言解析有规律日志

二 分布式多台监控机器

这个也不是jmeter 的长处。尤其是要求监控iowait%,netstat 连接数,NAS 上监控数据。

解决办法:
用loadrunner monitor+扩展DLL。

三 被测程序为client API

由于JMeter 运行消耗资源较大,无法清晰区分client api本身是否有短期对象、内存泄漏。

在确认Client api自身没有并发问题、内存泄漏、短期对象问题后,
可以client api内部加入一些度量数据输出到excel  +  结合jmeter获取更多的平均值、标准差等数据

四  面向目标的场景控制

比如要求控制服务器的资源在一定负载下。如要求linux 机器load 接近5时,求解TPS为多少?

由于系统受到应用CACHE,OS CACHE,NAS CACHE 等影响,单纯采用JMeter 将耗费极大精力。

解决方法:
用java 多线程程序发起压力+另外线程检索/proc 目录数据视负载增加/减少压力线程数。同时将变化的线程数与资源负载输出到文件,将这些数据做趋势分析。

再用线程数应用在jmeter上 反馈验证
 
 
 
 
 
 
 
学习资料
 
 
 
 
下载地址:csdn 要注册和积分的
 
 
 

TAG:

 

评分:0

我来说两句

Open Toolbar