JMeter:无法将CSV变量复制到另一个变量中

时间:2014-11-17 11:51:47

标签: performance jmeter performance-testing

我正在将.csv文件中的令牌读入变量CSV_ACCESS_TOKEN。我在一个ThreadGroup下有3个请求。我想要一个登录用户加载页面三次(或N次)的场景。所以1个线程循环N次。在读取令牌一次之后,我不想在循环中读取下一个令牌但是想要使用相同的令牌循环URL三(或N)时间。

现在我正在从CSV读取数据,并使用" BeanShell Sampler"内部"一次只有控制器"。在示例中,我使用的行如下:vars.put(" ACCESS_TOKEN",vars.get(" CSV_ACCESS_TOKEN")。但BeanShell采样器记录在我的摘要结果中。我不# 39;我想要那个。

我尝试使用"用户自定义变量"控制器并尝试分配值$ {__ evalVar(CSV_ACCESS_TOKEN)},但它返回$ {ACCESS_TOKEN}的空值。当我使用$ {CSV_ACCESS_TOKEN}时,会显示值。如果我在UDV控制器中使用其他变量而不是CSV_ACCESS_TOKEN,它会从其他变量中分配值,我会看到$ {ACCESS_TOKEN}的值。

为什么CSV变量没有在常规变量中赋值。

由于 维奈

1 个答案:

答案 0 :(得分:0)

如果您有3个请求,我建议您在第一个请求上放置Beanshell预处理器,将CSV_ACCESS_TOKEN复制到ACCESS_TOKEN。

您的每个样本都可以使用ACCESS_TOKEN,因此每3个循环访问一次CSV。

每次预处理器运行时(即每个第一个请求之前),CSV_ACCESS_TOKEN将从数据集中更新。

如果它是您不希望复制的相同请求,您可以查看测试片段和模块的使用,以便您可以从各种控制器运行相同的样本。首先从附加预处理器的简单控制器开始,然后从循环控制器再执行2个请求。

我认为您已用于操作CSV值的代码将继续在此方案中运行。