import java.util.Base64
// 从JMeter变量中读取请求体(即HTTP Sampler的Body Data)
// 注意:在JMeter中,你可以使用 vars.get("body") 来获取,但更通用的是直接读取 sampler 的内容:
def body = sampler.getArguments().getArgument(0).getValue()if (body == null || body.trim().isEmpty()) {
log.warn("JSR223:未检测到请求体内容,请确认 HTTP Sampler 的 Body Data 是否填写。")
return
}// Base64编码
def encoded = Base64.getEncoder().encodeToString(body.getBytes("UTF-8"))// 构造最终 payload
def payloadFinal = "{\"payload\":\"${encoded}\"}"// 替换HTTP请求体内容
sampler.getArguments().getArgument(0).setValue(payloadFinal)// 保存变量到JMeter上下文(方便调试)
vars.put("payload_plain", body)
vars.put("payload_base64", encoded)
vars.put("payload_final", payloadFinal)// 输出到日志
log.info("原始明文payload: " + body)
log.info("Base64编码后: " + encoded)
log.info("替换为最终请求体: " + payloadFinal)
jmeter beanshell前置处理入参base64加密
最新推荐文章于 2025-11-24 15:30:00 发布
649

被折叠的 条评论
为什么被折叠?



