当前位置: 首页 > 知识库问答 >
问题:

JMeter:如何在多个线程组循环中重用/重新打开CSV?

曹镜
2023-03-14

在JMeter中,我有一个用户的CSV列表,每个用户都应该上传一定数量的文件。这些文件列在第二个CSV中。每个用户必须上载所有文件。由于服务器不能同时处理所有线程,我将线程组设置为使用X个用户并循环Y次,这样最终所有用户都上传所有文件。

 Test plan
 - CSV Data Set Config (contains users) --> Recycle = false, Stop thread on EOF = false
 - Thread Group (X users, Y loops)
 - - While Controller ( ${__javaScript("${uploadFile}"!="<EOF>")} )
 - - - CSV Data Set Config (contains files) --> Recycle = false, Stop thread on EOF = false
 - - - HTTP Request (upload file)

作为一个示例,使用3个线程/用户和2个循环的结果如下所示:

**first loop**
user 1
  upload file 1
  upload file 2
  upload file 3
user 2
  upload file 1
  upload file 2
  upload file 3
user 3
  upload file 1
  upload file 2
  upload file 3
**second loop**
user 4
user 5
user 6

来自第二个循环的用户也应该遍历files-CSV并上传文件。知道我做错了什么吗?提前谢谢!!

共有1个答案

邢乐
2023-03-14

我认为您需要在EOF上启用回收。我还会检查jmeter的日志,以获取关于jmeter为什么不再发送任何请求的某种提示。

从jmeter文档中,

When the end of file (EOF) is reached, and the recycle option is true, 
reading starts again with the first line of the file.

If the recycle option is false, and stopThread is false, then all the 
variables are set to <EOF> when the end of file is reached. This value 
can be changed by setting the JMeter property csvdataset.eofstring . 
 类似资料:
  • 我在同一个目录中有几个具有相同结构的。json文件。我想从每个json文件的一些键创建一个具有值的唯一csv文件。 通过一个文件循环,一切都正常。下面是脚本的快照:

  • 但我得到一个错误说 所以我尝试使用另一个变量的这是但是我仍然收到相同的错误消息 我如何解决这个问题?或者有什么其他方法我可以用来做这件事? 我在这里使用的两个表在字段User_Name和Transaction_Date上具有相同的值,如所示

  • 我将JMETER与我的Powershell脚本一起使用,我的JMX(XML for JMETER)文件已经创建,我以非GUI模式启动JMETER,并将JMX传递给它。 但之前它是有效的,但我添加了更多线程组和多个HTTP请求,现在可能有一些堆大小的问题。 所以我想到了使用我的自动化脚本(Powershell)从命令行禁用一些线程组。 如何通过命令行禁用JMX文件中的一些线程组?

  • 问题内容: 我试图编写一个文件监视器,它将检查文件是否添加了新行,该监视器实际上是一个线程,它将始终由randomaccessfile读取该行。 这是监视器的核心代码: 这是一些帮助类: 这是调用监视器的示例: 现在,我的问题是,如果我仅调用以下代码,代码就可以很好地工作: 这将监视文件的行追加,并通知侦听器。 但是,当我致电: 这意味着我想监视另一个文件而不是之前。 因此,在Monitor中,我

  • 这里我用java开发。 我有一个for循环中的线程,我想连续运行5次。不幸的是,循环在第二次运行时停止,出现了一个错误: 异常在线程"main"java.lang.IllegalThreadStateExctive在java.base/java.lang.Thread.start(Thread.java:793) 我知道这个错误是什么意思,但是我要求他在确定完成线程时恢复循环,这样就不会有任何错误

  • 我希望我的 print 语句在循环之外,这样语句就不会一遍又一遍地打印相同的内容。下面的 for 循环只是将一个数组中的数字与另一个数组进行对比,以找出找到多少个匹配项。定义上面的变量并打印下面的语句会导致“变量未初始化错误”,这是可以理解的。