我想通过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个用户运行并停止。
但无法按我的期望模拟。任何帮助将不胜感激。谢谢。
2条答案
按热度按时间eaf3rand1#
你的目标是有可能实现的
http请求1、http请求2、http请求3、http请求3、http请求3(因为csv有3条记录)
在CSV数据集配置中具有以下配置
在While控制器中设置了以下条件。
其中,UNAME是列名
由于条件是在控制器中执行的,因此在执行http请求3之前需要进行附加条件检查
请参见下面的控件结构。
希望这个有用
也可以通过以下修改重复测试几次。添加了一个JSR223采样器用于重置变量,并将文本EOF添加到CSV文件的末尾。
示例JMeter test计划和CSV file可在GitHub中找到。
rnmwe5a22#
1.将您的While Controller条件修改为如下所示:
1.将CSV数据集配置作为While控制器的子项,并按如下方式进行配置:
1.在CSV数据集配置后添加If控制器,并使用与条件相同的__jexl3()函数:
1.将采样器作为If控制器的子级
1.就是这样,您应该能够运行脚本,并获得与CSV文件中的行数相等的执行次数: