本节主要对 JMeter 与 LoadRunner 的优缺点进行概要的总结,若有不足之处,敬请指正,不胜感激!

同时,我也不得不承认,在对 JMeter 和 LoadRunner 进行比较时,我个人的确偏向了 JMeter(免费、开源、跨平台、灵活扩展)。在本节中,您可以把本节中所述的观点看作我个人对开源 JMeter 的推介。事实上,JMeter 现在正是我在学习的自动化测试工具之一,也确实成为了我日常自动化测试的主要工具之一,而 LoadRunner 因其高昂的费用以及软硬件负荷,让我有些望尘莫及,也可以说是心有余而力不足。

JMeter与LoadRunner的相似之处:

  1. JMeter 跟 LoadRunner 架构基本相同。均通过中间代理,监控&收集并发客户端发现的指令,生成脚本,再发送到应用服务器,再监控服务器反馈结果的一个过程
  2. JMeter中也有分布式中间代理功能。这个分布式分理是指可设置多台代理在不同PC中,通过远程进行控制,即通过使用多台机器运行所谓的 Agent 来分担 Load Generator自身压力,并借此来获取更大的并发用户数

JMeter相对于LoadRunner的优势:

  1. 开源免费:JMeter是一款免费的开源软件,使用它不需要支付任何费用
  2. 跨平台:java开发的开源软件
  3. 小巧:相比LR的庞大(LoadRunner 4GB左右),它非常小巧(最新版本2.12仅有33M左右)
  4. 免安装:但需要JDK环境,因为它是使用java开发的工具
  5. JMeter 可以做web程序的功能测试,利用JMeter 中的样本,可以做灰盒测试, LoadRunner 主要用作性能测试
  6. 功能强大:jmeter设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试
  7. 灵活扩展:因其开源,可获取源代码进行二次开发、封装、优化,对其功能进行客制化,使其更好的适应测试需求;也可以根据自己的需求扩展它的功能,可自行编写扩展包(jar),放在{apache-jmeter-2.12\lib\ext}目录下,通过 Java请求 引用即可

JMeter相对于LoadRunner的不足:

  1. 界面不美观(开源典型的特点)
  2. 结果数据展示存在不足
  3. 结果分析能力没有 LoadRunner 详细
  4. 录制功能、调试环境存在一定的差距
  5. JMeter 没有 IP 欺骗功能,IP欺骗是指在一PC台上多个IP地址来分配给并发用户。这个功能对于模拟较真实的客户环境来说,比较有用
  6. JMeter 非商业软件,无专业技术支持,因起步较晚相应的学习资料较少,不过随着 JMeter 使用群体的逐渐壮大,相信此种情况会有很大的改观。

最后,因个人对 JMeter 和 LoadRunner 的粗浅认知,此文中若有不足之处,敬请告知。同时,希望这篇文章不会引起 LoadRunner 的坚定的拥护者们的反感,若有冒犯之处,敬请见谅!毕竟存在即有意义。若有任何不同见解,我非常欢迎您理性的留言探讨,非常感谢! ^_^

