使用JMeter进行简单POST的JSON操作

本文详细介绍如何使用JMeter进行性能测试,包括启动JMeter、创建和保存测试计划、添加线程组、HTTP请求及信息头、监听器配置,以及如何解读测试结果。适合初学者快速上手。

1.启动jmeter:在bin下以管理员身份运行jmeter.bat,启动jmeter

2. 创建测试计划:

默认启动jmeter时会加载一个测试技术模板,保存测试计划:修改名称为UseTestt,点击保存,选择保存路径,后面的步骤,每次添加或修改了了一些选项,软件并不会自动保存到jmx文件中,所以进行测试后,如果需要保存本次测试选项,要手动到“文件”菜单中保存一下。

 

3. 添加线程组

右键左边树中的测试计划“UseTestt”节点,“添 加”→”Threads”→”线程组”

 

添加成功后,“UseTest”节点下多了“线程组” 节点,当然这个线程组的名称是可以自己设定的。

 

 

4.添加http请求信息头

右键“UseTest”,选择“添加”→ “配置元件”→“HTTP信息头管理器”

 

然后信息头添加一条名称为 Content-Type,值为 application/json 即可。

6. 添加http请求

右键“UseTest”,选择“添加”→ “Sampler”→“HTTP请求”

 

添加成功后,出现新的节点“HTTP请求”,就可以填写具体的请求参数了。

 

 

填写完成,保存测试计划

7. 添加监听器

右键线程组,选择“添加”→“监听器”→“XXXXXXXXX”

可以添加的监听器有很多种,可以添加多个监听器,这里我们添加几个常用的“图形结果”、“察看结果树”、“聚合报告”

 

 

添加成功后,“线程组”下增加了几个节点

 

8. 试运行

点击执行

 

可以查看各个“监听器”的结果

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间

Median:中位数,也就是 50% 用户的响应时间

90% Line:90% 用户的响应时间

Note:关于 50% 和 90% 并发用户数的含义,请参考下文

http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

 

  • Average:平均响应时间(毫秒ms)
  • Median:中值时间,N个数据从小到大排列,第N/2个数
  • 9x%Line:N个数据从小到大排列,第9x%N个数。所有数据中9x%的响应时间都小于9x。具体下面详解
  • Min:最短响应时间
  • Max:最长响应时间
  • Error:出错的百分率
  • Throughput:吞吐率(请求数/秒)
  • KB/sec:接收速率(千字节/秒)
  1. 1. 吞吐量=完成的请求数/完成这些请求数所需要的时间;
  2. 2. 平均响应时间=所有响应时间的总和/完成的请求数;
  3. 3. 失败率=失败的个数/总数数;
  4. 4. 时间的计算方法是:通过timeStamp时间戳(发出的起始时间)相减而得

 

9. 修改线程组的线程数等参数,用于压力测试

点击左侧树形导航中的“线程组”

 

 

设置上面几个参数,模拟的总的请求数是:线程数*循环次数。执行一下,用“图形结果”监听器查看一下

 

样本数目:总共发送到服务器的请求数.
最新样本:代表时间的数字,是服务器响应最后一个请求的时间.
吞吐量:服务器每分钟处理的请求数.
平均值:总运行时间除以发送到服务器的请求数.
中间值:时间的数字,有一半的服务器响应时间低于该值而另一半高于该值.
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布.

### 如何在 JMeter 中配置 POST 请求的 JSON 数据格式 要在 JMeter 中为 POST 请求设置 JSON 数据格式,需要完成以下几个方面的配置: #### 1. 配置 HTTP 请求采样器的消息体数据 在 JMeter 的 **HTTP 请求** 采样器中,找到 **消息体数据** 字段,在此字段中输入要传递的 JSON 数据内容。例如: ```json { "name": "John", "age": 30 } ``` 这一步确保了请求的内容是以 JSON 格式发送给服务器的数据[^1]。 #### 2. 设置 HTTP Header Manager 为了使服务器能够识别并正确解析传入的 JSON 数据,需通过 **HTTP Header Manager** 声明请求参数的格式为 JSON。具体操作如下: - 添加一个 **HTTP Header Manager** 组件到线程组。 - 在其配置页面中添加一个新的头部信息: - `Name`(名称):`Content-Type` - `Value`(值):`application/json` 这一配置明确了客户端正在向服务器发送的是 JSON 类型的数据[^2]。 #### 3. 调整 Ramp-Up Period 和其他性能参数(可选) 如果计划模拟多个用户的并发行为,则可以调整 **Ramp-Up Period** 参数来控制虚拟用户加载的速度。例如,将 Ramp-Up Period 设定为 5 秒意味着所有用户将在 5 秒内逐步启动。假设设置了 5 个用户和 5 秒的 Ramp-Up Period,则每秒会启动一名用户[^3]。 #### 4. 示例完整的配置流程 以下是基于上述说明的一个完整示例配置过程: - 创建一个线程组。 - 在线程组下添加一个 **HTTP Request Defaults** 或者直接创建 **HTTP Request**。 - 输入目标 URL 并选择方法为 `POST`。 - 切换至 **Body Data** 标签页,并填入所需的 JSON 数据结构。 - 同一线程组下新增 **HTTP Header Manager**,定义 `Content-Type: application/json` 头部信息。 #### 5. 测试复杂 JSON 数据场景 当涉及复杂的 JSON 数据时,比如嵌套对象或者数组,同样可以在 Body Data 中构建相应的结构。例如: ```json { "id": 1, "details": { "address": "New York", "phoneNumbers": ["123-456-7890", "987-654-3210"] } } ``` 只要遵循标准的 JSON 格式书写即可被正确处理[^4]。 --- ### 总结 综上所述,JMeter 支持通过简单的界面化操作轻松实现对 RESTful API 接口进行带有 JSON 数据负载的 POST 方法调用测试。主要依赖于两个核心组件——HTTP 请求中的 Body Data 定义实际传输内容以及 HTTP Header Manager 来指定 MIME 类型为 `application/json`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值