要点

\

  • JMeter是Apache的一款开源的负载测试工具 \
  • 通过实例学习JMeter的指南并不多 \
  • 可以从Leanpub下载这本书的电子版,也可以从Amazon购买纸质版\
  • InfoQ对这本书做了评价,并跟作者讨论了关于书和JMeter的话题

JMeter是一个负载测试Java工具库,它是Apache军团成员里被埋没的英雄之一。JMeter在Java 1.1时代发布,已经成为负载测试方面不可或缺的测试工具,它为那些包含Web前端、JVM服务器和一堆NoSQL或关系型数据库的多层架构应用程序提供了很多功能。\

《实战Apache JMeter》是Sai Matam和Jagdeep Jain的一本新作,可以从Leanpub下载电子版,或者从Amazon购买纸质版。这本书填补了JMeter学习指南的空白,它通过平白清晰的笔调和大量截屏图片来降低学习JMeter的难度。这本书适合各个级别的开发人员。\

这本书的内容是这样组织的:\

它首先以一个自动化性能测试案例作为开场,这个案例主要测试应用程序汇率转换功能的响应时间,并绘制出相关的性能曲线。紧接着JMeter作为行业中坚力量出场解决测试问题。\

接下来介绍性能测试的相关理论,以及一些最佳实践,然后提供了一个使用JMeter的测试样例,读者可以自己根据样例动手体验JMeter。\

后面的几章开始深入JMeter,分别介绍了如何创建和录制JMeter测试计划,如何为测试负载分配线程组(测试入口),如何为请求创建预处理器,如何为测试序列创建控制器,如何使用计时器模拟用户的点击动作,如何创建各种服务器负载样本取样器,如何创建响应断言,如何创建响应监听器,如何创建后置处理器以便从响应中抽取数据,以及如何为测试套件定义属性和变量。\

基于这几章的内容,接下来介绍在GUI模式和非GUI模式下进行分布式测试,然后介绍测试最佳实践、问题诊断、插件的使用以及其它一些经验之谈。\

最后是一些综合案例学习和一个性能仪表盘的教程。\

整本书有400多页,不过它包含了大量图片,所以可以很快读完这本书。\

这本书的前言部分说明了性能负载测试的重要性:\

\

很多公司总是在关键时刻才开始进入性能测试,然后工程团队被要求在极短的时间内完成性能测试。

\

InfoQ针对该书内容与作者Sai Matam和Jagdeep Jain进行了交谈。\

InfoQ:这是一本很详尽的指南,你们为什么会想到要写这么一本书呢?\

\

Matam \u0026amp; Jain:我们所在的性能工程团队要求我们对一个SaaS Web应用程序进行调优,于是我们使用JMeter作为性能测试工具。我们在为一些测试用例编写测试脚本时总是碰到困难,我们需要一些JMeter的指南来帮我们度过难关。有些现成的资源(书或网页)会为我们提供了一些提示,不过它们并没有提供太多的细节。在万般无奈之下,我们想到了要写这样的一本书,把我们在编写JMeter测试用例过程中遇到的问题和解决方案聚合起来,作为本书的内容。我们想要这本书尽可能地详尽,里面的例子不会漏掉任何中间步骤。

\

InfoQ:在负载测试的计划阶段,JMeter会析出检测器的开销吗?还是说这只是设计器的工作?\

\

Matam \u0026amp; Jain:响应时间的计算是从请求离开JMeter之时到接收到服务器的响应为止。JMeter本身不会带来多少的开销,所以测试是非常准确的。在测试运行过程中,结果会被累计起来。为了不对测试结果产生影响,结果要到测试结束之后才开始被处理,包括图表的绘制。类似的,当JMeter运行在分布式模式下时,普通节点的测试结果会被聚合到主节点上,在测试结束时才进行处理。用户负载是通过线程来模拟的,而线程的可用数量会受到系统的限制。执行测试的工程师在运行JMeter时需要对CPU和内存进行监控。把负载控制在60%以下是比较理想的,这样可以确保不会出现额外的开销。

\

