我有一个应用程序,我为其录制了 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 个相关的动态令牌,它们是作为身份验证令牌请求的一部分生成的。
以下链接中的屏幕截图:-
我相信这些“令牌”应该进入 HTTP 标头管理器,因为将它们作为请求参数将它们添加到请求 URL。
如果您的应用程序期望令牌成为 URL 的一部分(这有点奇怪),那么您需要勾选
URL Encode?
框或将包含需要编码的 字符的值包装到 __urlencode() 中功能