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

如何为Cypress所有请求默认添加查询参数?

Cypress全局默认添加visit查询参数的解决方案

首先明确:Cypress官方没有提供在defineConfig中直接配置cy.visit默认查询参数的选项,你设想的那种配置方式目前无法实现。不过可以通过以下两种全局方案达成需求,不用逐个修改测试文件:

方案1:重写cy.visit命令(推荐,精准可控)

在cypress/support/e2e.js(或旧版本的support/index.js)中添加以下代码,直接覆盖原生cy.visit的行为,自动合并默认参数和用户传入的参数(用户传入的参数优先级更高):

Cypress.Commands.overwrite('visit', (originalFn, url, options = {}) => {
  // 合并默认查询参数,用户手动传的会覆盖默认值
  options.qs = {
    myParam: true,
    ...options.qs
  };
  return originalFn(url, options);
});

之后所有测试里调用cy.visit('/path/to/page')时,都会自动带上?myParam=true;如果某个测试需要自定义参数(比如cy.visit('/path', {qs: {myParam: false}})),也会正常生效,不会被默认值覆盖。

方案2:用cy.intercept拦截请求添加参数

如果需要给所有页面GET请求(包括非cy.visit触发的跳转)自动加参数,可以在support文件中添加拦截规则:

cy.intercept('GET', '*', (req) => {
  // 仅当参数不存在时添加,避免覆盖已有值
  if (!req.query.myParam) {
    req.query.myParam = true;
  }
}).as('globalParamInterceptor');

注意:这个方案会作用于所有GET请求(包括接口请求),如果只想针对页面路由,可以把拦截路径改成更具体的规则,比如'/*'或你的项目页面前缀路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:53:11