InfoQ:JMeter似乎无法跟持续集成环境一起使用,比如Jenkins或Bamboo。这里面有什么原因吗?\

\

Matam \u0026amp; Jain:我们在书里提到,把性能测试作为持续集成的一个环节是非常重要的,在案例学习部分也提到了这一点。我们认为可以把关于这个问题的讨论也加入到书中。不过,我们现在把注意力放在了核心的内容上。

\

InfoQ:除了性能测试,JMeter也提供了一些重要的功能测试特性。你们为什么没有介绍这方面的内容呢?\

\

Matam \u0026amp; Jain: JMeter不是为功能测试而生的。它虽然也可以用来做功能测试,不过不是最理想的。功能测试包含了单元测试和端到端的集成测试,已经有很多现成的工具可以用来做功能测试,而JMeter仅局限于那些网络相关的功能测试。而且,如果你要用JMeter作功能测试,那么就要重新组织测试脚本了,因为需要加入很多“断言”来验证响应消息。在这本书里,我们假设在进行性能测试之前,已经通过了功能测试。

\

InfoQ:你们为什么要开发那些应用程序样例呢?只是为了这本书吗?\

\

Matam \u0026amp; Jain:有两个原因:
1. 通常我们在学习JMeter时,测试样例总是把地址指向一些公共网站(比如Yahoo或Google),这样做是不对的。
2. 在学习JMeter时,我们可能需要一个可以重定向的URL或者一个可以接收JSON格式数据的SOAP端点或REST端点。应用程序样例“dt”就可以满足所有的需求。读者可以使用书中提供的测试脚本,不需要做任何修改。\

书中的Web应用程序样例是一个虚拟的数码配件网店。我们给它取名“Digital Toys”,简称“dt”。读者可以从github上下载代码。这个应用部署起来很简单,只要把它解压,并从命令行启动。书中所有相关的例子都是基于这个应用开发的。

\

InfoQ:这本书的潜在读者是谁?我们应该如何利用好这本书?\

\

Matam \u0026amp; Jain:这本书适合那些对JMeter有一点使用经验的初学者和有经验的工程师。初学者可以先学习本书的前四章,学习怎么录制、创建和运行测试用例。有经验的工程师可以根据需要自行选择特定的样例进行学习。组件相关的章节介绍了JMeter的配置和使用,其中手册部分演示了一些特定的用法。性能架构师可以阅读“理论知识”部分和“案例学习”部分,这样有助于他们为公司做好性能测试规划。

\

InfoQ:有没有哪些性能测试场景是JMeter不擅长的?\

\

Matam \u0026amp; Jain: JMeter采用了插件机制,对新的测试协议提供了支持,所以你要自己花时间去开发插件。如果某个协议不被支持,也没有可用的开源插件,那么就不要使用JMeter。
JMeter并不适合用来做底层的协议测试,这些底层测试要求吞吐量接近线缆的传输速度。例如,它就不适合用来做以太网测试,以及那些要求吞吐量达到100Mbps或1Gbps的底层协议测试。对于此类测试,有其它一些办法。

\

InfoQ:JMeter的不足之处有哪些呢?\

\

Matam \u0026amp; Jain: JMeter在3.0之前对报表的支持不是很好。不过在引入了仪表盘之后,这种情况有所缓解。另一方面是关于错误报告。隐蔽的错误消息或者说缺少错误消息给测试脚本的编写带来困难,而且在实际运行测试时也难以观察到错误。不过,这些都是些小问题,JMeter团队已经在着手解决这些问题。通过恰当地管理测试用例,合理地使用报表和仪表盘,公司可以从性能测试中获得好处,避免把钱花在那些昂贵的工具上。

\

关于作者

\

Sai Matam拥有超过20年的软件开发经验。他在性能测试和调优方面有很深的造诣,他曾经对PV超过几百万的Java应用程序和Web应用程序做过调优。Sai的公司Enablor Inc为Web开发提供定制方案,并提供性能调优服务。

\

Jagdeep Jain在软件质量保证领域拥有超过10年的经验。他拥有计算机科学学位,是自动化测试的坚决拥护者。他是JMeter的重度使用者。

