JMeter:无法将 CSV 变量复制到另一个变量中
Posted
技术标签:
【中文标题】JMeter:无法将 CSV 变量复制到另一个变量中【英文标题】:JMeter: Can't copy CSV variable into another variable 【发布时间】:2014-11-17 11:51:47 【问题描述】:我正在将 .csv 文件中的令牌读入变量 CSV_ACCESS_TOKEN。我在一个 ThreadGroup 下有 3 个请求。我想要一个登录用户加载页面三次(或 N 次)的场景。所以1个线程循环N次。读取一次令牌后,我不想在循环中读取下一个令牌,而是想用相同的令牌循环 URL 三(或 N)次。
现在我正在从 CSV 读取数据,并在“Once only Controller”中使用“BeanShell Sampler”。在示例中,我使用如下行: vars.put("ACCESS_TOKEN",vars.get("CSV_ACCESS_TOKEN")。但是 BeanShell 采样器记录在我的摘要结果中。我不想要那个。
我尝试使用“用户定义变量”控制器并尝试分配值 $__evalVar(CSV_ACCESS_TOKEN),但它为 $ACCESS_TOKEN 返回空值。当我使用 $CSV_ACCESS_TOKEN 时,它会显示我的值。如果我在 UDV 控制器中使用其他变量而不是 CSV_ACCESS_TOKEN,它会分配其他变量的值,我会看到 $ACCESS_TOKEN 的值。
为什么 CSV 变量没有分配常规变量中的值。
谢谢 维奈
【问题讨论】:
【参考方案1】:如果你有 3 个请求,我建议你在第一个请求上放置一个 Beanshell 预处理器,它将 CSV_ACCESS_TOKEN 复制到 ACCESS_TOKEN。
您的每个示例都可以使用 ACCESS_TOKEN,因此每 3 个周期访问一次 CSV。
每次预处理器运行时(即在每个第一个请求之前),CSV_ACCESS_TOKEN 都会从数据集中更新。
如果是同一个请求,您不想重复,您可以查看测试片段和模块的使用情况,这样您就可以从各种控制器运行相同的示例。首先从一个带有预处理器的简单控制器,然后从一个循环控制器执行另外 2 个请求。
我认为您已经用于操作 CSV 值的代码将在这种情况下继续工作。
【讨论】:
请否决者解释一下这个答案有什么问题?以上是关于JMeter:无法将 CSV 变量复制到另一个变量中的主要内容,如果未能解决你的问题,请参考以下文章
JMeter CSV Dataset Config:如何在同一个线程中移动变量?
Jmeter组件:参数化实现之CSV Data Set Config
Powershell将文件从环境变量复制到另一个环境变量的zip文件夹