将变量链接到JMeter中的数据集
我正在使用JMeter3.2创建一些性能测试 我有一个设置,其中一个线程组有多个线程(用户),每次执行多个循环请求一个资源,形成一个服务器 每个线程都通过一个一次性控制器,该控制器从服务器检索令牌,标识用户,并且在所有后续请求中都是必需的。每次生成的令牌都不同,我无法将其存储在数据集(csv)中,因为它稍后将无效 我有一个数据集(.csv文件),其中包含测试用户的用户名和密码 到目前为止还不错。。现在,线程需要在服务器上请求一个需要发送令牌的资源。第一次很顺利,但第二次就开始搞砸了。似乎每次迭代都使用数据集中下一行的数据,但检索到的令牌(来自一次性控制器)并没有链接到所使用的数据行(用户名和密码),因此会发生如下情况: thread1:data1/token1-良好 thread2:data2/token2-良好 thread2可能首先完成并开始新的迭代: thread2:data1/token2-错误 thread1:data2/token1-错误 所以我的问题是:如何将检索到的令牌链接到数据集中的一行(作为变量),以便在每次将该数据用于请求时都发送正确的令牌 编辑 我有个主意。创建一个哈希表,将数据集中的一些数据作为键,将令牌作为值,但我有一些问题。我创建了以下代码:将变量链接到JMeter中的数据集,jmeter,Jmeter,我正在使用JMeter3.2创建一些性能测试 我有一个设置,其中一个线程组有多个线程(用户),每次执行多个循环请求一个资源,形成一个服务器 每个线程都通过一个一次性控制器,该控制器从服务器检索令牌,标识用户,并且在所有后续请求中都是必需的。每次生成的令牌都不同,我无法将其存储在数据集(csv)中,因为它稍后将无效 我有一个数据集(.csv文件),其中包含测试用户的用户名和密码 到目前为止还不错。。现在,线程需要在服务器上请求一个需要发送令牌的资源。第一次很顺利,但第二次就开始搞砸了。似乎每次迭代
import java.util.Hashtable;
map = new Hashtable();
vars.putObject("map", map);
但它引发了以下错误:
java.util.Hashtable cannot be cast to java.lang.String
我终于找到了答案,尽管这可能不是最理想的解决方案。我所做的是创建一个属性(变量不起作用),它是一个JSONObject。在这里,我可以存储一个id(用于我的数据)和链接到它的令牌。我将其转换为字符串并存储在属性中 在需要令牌的http请求的预处理器中,我检索属性并将其解析回JSONObject,并可以使用id查找令牌