groovy JMeter无法在null对象上调用方法split()

bogh5gae  于 2023-11-16  发布在  其他
关注(0)|答案(1)|浏览(181)

我正在发送一个HTTP请求,我想在响应头的“位置”中提取代码=.....数据。但是,我没有成功。
响应头中的位置部分如下位置:https://localhost/local?状态=993bb8d7-323d-b5ee-db78-f976a59d8284&session_state=0b161be0-e2f2-4ba9-a5fd-a73f5fffc025&code=116de91f-d7ba-489e-b81b-9f51c82e1d9a.0b161be0-e2f2-4ba9-a5fd-a73f5fffc025.3d401675-7f2e-4258-b88d-986837f34d47
使用正则表达式提取器,我使用“Location:.+/(.*?)\n”获取位置数据。然后我尝试使用Post-Processeur JSR 223使用以下代码获取代码,但ERROR o.a.j.e.JSR223PostProcessor: Problem in JSR223 script, Post-Processeur JSR223 javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method split() on null object error.

String[] tab=vars.get("location").split("code=");
vars.put("code",tab[1]);

字符串
我尝试了几种方法,但没有找到解决办法。

jexiocij

jexiocij1#

我认为你的正则表达式提取器在某个地方失败了,所以你的location变量是null。
如果你得到的响应头是location(注意小写的l),并尝试使用Location提取它,它将失败。
你需要将正则表达式修改为ignore the case of the header name,比如:

(?i)Location: .+/(.*?)\n

字符串
首先检查location变量是否具有预期值:


的数据
你可以使用Debug Sampler and View Results Tree listener组合。
然后才开始查找Groovy脚本的问题。
更多信息:JMeter Regular Expressions

相关问题