apache jmeter_书评:通过示例学习Apache JMeter

apache jmeter

重要要点

  • JMeter是Apache的开源负载测试工具
  • 通过示例学习Apache JMeter是缺少的手册
  • 该书可从LeanPub下载,也可从亚马逊印刷版下载。
  • InfoQ对该书进行了评论,并向作者讲述了JMeter和这本书

负载测试工具JMeter是Java库的Apache军团中无名英雄。 JMeter最早发布于Java 1.1,已成为测试多层应用程序的负载和功能的不可或缺的工具,这些应用程序包括Web前端,JVM服务器以及大量的NoSQL和关系数据库。

通过示例学习Apache JMeter是Sai Matam和Jagdeep Jain的新产品,可以从Leanpub下载从Amazon印刷形式订购 可以将其视为JMeter缺少的手册。 本书使用清晰的散文和屏幕截图,可以平滑利用此强大工具的全部功能所需的学习曲线。 它针对所有级别的开发人员。

这本书的组织方式如下:

首先,它通过将转换率的急剧下降与应用程序响应时间的函数作图,为自动性能测试提供了依据,然后为JMeter提供了经过工业验证和测试的解决方案。

接下来是性能测试入门,涵盖了理论和实际考虑因素,然后是您可以进行的JMeter示例测试。

接下来的几章非常具体,涵盖了JMeter测试计划的创建和记录,分配线程组以管理负载(测试的起点),创建用于丰富请求的预处理器,然后将其发送到服务器,控制器定义测试顺序,用于模拟用户点击行为的计时器,用于创建实际服务器负载的采样器以模拟各种请求类型,用于确认响应的断言,用于捕获服务器响应的侦听器,用于从响应中提取数据的后处理器,并定义可在整个测试套件中使用的属性和变量。

运用这些基础知识,下一章将介绍分布式测试,包括在GUI模式和Non-GUI模式下进行的测试,以及最佳实践,故障排除,使用插件和JMeter配方。

接下来是全面的案例研究和性能仪表板上的教程。

整本书不足400页,但阅读速度很快,并配有大图片。

从介绍开始,我们最深刻地了解了负载测试的动机:

在许多公司中,性能测试直到变得至关重要才成为重中之重。 然后要求工程团队在极短的时间内完成性能测试。

InfoQ与作者Sai Matam和Jagdeep Jain进行了交谈,以了解有关这本书的更多信息。

InfoQ:这是一个非常全面的指南。 是什么促使您编写的?

Matam&Jain:我们是一个性能工程团队,负责改善SaaS Web应用程序的性能。 我们使用JMeter进行性能测试。 我们被困在为某些用例编写JMeter测试脚本的过程中,并感到有必要提供指导以逐步完成这些步骤。 现有资源(书籍和在线资源)提到了一些技巧,但不够详尽。 当我们拼凑各种信息以解决编写JMeter测试的问题时,本书的想法源于我们的沮丧。 我们决定写一本书,其中包含详细的示例,而不会遗漏任何中间步骤。

InfoQ:在计划负载测试时,JMeter在测量结果时是否将测试仪的负载因素考虑在内? 还是这是测试计划者的一项单独义务?

Matam&Jain:响应时间是根据请求离开JMeter的时间点以及收到服务器响应的时间计算的。 JMeter本身的开销很小,因此结果相当准确。 测试运行时会累积结果。 处理结果(包括图形的生成)仅在测试结束后进行,以最大程度地减少对结果的影响。 同样,当JMeter在分布式模式下运行时,从属节点的结果最终由主节点聚合并处理。 来自用户的负载由线程模拟。 显然,可以有效运行的线程数受其运行的系统限制。 执行测试的工程师应监视运行JMeter的系统上的CPU和内存使用情况。 最好将负载保持在60%以下,以确保测试没有开销。

InfoQ:在诸如Jenkins或Bamboo的持续集成环境中使用的东西并不多。 有什么理由吗?

Matam&Jain:在书中,我们提到将性能测试纳入您的持续集成周期非常重要。 案例研究也有此特点。 但是,我们认为对此进行详细的讨论会增加本书的范围(和页面长度)。 我们想专注于基本要素。

InfoQ:除了性能测试外,JMeter还提供重要的功能测试功能。 您是否选择不承保这些费用?

Matam&Jain: JMeter并非用于功能测试。 但是,它可以用于进行功能测试,但并不是十分理想。 功能测试需要单元测试和涵盖端到端用例的测试的组合。 为此有一些特殊的工具和框架。 使用JMeter,您将只能测试只能通过网络测试的功能。 此外,如果要使用JMeter进行功能测试,则测试脚本的结构需要不同。 它需要有一个完整的“断言”列表来验证响应。 在本书中,我们假设正在使用适当的工具进行功能测试。 我们提到性能测试只有在功能测试通过后才有意义。

InfoQ:您为什么开发示例应用程序? 只是为了这本书吗?

Matam&Jain:有两个原因:

  1. 通常,在学习JMeter时,会开发示例测试脚本来访问各种公共网站(例如Yahoo或Google)。 对它们施加负载是不正确的。
  2. 有时,在学习JMeter时,我们需要一个特殊的用例,例如生成重定向的URL,SOAP端点或接受JSON有效负载的REST端点。 示例应用程序“ dt”可以满足所有这些需求。 读者可以阅读本书中的示例,而无需修改任何测试脚本。

该示例Web应用程序是一家销售数字产品的假想在线电子商务商店。 我们简称为“数字玩具”或“ dt”。 它可以在我们的github仓库中找到。 部署非常简单-只需解压缩并在命令行上运行即可。 本书中说明的所有示例都是以此为基础开发的。

InfoQ:这本书适合谁? 我们如何有效地利用这本书?

Matam&Jain:这本书适合有JMeter经验的初学者和工程师。 初学者可以阅读前四章,以学习记录,创建和运行测试的基础。 经验丰富的工程师可以根据需要参考具体示例。 有关组件的章节阐明了配置和用法,而本手册则说明了特定的用法。 绩效架构师可以从“入门”和“案例研究”中受益,从而可以为公司规划绩效策略。

InfoQ:是否有任何JMeter不适合的性能测试?

Matam&Jain: JMeter具有一种插件机制,可通过该机制支持测试新协议。 但是,您需要花费时间来开发插件。 如果不立即支持某些协议并且没有合适的开源插件可用,JMeter可能不是首选工具。

对于预期吞吐量接近线速的较低级别协议,JMeter并不是最佳选择。 例如,不适合测试预期吞吐量约为100 Mbps或1 Gbps的以太网和其他较低协议。 有用于此类目的的专用设备。

InfoQ:JMeter有哪些缺点?

Matam&Jain:在3.0版之前的JMeter并没有很好的报道。 但是,随着仪表板的引入,这种情况在一定程度上得到了缓解。 另一个方面是错误报告。 隐含的错误消息,或者有时缺少错误消息,这使得在实际测试运行期间难以开发测试脚本或注意到错误。 但是,这些都是次要问题,即使在我们讲话时,JMeter团队也在努力解决这些问题。 通过适当地构建JMeter测试,利用报告和仪表板,公司可以从性能测试中受益,并避免在商业工具上花钱。

翻译自: https://www.infoq.com/articles/jmeter-by-example-book-review/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

apache jmeter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值