如何在JMeter中自动使用当日日期变量实现API负载测试
如何在JMeter中自动使用当日日期填充API请求路径
没问题,这事儿其实很简单,我来一步步教你实现自动用当日日期替换手动输入的日期值:
方法一:直接使用JMeter内置__time()函数(最便捷)
这是最简单的方式,不需要额外添加任何元件,直接修改你的API请求路径即可:
把原来的请求地址:https://myserver01.net/alert/bydate/${Today}
替换为:https://myserver01.net/alert/bydate/${__time(yyyy-MM-dd,)}
解释一下这个函数:
__time()是JMeter自带的内置函数,专门用来生成时间/日期格式的字符串- 第一个参数
yyyy-MM-dd是你需要的日期格式,和你手动输入的2018-02-09格式完全匹配 - 第二个参数留空(或者不写)就表示直接返回格式化后的日期,不用存为变量
每次运行测试时,JMeter都会自动把这个函数替换成当前系统的当日日期,完全不用手动修改。
方法二:将日期存为变量(适合需要复用日期的场景)
如果你的测试计划里有多个地方需要用到当日日期,建议把日期存为一个变量,方便统一调用:
- 在测试计划中添加用户定义的变量元件(右键测试计划 → 添加 → 配置元件 → 用户定义的变量)
- 在变量列表里新增一行:
- 变量名:
todayDate(可以自定义) - 变量值:
${__time(yyyy-MM-dd,)}
- 变量名:
- 然后在你的API请求路径中使用这个变量:
https://myserver01.net/alert/bydate/${todayDate}
方法三:用Groovy代码自定义生成日期(灵活度更高)
如果需要更复杂的日期处理(比如生成昨天/明天的日期),可以用JSR223前置处理器来实现:
- 在你的HTTP请求前添加JSR223前置处理器(右键HTTP请求 → 添加 → 前置处理器 → JSR223前置处理器)
- 在“脚本”框中输入以下Groovy代码:
import java.text.SimpleDateFormat import java.util.Date def sdf = new SimpleDateFormat("yyyy-MM-dd") def today = sdf.format(new Date()) vars.put("todayDate", today)
- 同样在API请求路径中使用
${todayDate}即可
以上三种方法都能帮你实现自动使用当日日期的需求,推荐优先用方法一,最省心!
内容的提问来源于stack exchange,提问作者nhrcpt
相关产品推荐
相关产品推荐

