我正在尝试改变 JMeter 脚本的 GET 请求的状态、随机数和代码。我能够成功生成 50 个字符的随机字符串(用于状态和随机数),并且可以生成 [8 个字符]-[4 个字符]-[4 个字符]-[4 个字符]-[12 格式的随机字符串字符]:其中“字符”小写字母和数字。
但是,当我将这些变量作为参数传递时,GET 请求将失败。
但是,当我将每个变量的原始值从 HTTPS 脚本记录器硬编码到 GET 请求中,并将最后一个字符更改为“x”时,例如,它确实成功了。
我需要可变这些参数,因为在测试数百个用户时我无法对每个 GET 请求进行硬编码。
有人有这方面的经验吗?
在用户定义变量中变量化以下内容,并将它们传递给 GET 请求:
varState = ${__RandomString(50,abcdefghijklmnopqrstuvwxyz0123456789,)} varNonce = ${__RandomString(50,abcdefghijklmnopqrstuvwxyz0123456789,)} varCode = ${__RandomString(8,abcdefghijklmnopqrstuvwxyz0123456789,)}-${__RandomString(4,abcdefghijklmnopqrstuvwxyz0123456789,)}-${__RandomString(4,abcdefghijklmnopqrstuvwxyz012345678 9,)}-${__RandomString(4,abcdefghijklmnopqrstuvwxyz0123456789,)}-${__RandomString( 12、abcdefghijklmnopqrstuvwxyz0123456789,)}
我当然希望这能奏效。但遗憾的是事实并非如此。
遗憾的是,您不明白 OAuth 流程 是如何工作的。
state
。根据 使用 OAuth 2.0 状态参数防止攻击和重定向用户 state
参数用于预防 CSRF 攻击,因此需要从之前的响应中提取该参数。请参阅什么是 CSRF 以及如何加载测试受 CSRF 保护的网站了解更多详细信息code
。目前尚不清楚您到底想要什么“代码”,很可能它也需要从之前的响应中提取,请参阅授权代码授予文章以获取示例说明nonce
确实是随机的,但要确保它在整个流程中是相同的。请参阅Nonce实施说明