【问题标题】:Link variable to data set in JMeter将变量链接到 JMeter 中的数据集
【发布时间】:2017-07-06 22:39:43
【问题描述】:

我正在使用 JMeter 3.2 创建一些性能测试。

我有一个设置,其中一个线程组有多个线程(用户),它们每次执行多个循环请求资源,形成一个服务器。

每个线程都经过一个一次性控制器,该控制器从服务器检索令牌,该令牌标识用户,并且在所有后续请求中都是必需的。每次生成的令牌都不一样,我不能将它存储在数据集(csv)中,因为它以后会失效。

我有一个数据集(.csv 文件),其中包含我的测试用户的用户名和密码。

到目前为止一切顺利.. 现在线程需要请求服务器上的资源,需要发送令牌。第一次很顺利,但第二次开始搞砸了。似乎每次迭代都使用数据集中下一行的数据,但检索到的令牌(从唯一的控制器)没有链接到使用的数据行(用户名和密码),所以会发生这样的事情:

thread1: data1/token1 - 好

thread2: data2/token2 - 好

也许 thread2 先完成并开始新的迭代:

thread2: data1/token2 - 错误

thread1: data2/token1 - 错误

所以我的问题是:如何将检索到的令牌链接到数据集中的一行(作为变量),以便每次将该数据用于请求时都会发送正确的令牌?

编辑 我有个主意。使用来自数据集中的一些数据作为键和令牌作为值创建一个 Hashtable,但我有一些问题。我创建了以下代码:

import java.util.Hashtable;
map = new Hashtable();
vars.putObject("map", map);

但它抛出了以下错误:

java.util.Hashtable cannot be cast to java.lang.String

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    我终于想通了,尽管它可能不是最佳解决方案。我所做的是创建一个属性(变量不起作用),它是一个 JSONObject。在此我可以存储一个 id(用于我的数据)和链接到它的令牌。我将其转换为字符串并将其存储在属性中。

    在需要令牌的 http 请求的预处理器中,我检索属性并将其解析回 JSONObject,然后可以使用 id 查找令牌。

    【讨论】:

      猜你喜欢
      • 2021-11-16
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      相关资源
      最近更新 更多