使用JMeter进行HTTP负载测试

开发 测试
在本文中,我将介绍如果在 JMeter 中设置一个最基本的负载测试计划。一般来说,你想通过负载测试来获得以下两个问题的答案。

以前我写过一篇文章: 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 starting page

在本文中,我将介绍如果在 JMeter 中设置一个最基本的负载测试计划。一般来说,你想通过负载测试来获得以下两个问题的答案:

- 你的应用程序能够承载多大的用户量?

- 在什么样的负载下,你的应用会崩溃?

因此,一开始,首先你要添加一个线程组(用户数):

JMeter add thread group

然后,开始设置这个线程组:

- 用户数

- 过渡期 (用户组发出请求的间隔时间)

- 循环次数 (这个线程的运行次数)

其次,你需要增加一个例程(HTTP 请求)到这个组中:

JMeter adding sampler

一旦你增加了一个 HTTP 请求例程后,你将看到大量的选项。你需要注意的是:

- 服务器名(Server Name) 或 IP

- 路径(Path)

定义完这个后,测试就准备好了,但我们通常需要一些测试报告。在 JMeter 中,我们称这种组件为监听器。因此,在这个测试计划中,加上一个监听器:

JMeter adding sampler

你的全部的请求响应结果都将会显示在这里。按:Ctrl + R 开始运行这个测试。如果打开结果视图窗口(View Results Tree),你可以看到实时的运行状态。运行完后,你可以再按: Ctrl + E 来清除旧的结果,并重新按  Ctrl + R 来重新启动一次新的测试。***,你可以看到类似以下的结果:

JMeter resuls

正如我在一开始说的那样,这是一个最基本的 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)

英文原文:HTTP Load testing with JMeter

译文链接:http://www.oschina.net/translate/http-load-testing-with-jmeter

责任编辑:林师授 来源: OSCHINA
相关推荐

2009-06-17 13:58:00

JMeter测试EJB

2012-02-08 14:16:55

Apache

2011-07-27 14:41:43

JMeterMySQL

2019-09-12 18:10:38

HTTPieAPI测试Python

2015-08-04 15:47:39

2009-07-01 18:24:59

JSP应用程序JMeter

2013-06-04 09:49:04

Spring单元测试软件测试

2022-06-01 14:35:39

gitjmeter脚本

2009-05-20 14:43:38

ibmdwEasyMock测试

2013-06-13 10:29:39

CasperJS测试UI测试

2021-03-28 23:03:50

Python程序员编码

2021-08-05 11:30:49

Linux渗透测试

2021-07-03 08:54:49

LinuxSysbench性能

2018-12-17 09:32:41

HTTPAPIWeb

2014-10-09 14:35:44

HAProxy负载均衡

2023-10-30 11:28:33

Kubernetes负载均衡

2011-06-08 16:59:04

性能测试载测试压力测试

2023-07-20 14:59:37

负载测试测试

2020-05-18 07:00:00

性能测试压力测试负载测试

2021-11-29 22:59:34

Go Dockertest集成
点赞
收藏

51CTO技术栈公众号