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

在jmeter中生成动态名称以保存之前请求的数据时,如何在csv数据集配置中传递动态文件名?

潘佐
2023-03-14

我有一个超文本传输协议请求,其响应来自嵌套的json,并使用groovy,我根据条件将数据保存在不同的csv文件中。csv文件的名称是动态生成的,并使用vars.put()函数vars.put("_cFileName",cFileName.toString())保存在变量中;

当尝试在csv数据集配置中使用此变量时,请在此处输入图像描述

获取错误消息2022-01-19 16:58:39370 error o.a.j.t.JMeterThread:测试失败!java.lang.IllegalArgumentException:文件${_cFileName}必须存在并且可读

它不会将名称转换为实际文件名

但是如果文件名不是动态的,并且变量是在测试计划中的用户定义变量下定义的,那么它能够转换成实际的文件名吗?

有没有什么方法可以使用在previos请求后处理器中创建的动态名称?

共有1个答案

傅高逸
2023-03-14

你不能,根据JMeter测试元素执行顺序,配置元素在所有其他元素之前执行,CSV数据集配置是一个配置元素,因此它在设置任何JMeter变量之前被初始化。

解决方案将转移到__CSVRead()函数,JMeter函数在调用时进行求值,因此可以在那里提供动态文件名,如有需要,请参阅How to Pick Different CSV Files at JMeter Runtime指南以了解更多详细信息。

 类似资料:
  • 对JMeter来说很新(也是一个很长时间的堆栈溢出侦听器,但第一次调用时,所以请对我放心),所以任何帮助都将不胜感激。 我正在尝试设置一个JMeter测试,该测试使用多个动态生成的访问令牌来跨场景运行。我目前有一组使用CSV数据集配置的数据,其中包含用户电子邮件和密码的登录凭据,例如: 接下来,我向生成accessToken的Login服务发送HTTP POST请求。然后,我使用JSON Extr

  • 我正在为REST API编写JMeter测试。这是一个post请求,我们需要在请求正文中发送一个大的xml内容。所以我使用CSV数据集配置来参数化身体部位中的xml内容。 我为HTTP请求采样器创建了一个CSV数据集配置。 在csv文件中,我正在编写整个xml内容。1行用于1个请求。它工作得很好。 但是我发现这有点复杂,因为我们必须在csv文件中维护大量的xml。 有没有办法在csv文件中只写入x

  • 我在用Mybatis的春靴。我在一个映射器XML文件中有以下查询。 实际上,“anotherdatabase”在我的查询中是硬编码的,因为我不想只为这个查询添加另一个数据源。但是,我如何动态地创建这个“另一个数据库”名称(可能在某些属性文件中配置它),因为它可能在不同的部署环境中发生变化?

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

  • 问题内容: 我需要获取SQL Server中的所有表名。为此,我使用以下代码: 我需要使用动态数据库名称。为此,我尝试使用以下代码: 但这是行不通的。我怎样才能做到这一点 ? 问题答案: 或简单地:

  • 我尝试使用以下代码来完成此操作: 我得到以下输出: sim(测试,“测试”)