java.net.URISyntaxException:JMETER 索引查询中的非法字符
java.net.URISyntaxException: Illegal character in query at index on JMETER
我有一个应用程序,我为其录制了 Jmeter 脚本以进行负载测试。通过 Azure AD 进行授权。
我已经将动态生成的访问令牌、刷新令牌和 ID 令牌等身份验证相关联起来,并在负责调用 API 的请求中对它们进行了参数化,这可能会需要这些令牌来授权对 API.
的调用
但是,我得到一个错误:-
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 个相关的动态令牌,它们是作为身份验证令牌请求的一部分生成的。
下面的截图link:-
Regular Expression Extractor
Setting parameters
Error on Jmeter
我认为这些“令牌”应该放入 HTTP Header Manager 中,因为将它们作为请求参数将它们添加到请求中 URL。
如果您的应用程序希望令牌成为 URL 的一部分(这有点奇怪),那么您需要勾选 URL Encode?
框或包装可以包含的值characters requiring encoding into __urlencode() function
我遇到过这个问题。我做错的是,我没有在 URL.
中的参数前加上“$”符号
我是如何解决这个问题的:
当我得到异常时,我计算了 URL 中的字符直到索引(在异常中给出)这让我意识到给定索引有问题,然后我检查了我正在关注的教程,并且欢呼!问题已找到。
Example Image
我有一个应用程序,我为其录制了 Jmeter 脚本以进行负载测试。通过 Azure AD 进行授权。
我已经将动态生成的访问令牌、刷新令牌和 ID 令牌等身份验证相关联起来,并在负责调用 API 的请求中对它们进行了参数化,这可能会需要这些令牌来授权对 API.
的调用但是,我得到一个错误:-
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 个相关的动态令牌,它们是作为身份验证令牌请求的一部分生成的。
下面的截图link:-
Regular Expression Extractor
Setting parameters
Error on Jmeter
我认为这些“令牌”应该放入 HTTP Header Manager 中,因为将它们作为请求参数将它们添加到请求中 URL。
如果您的应用程序希望令牌成为 URL 的一部分(这有点奇怪),那么您需要勾选 URL Encode?
框或包装可以包含的值characters requiring encoding into __urlencode() function
我遇到过这个问题。我做错的是,我没有在 URL.
中的参数前加上“$”符号我是如何解决这个问题的: 当我得到异常时,我计算了 URL 中的字符直到索引(在异常中给出)这让我意识到给定索引有问题,然后我检查了我正在关注的教程,并且欢呼!问题已找到。
Example Image