如何在JMeter测试计划中嵌入测试数据集?
目前,我的JMeter测试使用如何在JMeter测试计划中嵌入测试数据集?,jmeter,Jmeter,目前,我的JMeter测试使用CSV数据集配置对我执行的每个HTTP请求迭代有限的输入数据集 但是我不想处理外部文件的麻烦(上传到我的测试运行程序等)——我只想将数据嵌入jmx文件本身 我希望有一个类似于“测试数据”节点的节点,它的工作方式类似于CSV数据集(尤其是EOF上的循环使用),我只是将数据复制/粘贴到测试计划中,而不是使用外部文件 我想我可能可以使用JSR223预处理器来解决这个问题,但是有更好的内置方式吗 编辑:根据注释:无法生成数据。这是我第一次尝试使用JSR223预处理器节点的基
CSV数据集配置
对我执行的每个HTTP请求迭代有限的输入数据集
但是我不想处理外部文件的麻烦(上传到我的测试运行程序等)——我只想将数据嵌入jmx文件本身
我希望有一个类似于“测试数据”节点的节点,它的工作方式类似于CSV数据集(尤其是EOF上的循环使用),我只是将数据复制/粘贴到测试计划中,而不是使用外部文件
我想我可能可以使用JSR223预处理器来解决这个问题,但是有更好的内置方式吗
编辑:根据注释:无法生成数据。这是我第一次尝试使用JSR223预处理器节点的基于脚本的方法:
// This is where the data is embedded. Up to a couple of hundred entries
// is probably fine, more than that will likely be a bad idea.
def messageIdList = ["graffle", "wibble", "wobble", "flobble", "gibble", ...]
def messageIndex = (vars.getIteration() -1) % (messageIdList.size() -1)
println "iteration ${vars.iteration}, size ${messageIdList.size()}, index: ${messageIndex}"
vars.put("messageId", messageIdList[messageIndex]);
messageIndex++
这似乎满足了我的要求,即使是在具有多个线程的线程组中运行。
我不确定vars.getIteration()
到底代表什么,也不清楚变量的确切生存期/范围。但现在可以了
任何更好的答案都会被愉快地接受、标记和投票。如果您想通过语言和语法来实现这一点,正确的语法将是
vars.put(“messageId”、“wibble”)
vars
是类实例的缩写,有关可用的函数和属性,请参阅JavaDoc
更简单的方法是创建一个包含键和值的文本,用tab分隔,复制所有文本
- 请注意,如果您有属性文件,则可以将
=
替换为选项卡
添加到JMeter GUI,然后单击“从剪贴板添加”
它将把所有变量加载到JMeter中,而无需“使用JMeter的GUI手动执行”
.您的意思是在或中加载变量吗?如果数据的格式为user1、user2….、usern或此类数据,则计数器可以帮助您生成此类数据,但如果其完全随机,则最好将其放置在外部文件中。在大数据集的情况下,嵌入jmx文件的解决方案并不好。在testrunner机器上上传一个小文件不是一个大问题,可以通过使用共享存储轻松解决。如果我按照我的回答实际执行了5项操作,那么您提供的用户参数链接看起来是正确的。但我现在已经贴了几百张,看起来效果不错。我不想用JMeter的GUI手工实现。