1. jmeter功能测试的优缺点
优点 | 缺点 |
不依赖于界面, 测试脚本不需要编程,熟悉http请求,熟悉业务流程, 就可以根据页面中input对象来编写测试用例。 | 使用Jmeter无法验证JS程序,也无法验证页面,所以需要手工去验证 |
测试脚本维护方便,可以将测试脚本复制,并且可以将某一部分单独保存 | Jmeter的断言功能不是很强大 而Jmeter提供的断言功能有限,并且不依赖于界面, 无法完成界面相关内容的验证,用Jmeter测试更需要人工测试,人工确认。 |
可以跳过页面限制,向后台程序添加非法数据,这样可以测试后台程序的健壮性。 | 就算是jmeter脚本顺利执行,依旧无法确定程序是否正确执行, 有时候需要进入程序查看,或者查看Jmeter的响应数据。 |
利用badboy录制测试脚本,可以快速的形成测试脚本 | Jmeter脚本的维护需要保存为本地文件,而每个脚本文件只能保存一个测试用例,不利于脚本的维护。 |
使用参数化以及Jmeter提供的函数功能,可以快速完成测试数据的添加修改等 | Jmeter的测试脚本的管理不可以纳入版本控制 |
功能测试和性能测试均可完成 | |
以上参考:
2. jmeter 对比 loadrunner
区分点 | loadrunner | jmeter |
原理 | 通过中间代理,监控和收集并发客户端发出的指令,把他们生成脚本, 再发送到应用服务器,再监控服务器反馈结果的一个过程; | 相同 |
分布式中间代理 | 指可设置多台代理在不同PC中,通过远程进行控制, 即通过使用多台机器运行的谓的agant来分担load generator自身的压力,并借引来获取更大的并发用户数 | 相同 |
安装 | loadrunner安装包有1G多,在一台P3.0,1G内存的PC上安装要一个多小时, 要是装过旧的盗版还不能再装新版,解决办法倒是有,但麻烦且花时间; | jmeter安装简单 要是你想执行调试测试脚本,前提是:装上jdk和netbean插件 |
IP欺骗 | IP欺骗是指在一台PC上多个IP地址分配给并发用户, 这个功能对于模拟较真实的用户环境来说,是较有用 | Jmeter没有IP欺骗功能 |
脚本录制 | 方便 能够提供良好的录制功能和调试环境 | 一般需要工具badbody |
报表 | 方便 能够以漂亮的图表展示出结果数据; 能够提供漂亮的用户界面(GUI); | Jmeter的报表较少 对于要分析测试性能不足作为依据。 如要知道数据库服务器或应用程序服务的cpu,money等参数,还得在相关服务器上另外写脚本记录服务器的性能; 或者另外安装插件 |
性能测试 方法 | loadrunner可以通过在场景中选择要设置什么样的场景,然后选择虚拟用户数 | jmeter做性能测试,主要是通过增加线程的数目, 或者是设置循环次数来增加并发用户 |
复杂测试 | loadrunner中的测试场景 | jmeter可以通过逻辑控制器实现复杂的测试行为 |
功能测试 | loadrunner主要用来做性能测试 | jmeter可以做web程序的功能测试,利用jmeter中的样本, 可以做灰盒测试 |
开源及资料 | loadrunner是商业软件,如果是正版本, 有技术支持,同时,网络上的资料相当多 | jmeter是开源的,但是使用的人较少,网络上相关资料不全面 |
脚本修改 | loadrunner除了复杂的场景设置外, 还需要掌握函数,修改脚本 | Jmeter的脚本修改,主要是针对jmeter中各个部件的熟悉程序, 已经相关的一些协议的掌握情况,而不依赖于编程 |
灵活的扩展 | (1)可以使用命令行方式,采用批处理模式运行(不需要GUI),运行后的结果能够通过Email等发送给我,或是直接integration到一个可发布的web页面上 (2)收集得到的数据能够很容易的进行再处理(例如,以XML格式存储raw data) (3)工具本身具有很好的可信度,可以通过查看代码等方式,了解当意外发生时是工具本身的问题或是应用的问题 |
参考:
3. 结论
JMeter确实有不能做的事情,不过,对于Web应用的测试,JMeter是足够强大了。
主要功能:
(1)支持HTTP/HTTPS协议,能够发送HTTP/HTTPS request;
(2)支持用户场景(借用了LR中的词汇),能够以某种比例在不同的业务上分布用户数量;
(3)支持事务;
(4)支持参数化和关联(还是借用LR中的词汇);
(5)能够获得和汇总请求响应时间等数据,能够提供响应时间汇总、事务/请求处理成功率等数据报表;
(1)支持HTTP/HTTPS协议,能够发送HTTP/HTTPS request;
(2)支持用户场景(借用了LR中的词汇),能够以某种比例在不同的业务上分布用户数量;
(3)支持事务;
(4)支持参数化和关联(还是借用LR中的词汇);
(5)能够获得和汇总请求响应时间等数据,能够提供响应时间汇总、事务/请求处理成功率等数据报表;