Gatling测试:如何仅在上步exec响应含konsumentKode=HNNO时执行指定逻辑
Gatling 响应体指定元素判断实现方案
实现思路
首先通过JsonPath筛选出sperringsDetaljer数组中konsumentKode取值为HNNO的所有元素存入会话,再通过Gatling的条件执行结构判断筛选结果是否非空,分别执行对应逻辑。
完整实现代码示例
import io.gatling.core.Predef._ import io.gatling.http.Predef._ // 场景定义部分 scenario("接口测试场景") .exec( // 1. 发起目标接口请求 http("查询拦截配置接口") .get("/替换为实际接口路径") .check( // 2. 用JsonPath筛选符合条件的对象,结果存入会话变量hnnoSperringList // 无匹配结果时默认返回空列表,不会抛出异常 jsonPath("$.sperringsDetaljer[?(@.konsumentKode == 'HNNO')]") .findAll() .saveAs("hnnoSperringList") ) ) // 3. 条件判断执行对应逻辑 .doIfElse(session => session("hnnoSperringList").as[Seq[Any]].nonEmpty) { // 存在konsumentKode=HNNO的对象,执行逻辑A exec(/* 此处填写逻辑A的具体代码,比如后续请求、参数校验等 */) } { // 不存在konsumentKode=HNNO的对象,执行逻辑B exec(/* 此处填写逻辑B的具体代码 */) }
注意事项
- 若后续需要使用HNNO对应对象的属性,可直接从会话变量中读取:
session("hnnoSperringList").as[Seq[Map[String, Any]]].head.get("sperringId")即可获取对应sperringId值 - 无需额外处理空匹配场景,
findAll()方法无匹配结果时会自动返回空列表,不会中断执行
内容的提问来源于stack exchange,提问作者Magnus Jensen
相关产品推荐
相关产品推荐

