使用match contains配合条件逻辑实现数组包含判定的变量赋值
实现方案
核心逻辑依赖Karate内置的karate.match()方法,该方法执行contains匹配时不会像普通断言类match语句那样失败即中断流程,而是返回包含passed布尔属性的结果对象,直接结合三元运算即可完成赋值。
完整可运行代码
# 基础变量定义 * def value = "222" * def array = ["111", "222", "333", "444"] # 匹配+条件赋值 * def var = karate.match("array contains value").passed ? "Yes" : "No"
场景效果说明
- 若
value存在于array中,passed返回true,var被赋值为"Yes" - 若
value不存在于array中,passed返回false,var被赋值为"No"
注意事项
- 不要直接使用
* match array contains value的断言形式,该语法匹配失败会直接终止当前脚本,无法用于条件判断 karate.match()的入参为字符串格式的匹配表达式,会自动解析当前上下文中已定义的变量,无需手动拼接变量值
内容的提问来源于stack exchange,提问作者karateKid
相关产品推荐
相关产品推荐

