java - JMeter:如何在循环中从 CSV 读取测试数据时为每个记录值断言
问题描述
我有一个 CSV 文件,我使用循环控制器循环遍历 CSV 文件中的行。现在我的问题是如何为从 CSV 文件中获得的每个值的每个响应断言?例如,我的单个 HTTP 请求循环 5 次,因为 CSV 文件中有 5 个值,现在如何循环每次迭代,因为我无法断言 HTTP 请求,因为只有第一个循环通过,其余的将失败。如果我不清楚,请告诉我,以便我可以将我的示例发布为图像。
我试图对 HTTP 请求进行断言,但只有第一个采样器会通过,而 rest 会失败,因为断言对于第二次迭代无效。
我希望每次迭代都有一个断言
解决方案
没有您的请求、响应和 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
}
在哪里:
__jm__Loop Controller__idx
- 一个预定义的 JMeter 变量,保存当前的迭代次数prev
是SampleResult类实例的简写,您可以使用它来访问父采样器响应数据、代码、标头、指标等。AssertionResult
- 是AssertionResult类实例的简写,您可以使用它来设置采样器结果和失败消息
推荐阅读
- c# - C# 和 Html 敏捷包
- c++11 - C++ 返回值和移动规则异常
- mysql - 如何将不同的项目类型分成不同的表
- java - 有什么办法可以输出变量名而不是值?[JAVA]
- html - 将鼠标悬停在标签上时如何更改图标颜色
- reactjs - 打字稿:模块的完全导入找不到类型定义
- javascript - 如何通过在左侧或右侧添加面板来制作响应式数据表?
- c++ - 执行 C++ 二维数组
- android - 安装没有成功。无法安装应用程序。安装失败,原因是:“设备脱机”
- javascript - 我的 useState 有问题吗?我觉得我的 Array ReactNative 中的值并没有正确