gpt4 book ai didi

javascript - JMeter - 如果先前测试的正则表达式可以提取特定值,则仅运行后续测试?

转载 作者:行者123 更新时间:2023-11-30 18:24:00 25 4
gpt4 key购买 nike

我正在 JMeter 中运行一系列 Web 服务测试,我想知道如果前一个测试的正则表达式提取器由于空响应或其他原因无法提取值,是否有一种方法可以跳过测试。我知道我需要使用 If Controller ,但我不知道应该把什么作为条件。之前测试的正则表达式如下:

Reference Name: alarmid
Regular Expression: alarmStatus="raised" [^>]+ alarmId="(.+?)"

因此,如果它找不到状态为“已引发”的警报 ID,我希望跳过下一个测试,因为 ${alarmid} 是它的参数,否则会出现 500 错误。有任何想法吗?提前致谢!

最佳答案

您可以尝试使用 Response Assertion 的组合和 If Controller使用 javascript 条件:${JMeterThread.last_sample_ok}(检查最后一个样本是否成功)

架构如下:

Sampler 1    Response Assertion - to check if alarmId with alarmStatus="raised" is present in response;    Regular Expression Extractor - your extractor to get alarmId;If ControllerCondition = ${JMeterThread.last_sample_ok}    Sampler 2 - sampler that gets as argument extracted alarmId; 

如果没有找到相应的 alarmId,Response Assertion 会将 Sampler 1 的状态设置为“failed”,If Controller 的条件将被评估为“false”,Sampler 2 将被跳过。

更好的方法似乎是这样的:

  1. Regular Expression Extractor 的“默认值”字段设置值: 默认值:NOT_FOUND(如果正则表达式不匹配,将设置此值);
  2. 将 alarmId var 与默认值的 javascript 比较用作 If Controller 的条件:"${alarmId}"!="NOT_FOUND" - 如果不等于则执行采样器 2。

在这种情况下,您不需要使用响应断言。

关于javascript - JMeter - 如果先前测试的正则表达式可以提取特定值,则仅运行后续测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11363432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com