You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Karate Mock Server如何匹配请求体字段包含指定子串的请求

Karate Mock Server长字符串子串匹配解决方案

你当前写法失效的核心原因是:Karate Mock的Scenario路由匹配规则使用的是原生JavaScript表达式语法,而非Karate断言阶段的contains关键字语法,因此直接写contains不会被识别。

正确实现方式

方案1:使用JS原生字符串includes方法(推荐)

直接调用JavaScript字符串内置的includes()方法判断子串是否存在,不受字符串长度限制,完全适配长文本场景:

Scenario:
   pathMatches('/callService') &&
   methodIs('post') && 
   request.clientDescription.includes('blue eyes')

方案2:使用正则匹配(适配复杂规则场景)

如果需要额外的匹配规则(比如忽略大小写、模糊匹配特殊字符),可以用正则的test()方法实现:

Scenario:
   pathMatches('/callService') &&
   methodIs('post') && 
   // 示例为忽略大小写匹配
   /blue eyes/i.test(request.clientDescription)

可选优化

如果不确定请求字段是否一定为字符串类型,可以增加类型判断避免匹配时抛出异常:

Scenario:
   pathMatches('/callService') &&
   methodIs('post') && 
   typeof request.clientDescription === 'string' &&
   request.clientDescription.includes('blue eyes')

内容的提问来源于stack exchange,提问作者Jf_foster05

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 03:36:04