移动应用的验证码流程

问题描述 投票:0回答:1

我正在使用 jmeter 对使用 PKCE 的授权代码流进行登录的移动应用程序进行负载测试。

在我的 Jmeter 脚本中,我使用 JSR223 预处理器生成代码验证器和代码质询、随机数和状态(随机数和状态值生成不同)。

在脚本中,初始阶段我在移动设备中启动带有网址的应用程序,在记录的这个“/oauth2/auth”请求期间。我正在通过代码挑战,“/oauth2/auth”的请求参数中的随机数和状态,并且请求成功执行。

然后我使用用户名和密码登录,并通过登录验证程序获得正确的响应。

然后登录后,还有一个“/oauth2/auth”身份验证请求,其参数为:访问id、客户端id、代码质询、代码质询方法:S256、origin、login_verifier、nonce、state、scope、redirect uri: io.identityserver.xyz:/oauthredirect

我已经通过了最初生成的代码挑战、随机数和状态值,还从登录响应中获取了登录验证器并传入请求。

我不知道我哪里做错了。我应该得到代码作为响应,但出现以下错误:

java.net.MalformedURLException: unknown protocol: io.identityserver.xyz at java.net.URL.<init>(URL.java:617) at java.net.URL.<init>(URL.java:507) at org.apache.jmeter.protocol.http.util.ConversionUtils.makeRelativeURL(ConversionUtils.java:198) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.followRedirects(HTTPSamplerBase.java:1679) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.resultProcessing(HTTPSamplerBase.java:1776) at org.apache.jmeter.protocol.http.sampler.HTTPAbstractImpl.resultProcessing(HTTPAbstractImpl.java:554) at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:738) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:66) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1311) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1300) at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:651) at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:570) at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:501) at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:268) at java.lang.Thread.run(Thread.java:750)

我还检查了标头,其中的身份验证请求在应用程序中启动网址期间正确执行,并且所有标头都位于正确的位置。

我使用以下逻辑来创建代码挑战: 在此输入图片描述 `

还使用以下逻辑来创建随机数和状态: 在此输入图片描述

应该会得到一个正确的验证码作为响应。

performance jmeter performance-testing jmeter-5.0 jmeter-4.0
1个回答
0
投票
  1. 请勿以图片形式发布代码

  2. io.identityserver.xyz
    URL 部分应该以
    https://
    开头,因此请仔细检查您的 HTTP 请求 采样器配置

  3. 我认为 OAuth 页面没有任何您需要处理的嵌入式资源,因此您可以取消选中 HTTP 请求采样器的“高级”选项卡下的相关框:

    enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.