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

如何在cy.request()中将fixture数据传入URL?

解决Fixture数据传入请求URL的问题

你的代码问题在于URL字符串里的{this.id}不会被自动解析为变量值,需要用模板字符串或者字符串拼接的方式将fixture中的id插入到URL中。以下是具体修改方案:

方案1:使用模板字符串(推荐)

将URL用反引号()包裹,变量用${变量名}`的形式插入,这样Cypress会自动解析变量值:

beforeEach(function() { // 改用function确保this上下文一致
  cy.clearLocalStorage()
  cy.fixture('companyId.json').then(function (id) {
    this.id = id
  })
}) 

it('Test', function() {
  cy.request({
    method: 'GET',
    // 用反引号和${}替换原有的{this.id}
    url: `https://abc.abc.com/admin/collection/${this.id}`,
  }).then((response) => {
    headerCookie = response.requestHeaders.cookie
  })
})

方案2:直接在测试用例中加载Fixture

如果不想依赖this上下文,也可以直接在it块内加载fixture,代码更直观:

it('Test', function() {
  cy.fixture('companyId.json').then((id) => {
    cy.request({
      method: 'GET',
      url: `https://abc.abc.com/admin/collection/${id}`,
    }).then((response) => {
      headerCookie = response.requestHeaders.cookie
    })
  })
})

注意事项

  • 如果companyId.json是对象格式(比如{"id": 12345}),需要调整取值方式,比如${this.id.id}或者${id.id}。
  • 避免使用未声明的全局变量headerCookie,可以改用Cypress.env('headerCookie', response.requestHeaders.cookie)存储,后续测试用Cypress.env('headerCookie')获取。

内容的提问来源于stack exchange,提问作者140218-M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:01:07