You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter中JSR223 Sampler执行Groovy代码遇Unexpected Token错误求助

问题原因与排查方案

哦,这个问题我太熟悉了——你踩了一个新手很容易犯的JMeter使用误区!

核心原因

你把JMeter HTTP采样器的XML配置代码直接粘贴到了JSR223 Sampler里,但JSR223 Sampler的作用是运行脚本代码(比如Groovy、JavaScript等),根本不认识XML标签。Groovy解析器看到第一行的<符号时,完全不知道这是什么语法,直接抛出了编译错误,也就是你看到的unexpected token: <。

你粘贴的内容其实是JMeter项目文件(.jmx)里的HTTP采样器的底层XML定义,不是可执行的脚本代码。

解决步骤

  • 立刻清理错误内容:把JSR223 Sampler里的所有XML代码删掉,那不是它该处理的东西。
  • 用正确的组件创建请求:如果你只是想添加一个HTTP请求,直接用JMeter自带的「HTTP Request Sampler」(带地球图标的那个组件),把你XML里的配置对应填进去:
    • 把testname里的内容填到采样器的「Name」字段
    • 勾选「Body Data」选项(对应你XML里的postBodyRaw=true),然后填入请求体内容
  • 如果需要动态生成请求(用脚本):如果确实要通过Groovy脚本创建HTTP请求,得调用JMeter的Java API,比如这样写:
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy
import org.apache.jmeter.config.Arguments

// 创建HTTP采样器实例
def sampler = new HTTPSamplerProxy()
sampler.setName("Checkout Payment Info/Place Order${__property(activeAdminThread)}(${testLabel})")
sampler.setPostBodyRaw(true)
sampler.setDomain("your-target-domain.com")
sampler.setPath("/checkout/place-order")

// 设置请求体内容
def args = new Arguments()
args.addArgument("", "your-request-body-content-here", "")
sampler.setArguments(args)

// 将采样器添加到当前线程组(按需使用)
def threadGroup = ctx.getThreadGroup()
threadGroup.addTestElement(sampler)
  • 额外提醒:JSR223 Sampler里只能放符合你所选脚本语言(默认是Groovy)语法的代码,别把JMeter的XML配置直接塞进去——那是.jmx文件的内部结构,不是可执行脚本。

内容的提问来源于stack exchange,提问作者Manav Chopra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 10:13:12