【问题标题】:While controller in JmeterJmeter中的控制器
【发布时间】:2018-02-19 09:53:52
【问题描述】:

我有一个要测试的场景。请求 1(SOAP/XML 请求)生成具有字段的响应,例如 totaldocsperpage。基于该字段,同一个请求 1 必须从 totaldocsperpage 运行多次,pagenum(请求 1 中的变量字段)从 1 递增到 totaldocsperpage。

如何做到这一点?我使用正则表达式提取器提取了totaldocsperpage,并在开始时使用了以下条件的while控制器

${__javaScript("${pagenum}" < "${totaldocsperpage}")}

pagenum 作为我在请求 1 中增加页码的计数器名称。

我希望它运行totaldocsperpage 次并停止。但它只是无限运行。非常感谢任何帮助。

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    如果您 comparing numbers 在不需要引号的情况下,也使用 __jexl3 或 __groovy 而不是 __javaScript

    建议检查这一点并在 Condition 中使用 __jexl3 或 __groovy 函数以提高性能

    ${__jexl3(${pagenum} > ${totaldocsperpage})}
    

    【讨论】:

    • 作为我上一个问题的扩展,我对多线程使用了相同的方法。当我尝试使用下面的树结构时,计数器没有为所有 10 个客户正确运行。一旦找到任何客户的匹配项,柜台就会停止。但是我需要同时遍历所有客户的所有页面。请指教。 1.Threadgroup--有10个线程 A.While Controller ${__javaScript(${pagenum}
    • 请提出一个新问题
    【解决方案2】:
    1. 从表达式中删除引号:

      ${__javaScript(${pagenum} < ${totaldocsperpage})}
      
    2. 检查 jmeter.log 文件中是否有任何可疑条目
    3. 如果您收到基于 XML 的响应,最好选择 XPath Extractor

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多