如何在JMeter中处理动态参数名称

时间:2017-09-26 16:40:05

标签: jmeter

登录页面具有动态密码字段名称:每次用户访问登录页面时,字段名称都显示为PASSWORD_673834937,在下次访问时,它看起来像PASSWORD_673857943

我已创建了许多今天正在运行的脚本,但在最新版本中,他们将此更改引入密码字段......在此之前它始终只有PASSWORD。所以我的所有剧本都失败了。解决方法是什么,以便我的所有脚本都开始使用动态字段名称?

OLD JMETER SCRIPT using name as "PASSWORD"

NEW changes to the password field

2 个答案:

答案 0 :(得分:0)

  1. register.asp采样器下,添加RegEx Post-Processor
  2. 指定以下参数:

    enter image description here

  3. (即正则表达式为<input TYPE="password" NAME="([^"]+)"

    1. 在HTTP请求中,在提供密码的行中,指定由字段名称中的RegEx Post-Processor创建的变量,而不是静态名称。例如,由于上面创建的变量名为PasswordFieldName,因此HTTP Sampler应如下所示(省略不相关的参数):

      enter image description here

答案 1 :(得分:0)

这是一个遗漏correlation的问题,如果你继续玩JMeter,你迟早会需要这个。

绕过动态参数的想法是按照以下方式构建测试计划:

  • 请求1(打开登录页面)
    • 提取动态参数并将其存储到JMeter变量
  • 请求2(执行登录)提供上一步中的凭据和所有动态变量

    1. 添加CSS/JQuery Extractor(请注意it is not recommended to use regular expressions to work with HTML data)作为register.asp页面的子项,并按如下方式对其进行配置:

      • 参考名称:任何有意义的内容,即name
      • CSS / JQuery Expression:input[title=Password]
      • 属性:name
    2. 在新脚本中将PASSWORD_673834937替换为${name}