英文原文:HTTP Load testing with JMeter 译文出处:oschina-Tom-Lin译
以前我写过一篇文章: high availability load balancing with HAProxy and CARP on FreeBSD ,其中我使用了 JMeter 作为测试工具。在本文中,我将介绍一些如何用 JMeter 来进行 HTTP 负载测试的基础知识。JMeter 是一个java应用程序,用于模拟产生一个 高负载到一个服务器上,以测试这个服务器的承载强度,或用于分析在不同的负载下的服务器的性能。完整的 JMeter 情况,请到其官方网站上了解: 这里。
你要明白的一件事是,这个工具并不是一个浏览器。这意味着 JMeter 并不会执行提供给浏览器执行的所有功能,它也无法运行 JavaScript 或 Flash。它只是一个能运行在 windows 上或其它操作系统上的一个桌面应用程序。因此,请首先到这里 把它下载下来。如果你使用的是 windows 操作系统,解压后你就可以运行“bin/jmeter.bat”命令来启动它。你将看到下面的显示:
在本文中,我将介绍如果在 JMeter 中设置一个最基本的负载测试计划。一般来说,你想通过负载测试来获得以下两个问题的答案:
- 你的应用程序能够承载多大的用户量?
- 在什么样的负载下,你的应用会崩溃?
因此,一开始,首先你要添加一个线程组(用户数):
- 用户数
- 过渡期 (用户组发出请求的间隔时间)
- 循环次数 (这个线程的运行次数)
其次,你需要增加一个例程(HTTP 请求)到这个组中:
一旦你增加了一个 HTTP 请求例程后,你将看到大量的选项。你需要注意的是:
- 服务器名(Server Name) 或 IP
- 路径(Path)
定义完这个后,测试就准备好了,但我们通常需要一些测试报告。在 JMeter 中,我们称这种组件为监听器。因此,在这个测试计划中,加上一个监听器:
你的全部的请求响应结果都将会显示在这里。按:Ctrl + R 开始运行这个测试。如果打开结果视图窗口(View Results Tree),你可以看到实时的运行状态。运行完后,你可以再按: Ctrl + E 来清除旧的结果,并重新按 Ctrl + R 来重新启动一次新的测试。最后,你可以看到类似以下的结果:
正如我在一开始说的那样,这是一个最基本的 HTTP 负载测试计划。但 JMeter 提供的功能却远非如此简单,它能够通过建立大量的、你需要学习的各种选项来完成各种测试案例。我强烈推荐大家使用这个工具来进行各类测试。当然,这个工具用自定义插件来扩展也很简单。
AtlantBH 开发了一套 JMeter 的扩展插件,包括:
- OAuth Sampler- REST Sampler
- JMS Tools (Java Request Sampler)
- JSON 到 XML 转换器
- XML Format Post-processor
- HDFS Operations Sampler
- HBase Scan Sampler
- HBase RowKey Sampler
- Hadoop Job Tracker Sampler
- HBase CRUD Sampler
- JSON utils (JSON Path Assertion, JSON Path Extractor, JSON Formatter)