Jmter基础(三)--HTTP Request Defaults(HTTP的默认值)

本文详细介绍了JMeter中HTTPRequestDefaults组件的作用及配置方法。该组件可为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中,`HTTP 请求默认值` 是一种配置元件,用于简化测试计划中的 HTTP 请求配置过程。通过此功能,可以为多个 HTTP 请求共享的参数设定全局或局部默认值,减少重复工作并提高效率。 #### 配置 `HTTP 请求默认值` 1. **添加组件** 在 JMeter 的树形结构中,右键点击目标节点(通常是测试计划或线程组),选择 `Add -> Config Element -> HTTP Request Defaults` 来添加该配置元件[^1]。 2. **设置通用参数** 在打开的对话框中,输入适用于所有相关 HTTP 请求的公共参数。这些参数包括但不限于: - 协议 (`Protocol`):如 `http` 或 `https`。 - 服务器名称或 IP 地址 (`Server Name or IP`):指定目标服务的主机名或 IP 地址。 - 端口号 (`Port Number`):如常见的 Web 应用端口 `80` 或 `443`。 - 路径 (`Path`):可选字段,通常不建议在此处填入具体路径,以免影响灵活性[^3]。 - 内容编码 (`Content Encoding`):如 `UTF-8`,确保数据传输时字符集一致。 3. **应用范围** 根据需求决定将 `HTTP 请求默认值` 放置于何处: - 如果将其放置于测试计划根目录下,则整个测试计划内的所有线程组及其子项均会继承这些默认值[^4]。 - 若仅希望特定线程组受益于此设置,则应将该元件拖拽至对应线程组内部。 4. **覆盖机制** 对于某些特殊情况可能需要单独调整个别请求的行为,在这种情况下可以在具体的 HTTP 取样器里重新定义相应选项来覆盖默认值[^2]。 #### 实际案例演示 假设存在一个多环境部署的应用程序接口测试场景: ```plaintext | 测试环境 | URL | |----------|-------------------------| | Dev | http://dev.example.com | | Test | https://test.example.com | | UAT | https://uat.example.com | ``` 为了适应不同阶段的需求变化而不必频繁修改大量脚本文件内容,可以通过如下方式实现动态切换: 1. 创建个独立的 `User Defined Variables` 定义变量 `${env}` 并赋初值分别为 `"Dev"`、`"Test"` 和 `"UAT"`; 2. 设置单个共用的 `HTTP Request Defaults` 组件,其中 Server Name/IP 字段设为表达式形式 `${__P(env,)}.example.com`; 3. 运行前依据当前所测版本调用 `-Jenv=xxx` 命令行参数传递实际使用的域名标签即可完成快速转换操作。 ```bash jmeter -n -t myscript.jmx -l results.csv -Jenv=Test ``` 上述命令表示启动无界面模式运行名为myscript.jmx的脚本并将结果保存到results.csv当中同时指定了本次模拟访问的目标站点为TEST级别实例。 --- ### 注意事项 尽管利用 `HTTP 请求默认值` 极大地提升了工作效率,但也需要注意以下几点以避免潜在错误发生: - 不要随意更改已生效项目的默认属性除非完全理解后果。 - 当涉及复杂多层嵌套逻辑关系时务必清晰标明各部分职责边界防止混淆不清引起混乱。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值