JMeter之HTTP Request Defaults

本文详细介绍了JMeter中HTTPRequestDefaults组件的作用及配置方法。该组件可以统一设置HTTP请求的默认值,简化测试计划中多个HTTP请求的配置过程。文章还通过实例说明了多个Defaults组件配置时的叠加效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一、HTTP Request Defaults的作用:

  该组件可以为我们的http请求设置默认的值。假如,我们创建一个测试计划有很多个请求且都是发送到相同的server,这时我们只需添加一个Http request defaults组件并设置“Server Name or IP”,然后添加多个http请求且不设置"server name or ip",这些http请求会默认使用Http request defaults组件设置的值。

 参数列表:

Attribute Description Required
Name
组件名 No
Server
域名或IP No
Port 端口 No
Connect Timeout 连接超时时间(单位毫秒) No
Response Timeout 响应超时时间(单位毫秒) No
Implementation 实现方式,默认值为Jmeter属性:jemter.httpsampler No
Protocol 协议,HTTP or HTTPS No
Method 请求方法:HTTP GET or HTTP POST No
Path 请求资源路径 No
Send Parameters With the Request 参数列表 No
Server (proxy) 代理服务器的域名或IP No
Port 代理服务器的端口 No, unless proxy hostname is specified
Username 代理服务器的用户名 No
Password 代理服务器的密码 No
Retrieve All Embedded Resources from HTML Files 告诉Jmeter解析HTML文件并发送所有资源请求(包括图片,java小程序,JS,CSS等) No
Use concurrent pool 用一个连接池来获取嵌入的资源 No
Size 用于获取嵌入式资源的并发连接池大小 No
Embedded URLs must match: URL匹配,过滤 No

 

二、特别注意:

   在Jmeter之Http Cookie Manager这里我们说过,一个测试计划最好只有一个Manager组件,因为Jmeter无法处理多个Manager的情况。但在一个测试计划中可以有多个Defaults组件,多个Defaults组件的默认值会叠加。

 例子:

  如下,定义了两个HTTP Request Defaults组件,一个Http sampler(one什么也不填写),一个View Resuls Tree:

HTTP Request Defaults1:Server Name or IP: www.baidu.com,一个参数:aaa=111

 

HTTP Request Defaults2:Server Name or IP: www.qq.com,两个参数:bbb=22,aaa=333

运行结果:

 

 

总结:

1、一个测试计划中可以有多个Defaults组件,多个Defaults组件的默认值会叠加,如上图,虽然两个Defaults 组件都定义了参数aaa,但发出的请求还是会叠加起来。

2、两个default中都定义的"Server Name or IP",显示在发送请求时只能使用一个,这里使用的是第一个default定义的值www.baidu.com

 

 

 

 

官方文档:

http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request_Defaults


### 使用 JMeter 测试 HTTP 请求性能 #### 准备工作 在使用 JMeter 进行 HTTP 性能测试之前,需要完成一些准备工作。首先下载并安装 Apache JMeter 软件[^1]。启动 JMeter 后,在测试计划中添加必要的组件。 #### 创建线程组 通过右键点击“测试计划”,选择 `Add -> Threads (Users) -> Thread Group` 来创建一个新的线程组。设置线程数(即模拟用户的数量)、Ramp-Up 时间以及每轮迭代次数来定义负载条件[^2]。 #### 添加 HTTP 请求默认配置 为了简化多个 HTTP 请求的配置过程,可以添加一个全局适用的 HTTP 默认请求设置项。具体操作为: - 右键单击线程组, - 选择 `Add -> Config Element -> HTTP Request Defaults`。 在此处填写服务器地址、端口号以及其他通用属性,这样后续每个单独的 HTTP Sampler 就不需要重复这些基本信息了[^3]。 #### 定义具体的 HTTP 请求 继续扩展你的测试结构,增加实际用于访问目标服务的具体 HTTP 请求样本器(Http Request sampler): - 在线程组节点下再次执行鼠标右键菜单命令, - 选取 `Add -> Sampler -> HTTP Request`, 然后指定 URL 的路径部分(不包括域名), 方法(GET/POST等等),还有可能存在的额外头信息或者表单数据等内容. 对于更复杂的场景比如登录验证后的其他页面加载,则需要用到事务控制器(Transaction Controller)[^1],它可以帮助把一系列紧密关联的操作组合成单一逻辑单元来进行度量统计。 #### 参数化与动态数据处理 当面对大量不同输入值的情况时,利用 CSV 数据集配置能够有效减少手工维护成本。按照如下步骤实施参数化: 1. 制作包含所需变量的数据源文件(test.dat); 2. 在线程组里加入新的元件 - CSV Data Set Config; 3. 设置好对应的字段映射关系(variable names), 并确认分隔符(delimiter)正确无误; 4. 修改相应的 Http Requests 中引用静态字符串的地方替换成为`${variableName}`形式表达式即可自动获取来自外部文件中的对应条目作为运行期间的实际提交内容[^3]. #### 结果监听及分析 最后一步就是观察整个流程的表现状况啦! 建议至少附加两种类型的监听器以便全面了解情况: - **View Results Tree**: 显示详细的每次交互详情. - **Aggregate Report**: 提供汇总性的统计数据, 包括但不限于平均响应时间、90% Line 等关键指标[^2]. ```python import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase; public class CustomHttpRequest { public static void main(String[] args){ HTTPSamplerBase httpSample = new HTTPSamplerBase(); // Example setup of an HTTP request within Java code interacting with JMeter API directly... } } ``` 以上便是基于给定资料整理出来的关于怎样运用JMeter开展Http协议层面的功能性和非功能性检测工作的指导方针概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值