JMETER记录控制器,从重定向URL获取始终相同的状态和nonce值



我捕获了一个带有Azure云记录控制器的JMeter场景,使用Oauth2 + openId临时安全层配置,并在最终重定向登录网页之前进行了2次重定向。

检查根URL路径(https://example.com/),使用linux "wget "和nodeJS+Puppetter获得重定向,我已经检查了重定向的值为&;state&;和";nonce"来自URL的参数(用Javascript从根站点计算),始终是相同的值,从记录场景步骤捕获(我的意思是,使用浏览器/wget/nodeJs访问根DNS,我正在获取"状态"的动态值;和";nonce"URL参数在每次调用到主根URL,但从JMeter JMX记录的脚本,"状态";和";nonce"参数,不是动态的,从浏览器,总是有相同的值,尽管我已经一步一步地检查了HTTP请求,看看我可以在记录场景中设置它们的方式,以避免"静态";相同的价值观。

在第一步中,我访问url: https://example.com/

此url计算发送到服务器的值,将我重定向回https://example.com/login?state=[dynamic_calculate]&nonce=[dynamic_calculate],另一个重定向(2),给我登录web访问。

在我的JMeter脚本中,状态和nonce参数不是在每次JMX脚本执行中计算的,它们始终具有与Record Controller最初捕获的值相同的值。

你能帮我检查我怎么能得到状态和nonce参数值在URL动态计算,从浏览器导航行为?

提前感谢。

JMX捕获静态值

JMeter的HTTP(S)测试脚本记录器记录通过从使用JMeter作为代理的应用程序捕获请求来获取请求。任何应该是动态的值都将被硬编码为并与记录的请求对应。

JMeter不会自动检测/替换动态内容,你必须:

  1. 确定动态值的来源(响应体,报头或URL),很可能它们来自先前的请求之一
  2. 使用合适的JMeter后处理器提取它们并将它们存储到JMeter变量
  3. 将记录的硬编码值替换为步骤2
  4. 中的变量引用

这个过程被称为相关性

有一些解决方案以半自动的方式执行关联,如JMeter关联记录器插件或通过BlazeMeter代理记录器全自动执行关联,该记录器能够在"smartjmx"中导出记录的请求。自动检测和关联动态内容的模式。

最新更新