【发布时间】:2023-01-20 17:01:01
【问题描述】:
在我的脚本中使用 JSR 223 预处理器。在脚本中有一个 API,其正文数据如下:
{`"key":"appStorage","value":"{\"model_sta10:\":\"{\\\"StratSim_Controls!R15C5\\\":\\\"10\\\",\\\"Inputs_Main!R23C5\\\":\\\"10amname\\\"}\",\"return_url\":\"/main/welcome-screen\",\`round_value`\":\"1\",\"round-one-star10d\":\"true\",\"intro-comple10\":\"true\"}"}
但是,当我执行脚本时,它无法正常工作并收到错误消息,并且从响应中删除了一个松弛部分。
所以我添加了带有以下代码的 JSR 223 预处理器以供请求:
`import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase
def request = sampler.getArguments().getArgument(0).getValue()
request = request.replace('te',vars.get('te')).replace('teamname', vars.get('teamname'))
def arguments = new org.apache.jmeter.config.Arguments();
sampler.setArguments(arguments);
sampler.addNonEncodedArgument('',request,'')
sampler.setPostBodyRaw(true)
`
并在正文中传递参数:
{"key":"appStorage","value":"{\"model_state:\":\"{\\\"StratSim_Controls!R15C5\\\":\\\"te\\\",\\\"Inputs_Main!R23C5\\\":\\\"teamname\\\"}\",\"return_url\":\"/main/welcome-screen\",\"round_value\":\"1\",\"round-one-started\":\"true\",\"intro-complete\":\"true\"}"}
`
但是在脚本中这个请求多次出现,我必须在每个请求中添加 JSR 223 预处理器,我们有什么解决方案可以让所有请求只使用一次代码吗?
我尝试了解决方案,在线程组中添加了 JSR223 预处理器,但它无法获取 getCalue() 的错误。
【问题讨论】:
标签: performance jmeter performance-testing jmeter-plugins jmeter-5.0