浅谈配置元件之HTTP请求默认值
在进行HTTP请求的测试计划设计时,"HTTP请求默认值"配置元件扮演着极其重要的角色,它能够简化测试计划的设置,提高测试效率。本问将详细介绍如何使用JMeter中的“HTTP请求默认值”配置元件。
HTTP请求默认值一般和HTTP请求配套使用
1. 什么是HTTP请求默认值?
“HTTP请求默认值”是JMeter中的一种配置元件。顾名思义,它为测试计划中所有(或指定范围内的)HTTP请求提供一组默认的配置参数。这意味着,一旦你在一个“HTTP请求默认值”元件中设置了如服务器名称、端口号、协议等信息,所有继承这些设置的HTTP请求将自动应用这些默认值,除非它们被单独明确地覆盖。
2. 为什么使用HTTP请求默认值?
● 简化配置:避免在每个HTTP请求中重复输入相同的服务器信息、端口等参数。
● 易于维护:当基础URL或认证信息发生变化时,只需修改“HTTP请求默认值”,无需逐个调整每个请求。
● 提高效率:减少配置错误,加速测试计划的创建和调整过程。
3. 如何添加HTTP请求默认值?
- 打开JMeter,创建一个新的测试计划或者打开现有的测试计划。
- 右键点击测试计划、线程组或其他合适的容器(如取样器),选择“添加” -> “配置元件” -> “HTTP请求默认值”。
- 配置元件将会出现在所选容器下,此时可以开始设置默认参数。
4. 主要配置参数说明
基本设置
● 协议:默认的通信协议,通常是http或https。
● 服务器名称或IP:默认的服务器地址,所有使用此默认值的HTTP请求将指向该地址。
● 端口号:默认的端口号,例如80或443。
● 内容编码:指定发送请求时的内容编码方式,如UTF-8。
高级设置
一般不进行设置
5. 实例说明
第一步:首先编写一段SpringBoot为框架编写后端代码,主要详细代码如下:
@PostMapping(value = "/login",produces = "application/json;charset=UTF-8")
public String authenticate(@RequestBody JSONObject request) {
String validUsername = "admin";
String validPassword = "password";
if (request.getString("username").equals(validUsername) && request.getString("password").equals(validPassword)) {
return "认证成功";
} else {
return "认证失败";
}
}
接口:/login
消息头:application/json;charset=UTF-8
后端端口:8091
第二步:编写一段JMeter测试脚本,结构如下:
HTTP信息头管理器设置参数如下:
名称:content-type,对应值:application/json;charset=UTF-8
HTTP请求默认值设置参数如下:
协议:http
服务器名称或IP:127.0.0.1
端口号:8091
内容编码:utf-8
HTTP请求设置参数如下:
方法:post
路径:/login
消息体数据:
{
"username": "admin",
"password": "password"
}
第三步:运行脚本,我们可以在“查看结果树”中看到如下结果:
- 组织数中的HTTP请求显示测试通过
- 请求中Request Body可以看到内容为:
POST http://127.0.0.1:8091/login
POST data:
{
"username": "admin",
"password": "password"
}
- 请求中的Request Headers为
Connection: keep-alive
content-type: application/json;charset=UTF-8
Content-Length: 53
Host: 127.0.0.1:8091
User-Agent: Apache-HttpClient/4.5.7 (Java/1.8.0_101)
- 响应数据中的Response Body为“认证成功”
上述内容不难发现,上述2中看到的请求部分信息即来HTTP请求默认值
5. 注意事项
● 作用域:“HTTP请求默认值”的设置仅对同一层级及其下方的HTTP请求生效,不会影响上级或平行容器中的请求。
● 优先级:如果HTTP请求中直接设置了与默认值相冲突的参数,将以请求中的设置为准。
● 安全性:处理敏感信息(如认证信息)时,请谨慎使用默认值,确保不会泄露到不安全的环境中。
通过合理利用“HTTP请求默认值”配置元件,可以极大地提升JMeter测试计划的构建效率与维护便利性,是进行高效Web性能测试的重要技巧之一。希望本指南能帮助你更好地理解和应用这一功能。