jmeter接口测试之自定义全局变量与http request defaults ---使用版本jmeter4.0

本文介绍JMeter中自定义全局变量的添加与引用方法,以及如何使用HTTP Request Defaults简化HTTP请求配置,适用于接口测试场景。

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

刚接触jmeter,总结下自己遇到的一些常用的jmeter接口测试组件及方法:由于每次请求都需要用到接口地址及某些接口需要一些特定的变量,接下来就介绍一下jmeter接口测试之自定义全局变量与http request defaults。

1.添加自定义全局变量:右击test plan-->Config Element-->User Defined Variables 进行用户自定义变量设置,位置在所有线程的最前面。

2.设置好局变量时,我们可以引用全局变量,具体方法为:${变量名}  如下图所示:

3.设置好全局变量以后发现每次添加线程都得复制一个公共的http地址,于是我就查看资料 ,发现http request defaults(http请求默认值)可以一劳永逸。http request defaults可以设置公共的接口地址和公共的表头每个线程都需要的可以在这里面设置。接下来就看下如何设置。

上图最方便直接:

添加成功后,在里面设置每次请求访问的http地址或者每次访问 接口都需要加载的公共协议头。具体如图所示:

设置以后添加组件时每次添加取样器时就不用再写IP或公共协议,如下图所示:

注:一个计划里面可以增加多个http request defaults,多个http request defaults里面设置的Parameters可叠加使用,里面可以设置不同的参数。

在增加线程之前将这些设置好。希望对大家有所帮助。

 

转载于:https://www.cnblogs.com/SusanXX/p/9524918.html

<think>嗯,用户问的是怎么用JMeter测试需要登录的接口。我得先回忆一下JMeter的基本操作,还有处理登录验证的流程。首先,应该需要先模拟用户登录获取token或者session,然后在后续请求中带上这个凭证。对吧? 首先,用户可能需要创建一个测试计划,然后添加线程组。在线程组里,添加HTTP请求来模拟登录。这里要配置正确的URL、方法(比如POST)、参数,比如用户名和密码。可能还需要处理响应中的token,比如用正则表达式提取器或者JSON提取器,特别是如果返回的是JSON数据的话。 然后,后面的接口请求需要用到这个token,怎么传递呢?可能要在HTTP头里加上Authorization,或者Cookie。这时候需要用到HTTP信息头管理器,把提取到的token放进去。比如Bearer Token的话,格式是Authorization: Bearer {token}。 还有可能需要处理Cookie,JMeter默认的HTTP请求会保存Cookie吗?可能需要启用Cookie管理器,自动处理会话。但有时候手动处理更可靠,特别是需要明确传递token的时候。 另外,要确保登录请求和后续请求在同一个线程组里,保持会话。如果用了多个线程组,可能需要使用全局变量来传递token,或者设置Cookie策略。 测试的时候,可能需要检查登录是否成功,比如添加响应断言,检查返回的HTTP状态码或者响应内容里的成功标识。比如检查是否有“登录成功”的字样,或者状态码是否是200。 还有可能需要参数化用户名和密码,用CSV文件来批量测试不同的账号。这时候需要添加CSV数据文件配置元件,读取文件里的参数。 最后,可能需要组织测试结构,比如把登录和后续请求放在事务控制器里,或者用逻辑控制器来管理流程。同时,添加监听器查看结果,比如查看结果树、汇总报告等。 有没有可能漏掉什么步骤?比如,登录后的接口可能需要携带其他参数,或者动态的CSRF token,这时候可能需要更复杂的处理,比如正则表达式提取或者关联变量。或者,如果登录用的是OAuth2.0,步骤会不会不同?这时候可能需要获取access token的流程,但用户的问题可能更基础,先不考虑这种情况。 总结下来,步骤大概是:配置测试计划,添加线程组,模拟登录请求,提取token,添加头信息或Cookie,后续请求携带凭证,添加断言验证,最后执行测试并查看结果。用户可能需要详细的每一步操作,比如如何添加HTTP请求,如何配置提取器,如何设置头信息等。还要注意JMeter的元件顺序,因为元件的执行顺序是按它们在测试计划中的位置来的,所以登录请求要在其他请求之前,提取器也要放在登录请求之后,确保能正确获取到token。 另外,可能需要提醒用户注意接口的请求方式(GET/POST),参数的编码格式(比如JSON还是表单数据),以及是否需要处理重定向。还有,测试多个需要登录的接口时,可能需要复用同一个token,所以变量作用域要正确,或者使用全局变量。 可能还需要提到如何调试测试脚本,比如使用调试采样器或者查看日志,确保token被正确提取和传递。或者,如何处理动态变化的session ID,确保Cookie被正确管理。 总之,步骤需要详细但清晰,分点说明,让用户能够一步步跟着操作,同时确保每个环节的注意事项都提到,避免常见错误,比如变量引用错误、元件顺序错误、提取表达式不正确等。</think>JMeter测试需要登录的接口需要模拟用户登录后携带会话信息(如Token或Cookie)。以下是分步说明: --- ### 一、基础配置 1. **创建测试计划** - 打开JMeter → 右键`Test Plan` → 添加`Thread Group`(线程组)。 2. **添加HTTP请求默认值** - 右键`Thread Group` → `Config Element` → `HTTP Request Defaults` - 设置协议、服务器地址和端口(如`http://api.example.com:8080`)。 --- ### 二、模拟登录请求 1. **添加登录接口请求** - 右键`Thread Group` → `Sampler` → `HTTP Request` - 配置登录接口: - 路径:`/login` - 方法:`POST` - 参数:添加`username`和`password`(表单或JSON格式)。 2. **提取登录凭证** - 登录请求后添加**正则表达式提取器**或**JSON提取器**: - 右键登录请求 → `Post Processor` → 选择提取器 - 示例(提取Token): ```plaintext JSON提取路径:$.data.token 变量名:access_token ``` --- ### 三、传递会话信息 1. **HTTP信息头管理器(Bearer Token场景)** - 右键`Thread Group` → `Config Element` → `HTTP Header Manager` - 添加头信息:`Authorization` → 值填`Bearer ${access_token}` 2. **Cookie管理器(Session场景)** - 右键`Thread Group` → `Config Element` → `HTTP Cookie Manager` - JMeter会自动管理Cookie,无需手动配置--- ### 四、测试目标接口 1. **添加目标接口请求** - 右键`Thread Group` → `Sampler` → `HTTP Request` - 配置路径、方法(如`GET /user/profile`)。 2. **验证结果** - 添加`View Results Tree`监听器检查响应数据 - 添加`Response Assertion`断言验证返回状态码或内容。 --- ### 五、调试技巧 1. **参数化登录账号** - 使用`CSV Data Set Config`读取多个账号测试。 2. **关联动态参数** - 若接口需要CSRF Token,需先通过正则提取并传递。 3. **日志排查** - 在`log`面板检查变量是否成功提取(如`access_token`)。 --- ### 六、完整流程示例 ```plaintext Test Plan └─ Thread Group ├─ HTTP Request Defaults ├─ HTTP Cookie Manager ├─ HTTP Request (登录接口) │ └─ JSON Extractor (提取Token) ├─ HTTP Header Manager (携带Token) ├─ HTTP Request (目标接口) └─ View Results Tree ``` 通过以上步骤,JMeter可模拟完整登录流程并测试需认证的接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值