在jMeter Beanshell中拆分字符串变量时遇到错误

qhhrdooz  于 2022-11-09  发布在  Shell
关注(0)|答案(1)|浏览(267)

使用这段代码,我尝试在队列中使用分隔符传递两个变量

String[] words = ${gotDataCloseOrder}.split("@");
String ClosedOrderAccessToken = words[1];
String CloseOrderOrderId = words[0];
log.info("ClosedOrderAccessToken",ClosedOrderAccessToken);
log.info("CloseOrderOrderId",CloseOrderOrderId);

gotDataCloseOrder变量值如下所示

6362cb2ab4f4ed3897cfb5cc@eyJhbGciOiJIUzUxMiJ9.eyJ0eXBlIjoiZ3Vlc

但我收到这个错误

2022-11-02 23:25:40,434 WARN o.a.j.m.BeanShellPreProcessor: Problem in BeanShell script. 
org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval  In file: inline evaluation of: 
``String[] words = 6362cb2ab4f4ed3897cfb5cc@eyJhbGciOiJIUzUxMiJ9.eyJ0eXBlIjoiZ3Vlc . . . '' 
Encountered "cb2ab4f4ed3897cfb5cc" at line 1, column 22.

问题是什么?我应该做什么更改来解决此问题?

oewdyzsn

oewdyzsn1#

1.不要将JMeter Functions or Variables内联到脚本中,而是使用基于代码的等效项。
更改此行:

String[] words = ${gotDataCloseOrder}.split("@");

改为:

String[] words = vars.get("gotDataCloseOrder").split("@");

其中varsJMeterVariables类示例的简写,有关此快捷方式和其他有用的JMeter API快捷方式的更多信息,请参见Top 8 JMeter Java Classes You Should Be Using with Groovy
1.从JMeter 3.1开始,建议使用JSR223测试元素和Groovy语言编写脚本,因此请考虑迁移。

相关问题