我的要求是使用不同的起始索引遍历Apache JMeter中的CSV数据集配置。让我们假设我今天已经在JMeter中开始了一个测试计划,并且我的CSV文件有8个变量。我的采样器第一次从第一行运行到第八行。下次我将开始运行测试计划时,我希望采样器从2nd index到8th index中选择值。这样,我想使用CSV数据集配置遍历CSV文件。
我能够使用setUp ThreadGroup和tearDown Thread组为Apache JMeter中运行的每个测试初始化一个计数器。我可以在JMeter中使用_P(count)提取相同的内容。
在setUp Thread组中,我包含了JSR 223 Sampler并编写了类似
的脚本。def file = new File('number')
if (!file.exists() || !file.canRead()) {
number = '1'
}
else {
number = file.text
}
props.put('number', number as String)
在tearDown线程组中,JSR223采样器具有类似
的脚本。def number = props.get('number') as int
number++
new File('number').text = number
我想通过属性文件用计数器循环遍历我的CSV数据集配置文件(每次测试运行都会递增1)
答案 0 :(得分:0)
请检查以下计划:-
输入CSV示例:-
如果Controller具有以下代码:-
${__groovy(vars.get('Used').take(1)!='Y')}
在JSR223后处理器中,我有以下代码:-
def inputFile = new File("C:\\Path\\toFile\\Excel\\OutputCSV.csv")
def lines = inputFile.readLines()
boolean isWrite = false;
lines.each { String line ->
if(line.contains('Used'))
{
inputFile.write(line + '\n')
}
else
{
if(line.startsWith('Y'))
{
inputFile.append(line + '\n')
}
else if (!isWrite)
{
inputFile.append('Y' + line + '\n')
isWrite = true;
}
else
{
inputFile.append(line + '\n')
}
}
}
如您所见,在第一次运行样品1中执行4次,在第二次样品中执行3次。 这不是最好或最好的代码,请先尝试。 请检查是否有帮助。