【发布时间】: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