如何在JMeter预处理器中将JSON请求转换为Base64编码
JMeter实现JSON内容Base64编码并传入请求的操作步骤
1. 添加前置处理器
在目标采样器(如HTTP请求)的子节点下,添加JSR223 预处理器:右键采样器 → 添加 → 前置处理器 → JSR223 预处理器。
2. 编写处理脚本
在JSR223预处理器的「语言」下拉框选择groovy,然后在脚本输入框填入以下代码:
// 定义目标JSON结构 def targetJson = [ [ "value": "3", "type": "string", "label": "Repaymentday" ], [ "value": "3", "type": "string", "label": "Repaymentday" ] ] // 转换为标准JSON字符串 def jsonString = new groovy.json.JsonBuilder(targetJson).toString() // 编码为Base64(指定UTF-8字符集避免乱码) def base64Encoded = jsonString.getBytes("UTF-8").encodeBase64().toString() // 存入JMeter变量,变量名为requestBase64,可自定义 vars.put("requestBase64", base64Encoded)
3. 引用编码后的值
在采样器的请求参数、请求头、请求体等位置,直接使用${requestBase64}即可调用生成的Base64编码值。
注意事项
- 必须使用Groovy作为执行语言,性能远高于BeanShell,JMeter 3.1及以上版本已默认集成Groovy环境,无需额外安装。
- 若需要保留JSON的格式化缩进,可将代码中的
.toString()替换为.toPrettyString()。 - 若JSON内容是从其他变量动态获取的,直接替换
targetJson的赋值逻辑即可,后续编码和存储逻辑无需调整。
内容的提问来源于stack exchange,提问作者mahaveerr R
相关产品推荐
相关产品推荐

