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

如何用Cypress拦截含动态路径参数的API?通配符解析

解决方案与通配符解析

如何拦截动态路径的API

要同时拦截你列出的三个API(包括带动态lead1/lead2的路径),可以使用以下两种方式:

方式1:单个拦截覆盖所有目标API

使用**通配符匹配任意后续路径片段:

cy.intercept({ pathname: '/randomApi/import/entity/**' }).as("entitiesData")

这个规则会匹配:

  • /randomApi/import/entity
  • /randomApi/import/entity/lead1/tabs
  • /randomApi/import/entity/lead2/tabs
  • 以及任何以/randomApi/import/entity/开头的其他路径

方式2:精准匹配目标路径

如果你只想拦截指定的三种路径(避免匹配无关路径),可以使用更精确的模式:

// 拦截第一个精确路径
cy.intercept({ pathname: '/randomApi/import/entity' }).as("entitiesRoot")

// 拦截带动态参数的/tabs路径
cy.intercept({ pathname: '/randomApi/import/entity/*/tabs' }).as("entityTabs")

这里的*会匹配任意单个路径片段(比如lead1、lead2),但不会匹配更深的层级。


四种通配符写法的作用解析

Cypress的cy.intercept使用minimatch语法处理路径匹配,以下是四种写法的具体含义:

  1. /randomApi/import/entity*

    • *匹配单个路径片段内的任意字符(不包含/)
    • 匹配示例:/randomApi/import/entity、/randomApi/import/entity123、/randomApi/import/entityXYZ
    • 不匹配:/randomApi/import/entity/lead1/tabs(*无法跨越/)
  2. /randomApi/import/entity**

    • **匹配任意字符(包含/),可跨多个路径片段
    • 匹配示例:/randomApi/import/entity、/randomApi/import/entity/lead1/tabs、/randomApi/import/entity/abc/def/ghi
    • 注意:此写法会同时匹配无/的后缀(如entityXYZ)和多段路径
  3. /randomApi/import/entity/*

    • /*匹配**entity后的单个路径片段**
    • 匹配示例:/randomApi/import/entity/lead1、/randomApi/import/entity/lead2、/randomApi/import/entity/anySegment
    • 不匹配:/randomApi/import/entity(缺少后续片段)、/randomApi/import/entity/lead1/tabs(超过一个后续片段)
  4. /randomApi/import/entity/**

    • /**匹配**entity后的任意数量路径片段(包括0个)**
    • 匹配示例:/randomApi/import/entity、/randomApi/import/entity/lead1/tabs、/randomApi/import/entity/a/b/c/d
    • 这是最灵活的写法,能覆盖所有以/randomApi/import/entity开头的路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:24:54