我正在发送一个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]);
字符串
我尝试了几种方法,但没有找到解决办法。
1条答案
按热度按时间jexiocij1#
我认为你的正则表达式提取器在某个地方失败了,所以你的
location
变量是null。如果你得到的响应头是
location
(注意小写的l
),并尝试使用Location
提取它,它将失败。你需要将正则表达式修改为ignore the case of the header name,比如:
字符串
首先检查
location
变量是否具有预期值:的数据
你可以使用Debug Sampler and View Results Tree listener组合。
然后才开始查找Groovy脚本的问题。
更多信息:JMeter Regular Expressions