【问题标题】:JMeter: Can't copy CSV variable into another variableJMeter:无法将 CSV 变量复制到另一个变量中
【发布时间】: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 变量没有分配常规变量中的值。

谢谢 维奈

【问题讨论】:

    标签: performance jmeter performance-testing


    【解决方案1】:

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

    您的每个示例都可以使用 ACCESS_TOKEN,因此每 3 个周期访问一次 CSV。

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

    如果是同一个请求,您不想重复,您可以查看测试片段和模块的使用情况,这样您就可以从各种控制器运行相同的示例。首先从一个带有预处理器的简单控制器,然后从一个循环控制器执行另外 2 个请求。

    我认为您已经用于操作 CSV 值的代码将在这种情况下继续工作。

    【讨论】:

    • 请否决者解释一下这个答案有什么问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 2019-09-06
    相关资源
    最近更新 更多