jmeter - 控制器在 jmeter 中的 While 控制器
问题描述
我有一个 while 控制器重复相同的请求,直到满足条件。在这个控制器内部,我想根据while 循环外的 GET 请求给出的JSON 响应来选择一个特定的 HTTP 请求。
因此我的逻辑是设置一个while控制器(当前工作)
${__javaScript(parseInt(${counterApis})<=parseInt(vars.get("FirstNames_matchNr")),)}
其中内部有一个 JSR223 PreProcessor,具有以下内容:
vars.put("TypeCode",vars.get("TypeCodes_"+vars.get("counterApis")));
思路很简单,while 循环使用预处理器检查变量 TypeCode 的值(可以是 ADT、CHD 或 INF,具体取决于 JSON 响应),然后使用此变量根据此变量在特定 POST 请求之间进行选择.
问题:由于某种原因,当我尝试在 while 控制器中添加 IF 控制器或 SWITCH 控制器时,脚本崩溃并且无法访问任何 POST 请求。
解决方案
您使用了错误的 JSR223 测试元素。JSR223 PreProcessors在采样器之前执行,因此您的 Switch Controller 根本不会收到必要的输入。
将 JSR223 PreProcessor 更改为JSR223 Sampler,我相信您的脚本将按预期开始工作。如果您不想在测试结果中看到 JSR223 采样器,可以将以下行放在某处:
SampleResult.setIgnore()
还可以考虑在您的 While 控制器中切换到__groovy() 函数,因为建议使用性能最高的脚本选项
javaScript 不是用于 JMeter 性能的最佳脚本语言。如果您的计划需要大量线程,建议使用
__jexl3
or__groovy
函数。
推荐阅读
- html - 保持按钮固定,但在体内
- c - 使用设备配置服务时出现错误和段错误
- django - 基于对象状态的自定义错误消息
- c# - 在 C# 中使用 Datagridview 的 CRUD
- android - 使用来自另一个 Fragment 的方法/函数
- android - 从我的库插件android项目中获取maven url的过程是什么
- php - 如何修复 aloha/twilio 警告
- php - 在 Eloquent 视图中使用控制器会出错:htmlspecialchars() 期望参数 1 是字符串,给定对象
- jquery - 了解此逻辑中对匿名函数的需求
- jquery - 如何删除注销按钮或链接上的启动画面?