首页 > 解决方案 > JMeter:如何在循环中从 CSV 读取测试数据时为每个记录值断言

问题描述

我有一个 CSV 文件,我使用循环控制器循环遍历 CSV 文件中的行。现在我的问题是如何为从 CSV 文件中获得的每个值的每个响应断言?例如,我的单个 HTTP 请求循环 5 次,因为 CSV 文件中有 5 个值,现在如何循环每次迭代,因为我无法断言 HTTP 请求,因为只有第一个循环通过,其余的将失败。如果我不清楚,请告诉我,以便我可以将我的示例发布为图像。

我试图对 HTTP 请求进行断言,但只有第一个采样器会通过,而 rest 会失败,因为断言对于第二次迭代无效。

我希望每次迭代都有一个断言

标签: javaarrayseclipsesoapjmeter

解决方案


没有您的请求、响应和 CSV 文件的完整详细信息,很难提出准确和最佳的配置,但是鉴于您的请求的性质,我建议您使用JSR223 断言,这是最灵活的方式设置自定义通过/失败标准。

相关代码将类似于:

switch (vars.get('__jm__Loop Controller__idx') as int) {
    case 0:
        log.info('Processing iteration 1')
        if (!prev.getResponseDataAsString().contains('specific value for iteration 1')) {
            AssertionResult.setFailure(true)
            AssertionResult.setFailureMessage('your custom failure message')
        }
        break
    case 1:
        log.info('Processing iteration 2')
        if (!prev.getResponseDataAsString().contains('specific value for iteration 2')) {
            AssertionResult.setFailure(true)
            AssertionResult.setFailureMessage('your custom failure message')
        }
        break
    case 2:
        //etc
        break
    case 3:
        break
    case 4:
        break
}

在哪里:

更多信息:在 Groovy 中编写 JMeter 断言脚本 - 教程


推荐阅读