当前位置: 首页 > 知识库问答 >
问题:

在Apache JMeter中使用变化的起始索引迭代CSV数据集配置

元景天
2023-03-14

我的要求是在Apache JMeter中使用变化的起始索引迭代CSV数据集配置。假设我今天在JMeter中启动了一个测试计划,并且我的CSV文件有8个变量。第一次我的采样器会从第一排运行到第八排。下一次我将开始运行我的测试计划时,我希望采样器从第2个索引到第8个索引选取值。以这种方式,我希望使用CSV数据集配置迭代CSV文件。

我能够使用setUp ThreadGroup和tearDown Thread group为Apache JMeter中的每次测试运行初始化一个计数器。我可以在JMeter中使用_p(count)提取相同的内容。

在setUp线程组中,我包含了JSR223采样器,并编写了如下脚本

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)

共有1个答案

范浩宕
2023-03-14

请查阅以下图则:-

输入CSV示例:-

如果控制器具有以下代码:-

${__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次。这不是最好的或最好的代码,只是第一次尝试。请检查是否有帮助。

 类似资料:
  • 问题内容: 我试图根据当前正在另一个列表上迭代的索引显示来自其他列表的值,但无法弄清楚如何访问各个项目。 如你所见,我尝试使用它,但是它什么也不显示,它只是创建一个空的表头元素。 我的其他数组在视图中的定义如下,如果删除,则可以看到整个数组已打印到表头 如果我错过任何必填信息,请告诉我。 问题答案: 听起来你想同时遍历两个列表,换句话说就是zip()列表。 如果是这种情况,最好在视图中进行操作并在

  • 尝试通过在 JMeter 中使用 CSV 配置来比较源表和目标表 (SQL) 之间的数据/计数,如下所示。有可能以这种方式实现吗? JMeter中的CSV配置 只是想比较所有表的STAGING和DW之间的计数。对此有什么想法吗?

  • 我的脚本是创建csv文件,然后在csv数据集配置中读取该文件。我有一个文件名,并将其放入变量(path)中,然后在CSV数据集配置的文件名输入中发送${path}。我调试和路径变量具有我想要的值,例如(Perf_04.csv),并且也创建了该文件。但Jmeter总是显示${path}不存在的问题。有人对这个问题有想法吗?似乎在运行Jmeter时,会首先运行csv数据集config,当一开始找不到此

  • 我在jmeter中使用CSV数据集配置进行参数化,但我希望设置如下:线程总数为20。我的CSV中有40个值。我希望我的所有线程在第一次迭代中取第一个值,在第二次迭代中取第二个值。但是JMeter在第一次迭代中就为所有20个用户赋予了独特的价值。请帮帮我,我该怎么做?

  • 问题内容: 在Python中迭代列表时,设置起始索引的最佳方法是什么。例如,我有一个星期几的列表-星期日,星期一,星期二,…星期六- 但我想从星期一开始遍历该清单。最佳做法是什么? 问题答案: 您可以使用切片: 这将从第三个元素开始,然后迭代到结束。

  • 我试图在jeter中的两个CSV数据集配置之间共享变量,但不幸的是,所有配置元素都同时加载,因此它无法从CSV文件中读取新导入的变量。 < li >我想导入包含登录名、密码、第三变量CSV数据集配置测试计划映像的CSV文件 < li >我想将第三个变量作为文件路径的一部分传递给下一个CSV数据集配置第二个Csv数据集配置,其中包含第一个变量的变量 实际结果:Java . lang . illega