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

5m1hhzi4  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(198)

我想通过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条记录)

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

但无法按我的期望模拟。任何帮助将不胜感激。谢谢。

eaf3rand

eaf3rand1#

你的目标是有可能实现的
http请求1、http请求2、http请求3、http请求3、http请求3(因为csv有3条记录)
在CSV数据集配置中具有以下配置

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

${__jexl3("${UNAME}"!="<EOF>")}

其中,UNAME是列名
由于条件是在控制器中执行的,因此在执行http请求3之前需要进行附加条件检查

请参见下面的控件结构。

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

示例JMeter test计划和CSV file可在GitHub中找到。

rnmwe5a2

rnmwe5a22#

1.将您的While Controller条件修改为如下所示:

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

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

1.在CSV数据集配置后添加If控制器,并使用与条件相同的__jexl3()函数:

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

相关问题