JMeter CSV数据集配置:如何移动同一线程中的变量?

问题描述:

我使用的是CSV数据集config元素,它是从文件中读取这样的:JMeter CSV数据集配置:如何移动同一线程中的变量?

abd 
sds 
ase 
sdd 
ssd 
cvv 

其中,基本上,拥有一批3个字母的随机字符串的。

我将它们分配给一个名为${random_3}的变量。

现在,我想在同一个线程中多次使用此列表中的值,但是每次我都想移到下一个。例如,我希望第一个采样器使用abd,第二个使用sds,然后使用ase等。但是,如果我只使用${random_3},那么只有第一个采样器(abd)用于任何涉及到的地方。有没有一种方法可以指定循环来自线程中CSV数据集的值?

CSV数据集配置这个工作正常。所有的值都需要在文件的一列中,并按照描述将它们分配给变量。

创建一个线程组对于多个用户而言,您希望迭代该文件(即对HTTP请求进行操作)具有尽可能多的线程。假设1个用户,设置线程数为1,循环计数为1

线程组内,您将需要添加一个回路控制器当控制器。你表示你想要遍历整个数据集。如果你添加一个循环控制器,你需要将循环计数设置为6,因为你有6个值,每个值一个。或者(更容易处理整个文件)添加一个While Controller而不是Loop Controller,并将$ {random_3}设置为while条件。

设置CSV数据集回收的EOF和EOF 停止线程值正确是很重要的。如果您计划多次迭代文件,则必须将“EOF上的回收”设置为True(即指示jMeter返回到CSV文件的顶部)。如果您使用的是循环控制器,则将“停止线程在EOF上”设置为False如果您正在使用while控制器并希望在读取整个csv数据集后停止,则使用true

将CSV数据集配置添加为控制器的子项以及HTTP请求。使用您想要使用的任何侦听器查看结果。

仅当每个线程迭代开始时,CSV数据集才会在文件中移动。

你可以使用Raw Data Source预处理器来移动每个请求的文件,这就是你的解决方案。

+0

谢谢我看了一下,但它似乎并没有直接关系到我的用例,并且总体上有点烦躁。 –

+0

其实它是解决方案。你可以在项目的邮件列表中询问你应该如何使用它来得到你想要的。 –

+0

谢谢Andrey,我会再检查一次。我对这部分的要求很简单,并且在beanshell中由一个简单的随机字符串生成器解决。 –

请注意,您需要具有给定变量名称的值在同一列中。

否则:abd sds ase sdd ssd cvv是从

abd 
sds 
ase 
sdd 
ssd 
cvv 

第一有6个变量与每一个值非常不同;第二个变量有6个值。

+0

是的,谢谢我意识到这一点,我希望他们被分配到相同的变量(但每次引用时都会有一个新值) –

更新:

CSV数据集似乎并不适合于此目的。

我最终创建了一些简单的beanshell脚本,根据需要创建随机1,2或3个字母的单词,另一个从大集合中读取随机单词。这样,每次他们被称为他们给一个随机值。他们被称为是这样的:

${__BeanShell(getRandomStr(3))} 

${__BeanShell(getRandomWord())