我正在尝试为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,abcdefghijklmnopqrstuvwxyz0123456789,)}-${__RandomString(4,abcdefghijklmnopqrstuvwxyz0123456789,)}-${__RandomString(12,abcdefghijklmnopqrstuvwxyz0123456789,)}
当然,我希望这能起作用。但遗憾的是它没有。
1条答案
按热度按时间l2osamch1#
你不知道OAuth flows是怎么工作的。
state
。根据Prevent Attacks and Redirect Users with OAuth 2.0 State Parameters,state
参数用于CSRF攻击预防,因此需要从先前的响应中提取。有关详细信息,请参阅What is CSRF & How to Load Test CSRF-Protected Websitescode
。不清楚您所想的“代码”到底是什么,很可能也需要从以前的响应中提取,请参阅Authorization Code Grant文章以获得示例解释nonce
确实是随机的,但要确保它在整个流中是相同的。请参见Nonce实施说明