Java 如何在jmeter中使用csv文件实现多个http请求?

Java 如何在jmeter中使用csv文件实现多个http请求?,java,csv,jmeter,performance-testing,Java,Csv,Jmeter,Performance Testing,我想通过csv文件多次模拟一个用户有2个http请求和1个http请求。下面是我的结构 Test Plan - Thread Group *[No. of threads = 2, Ramp-up = 1, Loop count = 1]* - - View Results Tree - - Simple Controller - - - http request 1 - - - http request 2 - - - while controller *[condition = ${no}

我想通过csv文件多次模拟一个用户有2个http请求和1个http请求。下面是我的结构

Test Plan
- Thread Group *[No. of threads = 2, Ramp-up = 1, Loop count = 1]*
- - View Results Tree
- - Simple Controller
- - - http request 1
- - - http request 2
- - - while controller *[condition = ${no} (variable from csv file)]*
- - - - http request 3
- - - - CSV Data set Config *[Recycle on EOF = False, Stop on EOF = False, Sharing Mode = All threads] and CSV file has 3 records*
预期:应执行1个用户

http请求1、http请求2、http请求3、http请求3、http请求3(因为csv有3条记录)


  • 如果我在EOF=False时保持循环,在EOF=False时停止它将继续运行请求,直到脚本结束,并且在数据结束后(即3行)它开始抛出错误
  • 如果我在EOF=True时保持循环,在EOF=True时停止它只为1个用户运行并停止
  • 如果我在EOF=True时保持循环,在EOF=False时停止它将继续运行请求,直到脚本结束
  • 如果我在EOF=False时保持循环,在EOF=True时停止它只为1个用户运行并停止


但无法按照我的预期进行模拟。任何帮助都将不胜感激。谢谢。

实现你的目标是可能的

http请求1、http请求2、http请求3、http请求3、http 请求3(因为csv有3条记录)

在While控制器中设置了以下条件

${__jexl3("${UNAME}"!="<EOF>")}
${uuuujexl3(${UNAME})!=“”)
其中UNAME是一个列名

由于条件是在while控制器中执行的,因此在执行http请求3之前需要进行额外的条件检查

请参见下面的控件结构。

希望这是有用的

也可以通过以下修改多次重复测试。添加了一个JSR223采样器,用于重置变量,并将文本EOF添加到CSV文件的末尾


GitHub中提供了示例计划和示例

实现你的目标是可能的

http请求1、http请求2、http请求3、http请求3、http 请求3(因为csv有3条记录)

在While控制器中设置了以下条件

${__jexl3("${UNAME}"!="<EOF>")}
${uuuujexl3(${UNAME})!=“”)
其中UNAME是一个列名

由于条件是在while控制器中执行的,因此在执行http请求3之前需要进行额外的条件检查

请参见下面的控件结构。

希望这是有用的

也可以通过以下修改多次重复测试。添加了一个JSR223采样器,用于重置变量,并将文本EOF添加到CSV文件的末尾

GitHub中提供了示例计划和示例

  • 将您的条件修改为:

    ${__jexl3("${myVar}" != "<EOF>",)}
    
    ${uuuujexl3(${myVar})!=”,)}
    

  • 将CSV数据集配置作为While控制器的子项,并按如下方式进行配置:

  • 在CSV数据集配置后添加,并与条件相同:

  • 将采样器作为If控制器的子级
  • 就这样,您应该能够运行脚本并获得与CSV文件中的行数相等的执行数:

  • 将您的条件修改为:

    ${__jexl3("${myVar}" != "<EOF>",)}
    
    ${uuuujexl3(${myVar})!=”,)}
    

  • 将CSV数据集配置作为While控制器的子项,并按如下方式进行配置:

  • 在CSV数据集配置后添加,并与条件相同:

  • 将采样器作为If控制器的子级
  • 就这样,您应该能够运行脚本并获得与CSV文件中的行数相等的执行数:


  • 谢谢Dmitri T和Janesh Kodikara。。。这很有效。非常感谢(y)嘿@Dmitri它没有运行多个线程。我已将线程数增加到2,但只执行了一次。有什么建议吗?谢谢Dmitri T和Janesh Kodikara。。。这很有效。非常感谢(y)嘿@Dmitri它没有运行多个线程。我已将线程数增加到2,但只执行了一次。有什么建议吗?