动态数据是指在信息更新会时更改的数据。 例如,会话变量连接到认证机制。 这会影响网站记录,因为JMeter需要知道如何捕获此动态数据并在后续请求中重用它。 否则,回放记录的时候会显示许多错误。
这就是相关性。相关性是指从之前的请求中获取动态数据,并将其应用到后续请求中。
How does it work?
如上所述,动态值因为每个后续页面请求而改变。 这里我们查看来自航空旅行社演示的Token值(如果你跟随我们,你知道这是我们一直使用的演示)。 如果使用相同的Token,脚本将失败。
添加查看结果树,运行脚本,可以看到,因为token,运行失败了
要关联从第一页捕获的值,我们返回去并在找到由服务器返回的该值。
在这个例子中,你可以在表单中找到隐藏的input标签:
此变量需要在脚本中捕获,以便在余下脚本中作为变量重复使用。
复制变量名并在正则表达式测试器中检查它,确保名称是正确的:
将名称转换为可处理动态数据的表达式,请使用括号和匹配运算符。 测试以确保它工作:
转到您找到该值的页面。 将正则表达式提取器添加为后处理器。
填写字段:
●引用名称 - 在脚本中引用时选择调用变量的选项。
●正则表达式 - 表达式
●模板 - 如何命名变量。 如果我们有多个匹配,我们可以使用包含每个匹配的模板。
●匹配 - 我们应该使用哪个匹配。 0是任何可能发生的匹配。
●默认值 - 找不到变量时输出的内容。
现在,我们需要在每个页面的采样器中找到值。
将名称替换为您找到的值。 对每个网页上的每个值执行相同操作:
我们还需要向脚本中添加一个调试采样器。 调试采样器显示在脚本中使用的找到的变量。 如果发现匹配或验证了这个问题 - 它会显示给我们。
欢呼! 错误现在已经消失,采样器已成功,因为找到了值。 注意它是一个新值:
debugger中显示:
恭喜! 您现在知道如何使用相关性。 对于自动脚本,请查看BlazeMeter的“SmartJMX”功能。 SmartJMX通过查找每个URL的源,GET参数,POST参数或JSON POST字段来自动关联每个变量。 当找到候选者时,SmartJMX将变量提取器附加到相应的采样器并使用提取的变量而不是常数值。
请继续关注第2部分 - 数据驱动的测试和JMeter的断言。
本文来自BlazeMeter的Advanced Load Testing Scenarios with JMeter: Part 1 - Correlations。
转载于:https://blog.51cto.com/7080696/1885513