【问题标题】:Parallel HTTP Requests sampler - appending URLs in runtime并行 HTTP 请求采样器 - 在运行时附加 URL
【发布时间】:2021-01-22 01:01:19
【问题描述】:

我正在尝试设置并行 HTTP 请求采样器,以便它与我在之前的响应中从 JSON 获得的 URL 一起工作。我找到了这个解决方案Paralell HTTP Request dynamically,其中 Dmitry T 提供了用于将 URL 附加到并行 HTTP 请求中的脚本,但是这个脚本对我不起作用。我可以看到在脚本执行后 URL 列表得到了更新,但是这些 URL 没有被采样器拾取来执行。

这是初始列表或网址

脚本执行结果

JMeter 测试运行结果

我做错了什么?

【问题讨论】:

    标签: jmeter jmeter-plugins


    【解决方案1】:

    似乎parallelSampler.data 在这两个采样器之间不知何故迷路了,我不记得当时我使用的是什么版本的 JMeter/插件,但我很确定如果你切换到当前的采样器应该可以解决问题,而且您不必使用这种反射。

    1. JSR223 PreProcessor 添加为并行 HTTP 请求采样器的子项

    2. 将以下代码放入“脚本”区域:

      def row1 = new org.apache.jmeter.testelement.property.CollectionProperty()
      row1.addItem('https://example.com')
      def row2 = new org.apache.jmeter.testelement.property.CollectionProperty()
      row2.addItem('https://jmeter.apache.org')
      sampler.data.addItem(row1)
      sampler.data.addItem(row2)
      

    某种形式的证据:

    有关 JMeter 中 Groovy 脚本的更多信息:Apache Groovy - Why and How You Should Use It

    【讨论】:

    • Dmitry,非常感谢您的及时和有用的回复。我稍微修改了脚本,以便能够动态填充 URL 列表urlsList = vars.get("URLs").tokenize(",") for (int i = 0; i < urlsList.size(); i++) { def row = new org.apache.jmeter.testelement.property.CollectionProperty() row.addItem(urlsList[i]) sampler.data.addItem(row) log.info("ROWS ${row}") },所以它似乎成功了!假设没有机会在 View Results in Table 侦听器中捕获这些采样器,我是否正确?
    • 嗨@dmitry-t,您知道是否有办法更改并行控制器内部执行的请求的标签?它们总是被命名为 -0 、 -1 等,当并行控制器用于网站的不同部分时,这使得在侦听器输出中无法区分它们。提前感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 2020-11-23
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多