Jmeter:无效的uri转义绝对路径无效

时间:2018-05-16 16:25:55

标签: jmeter

以下是我遵循的步骤: 1.在我的脚本中调用HTTP请求,在json中生成有效响应。 例如:

  

{“SortAs”:“SGML”,“GlossTerm”:“2210”,“缩写”:“SGML”,“缩写”:   “ISO 8879:1986”}

  1. 现在使用正则表达式提取器从响应中获取值(“GlossTerm”:(。+?))并添加了我之前声明的用户参数(RNDM),如下所示: $ {RNDM} + “GlossTerm”:(?+)
  2. 此处RNDM = 90291,GlossTerm = 2210

    上面的整个正则表达式以参考名称的形式存储为 x 3.我正在使用引用名称来形成我的另一个URL来在HTTP请求中调用PUT方法: 例如:http://10.12.30.11/abc/test/ $ {x}

    当脚本运行第3步时,我收到错误 java.lang.IllegalArgumentException:无效的uri'http://10.12.30.11/abc/test/ $ {x}':转义的绝对路径无效 < / p>

    我已经完成的调试: 1.检查网址没有任何空间。 2.尝试使用特殊字符的url编码形式。

    在谷歌阅读了几篇这样的帖子之后,我来发布这个关于堆栈溢出的查询。请帮助我解决这个问题。

1 个答案:

答案 0 :(得分:1)

您的正则表达式提取器不正确,特别是当您在此处添加此${RNDM}.位时,它会变得不正确。而且,它产生了下一个变量,如Debug Sampler

所示
x="GlossTerm": "2210",
x_g=2
x_g0="GlossTerm": "2210", 
x_g1="GlossTerm": "2210",
x_g2= "2210",

JMeter Debug Sampler

这似乎不是您正在寻找的东西。

所以我建议你做以下事情:

  1. 切换到更适合使用JSON数据的JSON Extractor,相关的Json Path查询就像$.GlossTerm一样简单

    JMeter JSON Path

  2. 将您的网址修改为:http://10.12.30.11/abc/test/${RNDM}${x}

  3. 就是这样,你应该得到http://10.12.30.11/abc/test/902912210

    JMeter Combine Variables