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

如何在JMeter中将文件传递给CSV采样器

后烨煜
2023-03-14

我有一个包含CSV文件的目录。每个文件都包含我想用JMeter发出的GET请求列表。我想要做的是读取一个目录中的所有文件,然后循环通过每个CSV在JMeter中发送请求。文件的数量不一致,所以我不想将文件名硬编码到CSV采样器中。

因此,实际上,我希望读取目录中的所有文件,并将这些文件存储在一个数组变量中。循环遍历数组并将CSV文件发送给CSV采样器,然后CSV采样器读取CSV文件并将内容传递给HTTP请求采样器以发送GET请求。

我创建了一个beanshell脚本来读取目录中的文件并将其存储在数组中,但当我试图将其传递给CSV config元素时,我得到了错误,说明变量不存在。

我尝试了另一个beanshell脚本来读取文件并将行作为变量传递给HTTP请求采样器,但问题是,它会将每个线程的所有文件内容存储在内存中。

我想知道读取文件、发送请求和使用响应数据生成报告的最佳方法

共有1个答案

轩辕煌
2023-03-14
  1. 您将无法使用Beanshell填充CSV数据集配置,因为CSV数据集配置是一个配置元素,并且根据执行顺序用户手册章节,配置元素在执行之前执行。
  2. 由于JMeter 3.1不应使用Beanshell,建议切换到JSR223元素和Groovy语言

我建议使用目录列表配置插件,它扫描提供的文件夹(在您的例子中是CSV文件),并将找到的文件路径存储到一个JMeter变量中

因此您可以将目录列表配置与__stringfromfile()或__csvread()函数结合使用,这或多或少应该是实现您需求的好方法

 类似资料:
  • 但是根据目前的需求,我们需要从mongodb中获取数据,将这些动态值传递给HTTP请求采样器,我的意思是我们需要根据数据库中的动态值构建HTTP请求采样器? 你能不能请谁帮我一下。

  • 我不熟悉Jmeter,也不熟悉如何使用POC对web应用程序进行负载测试。 我正在尝试做的事情: 我总共有4个用户登录(外科医生)。每个登录都与'n'个病人相关联。 我已经创建了2个CSV文件 1。一个带有外科医生的用户登录和密码 2。另一个CSV文件包含PatientName、PatientID和与该患者相关联的外科医生,如下所示。 null 线程组(4个用户,按1秒递增时间,1个循环)-CSV

  • 如果我在IntelliJ IDE中测试这一点,只需将writeLine方法包装到main方法中,就可以正常工作 我的问题是:groovy sampler是否理解Java(在我看到的一篇文章中提到groovy理解99%的Java语法)。曾经有人成功地使用JMeter将数据写入csv文件吗?

  • 我试图使用JSR223采样器模拟并行ajax请求,如这里提到的https://www.blazemeter.com/blog/how-load-test-ajaxxhr-enabled-sites-jmeter ,我在测试计划中启用了cookie管理器。 任何关于我做错什么的帮助都是很好的。

  • 我希望能够传递一个CSV文件,其中包含JMeter测试(CSV数据集配置)要使用的参数,而不是将CSV数据源硬编码为JMeter检测的一部分。这可能吗?我似乎在JMeter的命令行选项列表中的任何位置都找不到这一点。 JMeter 数据集配置参考。

  • 我试图以顺序方式为JMeter中的每一个事件传递不同的CSV值。我申请了 > 循环计数 计数器 这样,我就可以为多个用户的每次事件传递不同的值。但当我运行多用户多次迭代时,我的脚本会失败。它不是在拾取顺序值。我的豆壳取样器代码-