【问题标题】:jmeter: how to create ArrayList in Loop fill it in one http request and reuse it in another http requestjmeter:如何在循环中创建 ArrayList 将其填充到一个 http 请求中并在另一个 http 请求中重用它
【发布时间】:2018-05-10 02:39:42
【问题描述】:

我是 Jmeter 的新手,面临以下问题。

我有以下 Jmeter 项目。

我想:

  1. 在 Loop 下创建两个 ArrayList(每个循环迭代应该 重新初始化列表)
  2. 在Http请求1的后处理器中填写Lists。
  3. 在 HTTP 请求 2 的预处理器中做出决策并迭代列表

最好的方法是什么?

我在常量计时器之后尝试了一个 beanShell PreProcessor,但无法访问 vars,并且在尝试在 HTTP1 PostProcessor 中执行 .add() 时也出现异常

在 BeanShell Sampler 中创建列表,在常量计时器之后, 我愿意:

import java.util.ArrayList;

ArrayList list_1 = new ArrayList();
ArrayList list_2 = new ArrayList(); 

list_1.add("TEST_0");
log.info("");
log.info("============ Avail list:" + list_1);

vars.put("list_1", list_1);
vars.put("list_2", list_2);

log.info("Lists created and populated !!!!");
log.info("");

但得到以下异常:

org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval    Sourced file: inline evaluation of: ``import java.util.ArrayList;  try {    ArrayList list_1 = new ArrayList();     ArrayL . . . '' : Error in method invocation: Method put( java.lang.String, java.util.ArrayList ) not found in class'org.apache.jmeter.threads.JMeterVariables'

谢谢。

【问题讨论】:

    标签: jmeter


    【解决方案1】:
    1. 将vars.put("list_1", list_1);替换为vars.putObject("list_1", list_1);
    2. 在需要时使用vars.getObject("list_1");
    3. 用JSR223 PreProcessor 替换Beanshell PreProcessor 并确保使用Groovy 作为JMeter Best Practices 中推荐的脚本语言

    【讨论】:

      【解决方案2】:

      您可以使用“JSR223 PreProcessor”作为数组列表,如下所示:-

      def list1 = []
      def list2 = []
      
      list1 << ("TEST_0");
      list1 << ("TEST_1");
      list2 << ("TEST_X");
      list2 << ("TEST_Y");
      
      log.info("============ Avail list:" + list1);
      log.info("============ Avail list:" + list2);
      
      vars.putObject("List_1",list1)
      vars.putObject("List_2",list2)
      

      在 JSR223 PostProcessor 中获取它

      def y = vars.getObject("List_1");
      log.info("Get List>>>>>"+y)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-20
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        相关资源
        最近更新 更多