\

查看英文原文:Book Review:Learn Apache JMeter by Example

书评:实战Apache JMeter相关推荐

  1. Apache JMeter rmi 反序列化 cve-2018-1297

    漏洞描述 Severity: Important Vendor: The Apache Software Foundation Versions Affected: JMeter 2.X, 3.X D ...

  2. 如何为Apache JMeter开发插件(一)

    本文转载于http://blog.csdn.net/column/details/12925.html,作者:xreztento 作者写的很精华,我打算在此系列操作一遍后,加多点截图,便于更多人更快上 ...

  3. 【Apache JMeter】JMeter接口压测实例

    Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测 试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如静态文件 ...

  4. Apache JMeter 3.2版新特性详述

    版权声明:本文为博主chszs的原创文章,未经博主允许不得转载. https://blog.csdn.net/chszs/article/details/71106629 Apache JMeter ...

  5. Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)

    一.前言 前面文章已经介绍Apache JMeter的基本概率和如果使用,但作为一个开发人员,自己写的代码都应该要好好的COD EREVIEW,好好的自测吧.但是有些场景比如高并发.负载和性能测试的时 ...

  6. 网站压力测试软件(Apache JMeter)2.13 官方版 Error: Unable to access jarfile ApacheJMeter.jar

    https://jmeter.apache.org/download_jmeter.cgi  官网 https://archive.apache.org/dist/jmeter/binaries/  ...

  7. jmeter负载测试测试_使用Apache JMeter负载测试Web应用程序

    jmeter负载测试测试 Apache JMeter是用于模拟Web应用程序上的用户负载以测试性能的出色工具. 您可以通过指定用户数量和请求间隔来轻松地构建测试计划,然后JMeter将为每个用户生成一 ...

  8. 使用Apache JMeter负载测试Web应用程序

    Apache JMeter是模拟网络应用程序上的用户负载以测试性能的出色工具. 您可以通过指定用户数量和请求之间的时间间隔轻松地构建测试计划,然后JMeter将为每个用户生成一个线程并访问您的Web应 ...

  9. Apache JMeter教程

    要负载测试您的Web应用程序吗? 然后,您应该了解Apache JMeter ! 该JMeter教程介绍了基本概念以及如何创建测试计划以及如何执行它以对应用程序进行基准测试. 这是我在Disy的Tec ...

最新文章

  1. 【Machine Learning】K-means算法及C语言实现
  2. ThinkPhp5使用bootstrap样式分页
  3. [Java基础]多态基础
  4. 【C语言】用函数实现两个数排序(指针作函数参数)
  5. Asp.net 面向接口可扩展框架之业务规则引擎扩展组件
  6. 使用 vue_VUE使用ECharts教程
  7. android禁止wifi,android – 防止WiFi-direct在不使用时关闭
  8. Java 视频资源分享(干货)
  9. If you are using Gradle, make sure that your current variant is debuggable.
  10. Bootstrap栅格系统原理
  11. 进出口业务财务一体化外贸流程管理解决方案
  12. Android ANR的trace文件基本信息解读
  13. 新东方校长俞敏洪给我们的告诫。
  14. Unity UV基于中心点旋转/缩放/位移 Shader
  15. AAA和RADIUS
  16. strace命令用法详解
  17. SQL数据分析淘宝用户分析实操
  18. golang 实现华容道
  19. jsp_asp_php,PHP/JSP/ASP
  20. Linux搜索文件名和搜索文本内容命令

热门文章

  1. 美军重视扩展现实技术的研究和应用
  2. 2018年,这些信息通信技术将大红大紫
  3. 无人驾驶、VR、AR时代即将开启,中国电信2018年将完成5G商用版本
  4. 工信部:2017工业物联网白皮书
  5. 假如王撕葱是程序员......
  6. 程序员,你得一条道走到黑!
  7. 业务代码解构利器--SWAK
  8. 2018上半年约26亿条数据泄露
  9. thinkPHP 模板的使用技巧(十三)
  10. 在开发流程中嵌入安全测试