java.net.urisyntaxception:jmeter上索引处的查询中存在非法字符

mwyxok5s  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(428)

我有一个应用程序,我记录了jmeter脚本来进行负载测试。授权通过azure ad进行。
我已经将auth相关的令牌(如访问令牌、刷新令牌和id令牌)联合起来,这些令牌是动态生成的,并且在负责调用api的请求中对它们进行了参数化,这可能需要这些令牌来授权对api的调用。
但是,我得到一个error:-

java.net.URISyntaxException: Illegal character in query at index 98:
    at java.base/java.net.URI$Parser.fail(URI.java:2938)
    at java.base/java.net.URI$Parser.checkChars(URI.java:3109)
    at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3197)
    at java.base/java.net.URI$Parser.parse(URI.java:3139)
    at java.base/java.net.URI.<init>(URI.java:623)
    at java.base/java.net.URL.toURI(URL.java:1063)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:615)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:66)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1281)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1270)
    at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:630)
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558)
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256)
    at java.base/java.lang.Thread.run(Thread.java:832)

我不知道我哪里出错了。我有3个共同相关的动态令牌,它们是作为auth令牌请求的一部分生成的。
下面的屏幕截图link:-
正则表达式提取器
设置参数
jmeter出错

iecba09b

iecba09b1#

我认为这些“令牌”应该进入http头管理器,因为将它们作为请求参数添加到请求url中。
如果您的应用程序希望令牌是url的一部分(这有点奇怪),那么您需要勾选 URL Encode? 框或将包含需要编码的字符的值 Package 到\uuuURLEncode()函数中

相关问题