JMeter学习-003-JMeter与LoadRunner的异曲同工的更多相关文章

  1. JMeter学习笔记--JMeter监听器

    监听器(Listeners)是一种展示采样结果的测试元件,采样结果可以通过树.表格.图片加以展示,或者简单地写入某个结果文件之中. 注:不同的监听器通过不同的方式展示服务器响应信息,但它们都将同样的原 ...

  2. JMeter学习笔记--JMeter常用测试元件

    JMeter测试计划有一个被称为“函数测试模式”的选项,如果被选择,它会使Jmeter记录来自服务器返回的每个取样的数据.如果你在测试监听器中选择一个文件,这个数据将被写入文件.如果你尝试一个较小的测 ...

  3. JMeter学习笔记--JMeter属性和变量

    JMeter属性统一定义在jmeter.properties文件中.JMeter属性在测试脚本的任何地方都是可见的(全局),通常被用来定义一些JMeter使用的默认值.如属性remote_hosts定 ...

  4. JMeter学习笔记--JMeter执行顺序规则

    JMeter执行顺序规则: 配置元件 前置处理器 定时器 采样器 后置处理器(除非服务器响应为空) 断言 监听器 只有当作用域内存在采样器时,定时器.断言.前置/后置处理器才会被执行,逻辑控制器和采样 ...

  5. JMeter学习笔记--JMeter前置处理器

    前置处理器被用来修改作用域内的采样器 HTML 链接解析器:解析从服务器得到的HTML响应,并从中提取链接和表单,使用perl型的正则表达式来寻求匹配项. HTML URL重写修饰符:使用URL重写来 ...

  6. 【转载】JMeter学习(一)工具简单介绍

    JMeter学习(一)工具简单介绍 一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静 ...

  7. JMeter学习-011-JMeter 后置处理器实例之 - 正则表达式提取器(三)多参数获取进阶引用篇

    前两篇文章分表讲述了 后置处理器 - 正则表达式提取器概述及简单实例.多参数获取,相应博文敬请参阅 简单实例.多参数获取. 此文主要讲述如何引用正则表达式提取器获取的数据信息.其实,正则表达式提取器获 ...

  8. JMeter学习工具简单介绍

    JMeter学习工具简单介绍   一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态 ...

  9. JMeter学习2

    JMeter学习(四)参数化 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统. 这个时候就需要对用户名和密码进行参数化 ...

  10. JMeter学习1

    Jmeter的组织方式相对比较扁平,直接是TestPlan(相当于Project),TestPlan下创建的ThreadsGroup(相当于TestCase), Jmeter一个TestPlan也是一 ...

随机推荐

  1. topcoder 594 DIV2 foxandclassroom

    暴力枚举 1 #include <iostream> #include <vector> #include <string> using namespace std ...

  2. Spring_讲解

    http://s,i,s,h,u,o,k.com/forum/blogPost/list/6174.html

  3. mac 下的 top 命令

    mac 下的 top 命令 文章目录 以前只是在 linux 机器上使用 top 命令.常用的快键键是: p 键 - 按 cpu 使用率排序 m 键 - 按内存使用量排序 这 2 个快捷键在 mac ...

  4. 诅咒JavaScript之----ArcGIS JavaScript 点聚合 ClusterLayer

    对一个之前一直做winForm的 菜鸟来说,突然接触这么神奇的语言,基本上每天都会诅咒一下这门神奇的语言. 最近做了一个小网站,底图用的是天地图的服务,用ArcGIS JavaScript提供的一些G ...

  5. 应用服务器上部署自己的 blog 和 wiki 组件。

    协作性应用程序 这就是 Web 2.0 的全部,尽管该术语出现才几乎一年的时间,但现在好像只有烹饪杂志还没有加入到讨论 Web 2.0 未来出路的行列中.自从出现了里程碑式的文章 "What ...

  6. NBUT 1010 魔法少女(DP)

    [1010] 魔法少女 时间限制: 1000 ms 内存限制: 65535 K 问题描述 前些时间虚渊玄的巨献小圆着实火了一把. 在黑长直(小炎)往上爬楼去对抗魔女之夜时,她遇到了一个问题想请你帮忙. ...

  7. emacs notepad notepad++ 撤销比较

    以前使用编辑器都是直接上手,未读过什么的文档了解.所谓撤销只是使用,也不了解究竟撤销到何处,阅读了emacs的文档才知道有许多区别呢. 输入this is a pen,然后一个个字符地删除到this ...

  8. scapy 安装及简单测试

    关于scapy Scapy的是一个强大的交互式数据包处理程序(使用python编写).它能够伪造或者解码大量的网络协议数据包,能够发送.捕捉.匹配请求和回复包等等.它可以很容易地处理一些典型操作,比如 ...

  9. js 表单内容使用ajax以json格式混合提交

    脚本代码 function submitForm(){    var post_data = $("#form1").getdict();    var data_dict = { ...

  10. thinkPhp 3.1.3的验证码无法显示的问题

    Image帮助类的output方法中,在下面的代码 header("Content-type: image/" . $type); 前增加代码: ob_end_clean();