Cypress获取大体积JSON超时,使用cy.wait别名报错如何解决?
Cypress 大体积JSON请求超时问题解决方案
报错原因说明
你遇到的cy.wait() only accepts aliases for routes报错原因如下:
cy.wait()仅支持配合cy.intercept()拦截注册的路由别名使用cy.request()是主动发起请求的原生命令,执行后会自动等待请求返回,不需要额外通过cy.wait()等待别名,你的原有写法属于错误用法。
超时问题修复方法
cy.request()默认的超时时间为30000ms(30秒),大体积文件请求需要单独为该命令配置timeout参数,即可覆盖默认的30秒限制,不需要修改全局配置即可生效。
修正后可运行代码
describe('Api request', () => { it('get json', () => { cy.request({ method: 'GET', url: '/api_endpoint', headers: { 'API-KEY': 'xxxxxxxxxxxxxxxxx', }, // 配置请求超时时间为90秒,可根据实际场景调整时长 timeout: 90000 }).its('body').should('contain','name') .then(body => { cy.writeFile('cypress/fixtures/testdata.txt', body); }) }) })
如果调整后仍然出现超时,可排查服务端本身的响应耗时限制、网络代理耗时等其他影响因素。
内容的提问来源于stack exchange,提问作者cypher_null
相关产品推荐
相关产品推荐

