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

Karate API:如何使用正则断言响应中的数字类型值

解决接口响应数字字段的正则断言类型不匹配问题

你的错误提示$[0].num_items | not a string (NUMBER:STRING)已经点明核心问题:#regex是针对字符串类型的断言规则,但接口返回的num_items是数字类型,直接用正则会触发类型不匹配报错。

给你两个可行的解决思路:

1. 直接断言数值(推荐,更高效)

既然目标值是数字,没必要绕正则,直接用数值判断逻辑更简单:

  • 等值/逻辑或判断:
    $[0].num_items == 1000 || $[0].num_items == 1111
    
  • 集合包含判断(如果你的断言工具支持):
    $[0].num_items in [1000, 1111]
    

2. 转字符串后用正则匹配

如果一定要用正则,先把数字转成字符串再应用规则,不同工具的转换语法略有差异,举两个常见例子:

  • 部分接口测试工具(如Postman)可用toString():
    "#regex \d(1000|1111)" on $[0].num_items.toString()
    
  • 用工具自带的字符串转换函数:
    #regex \d(1000|1111) == str($[0].num_items)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 09:07:11