jmeter控制读取CSV文件数据发送请求完毕后停止压测

在JMeter中,如果你想让线程组循环读取文件中的数据并发送请求,直到文件中的数据用尽后自动停止线程组,可以采用CSV Data Set Config元件配合合适的线程组设置来实现。

以下是如何配置的具体步骤:

步骤 1: 添加CSV Data Set Config

1. 右键点击你的线程组,选择“添加”(Add)> “配置元件”(Config Element)> “CSV Data Set Config”。

2. 在CSV Data Set Config配置界面,设置以下参数:

     • 文件名(Filename):浏览并选择包含数据的CSV文件路径。
     • 变量名称(Variable Names):逗号分隔的变量列表,对应CSV文件中的列名。
     • 回收期(Recycle on EOF):如果设置为False,当文件数据读取完毕后,不会重新开始读取;如果希望读完就停止,保持False。
  • 停止线程(Stop thread on EOF):设置为True,这样当文件数据读取完毕后,对应的线程将会停止执行。
     • 共享模式(Sharing mode):根据你的测试需求选择,通常如果每个线程读取不同的数据行,选择“当前线程”(Current thread)。

步骤 2: 配置线程组

1. 在线程组设置中,确保Loop Count(循环次数)设置为“永远”(Forever),或者设置为一个大于你预计能完成所有数据读取的大数字,

但如果你设置了CSV Data Set Config的Stop thread on EOF为True,实际上线程会在数据读完后自动停止,Loop Count的设置在这种情况下不是必须的。

步骤 3: 使用变量

1. 在你的HTTP请求或其他需要使用CSV数据的取样器中,通过${变量名}的形式引用CSV Data Set Config中定义的变量。

示例:

假设你有一个CSV文件,里面包含了用户ID和密码两列,你想要为每个用户ID发起登录请求。你已经在CSV Data Set Config中设置了Variable Names为:userId,password,并且设置了Stop thread on EOF为True。

然后,在你的HTTP请求中,你就可以这样使用变量:

  • 请求URL:http://example.com/login

  • 方法:POST

  • Body Data 或 Parameters:

  userId=${userId}
       password=${password}

这样,JMeter会为CSV文件中的每一行数据发起一个请求,一旦所有数据都被读取并使用过,相应的线程就会自动停止。

 默认情况下,JMeter在处理POST请求的参数时,会尝试去除参数值中的引号,以避免服务器端解析错误。然而,如果参数值本身就需要包含引号(如JSON格式的数据),那么这种行为就会导致问题。

因此,当你设置“Allow quoted data”为True后,JMeter就不会移除参数值中的引号,而是直接将它们作为参数的一部分发送给服务器,这样就能确保数据格式的正确性。

posted @ 2024-06-12 14:27  小白成长记-yan  阅读(12)  评论(0编辑  收藏  举报