Vue.js 如何使Cypress中的请求调用更稳定
当我观看Cypress测试中的某条路线时,它失败了1/8次。有没有办法让Cypress测试总是通过,而不是在多次尝试后随机失败 这是我的密码:Vue.js 如何使Cypress中的请求调用更稳定,vue.js,cypress,e2e-testing,Vue.js,Cypress,E2e Testing,当我观看Cypress测试中的某条路线时,它失败了1/8次。有没有办法让Cypress测试总是通过,而不是在多次尝试后随机失败 这是我的密码: it("Check if scroll is working on list", () => { cy.server() cy.route('GET', '**/api/scorer/company/news/**', { timeout: 15000 }).as('loadMoreAbstracts'); cy.
it("Check if scroll is working on list", () => {
cy.server()
cy.route('GET', '**/api/scorer/company/news/**', { timeout: 15000 }).as('loadMoreAbstracts');
cy.get('[data-cy=VirtualScroll]', { timeout: 15000 }).eq(1).scrollTo("bottom").then(()=>{
cy.wait('@loadMoreAbstracts', { timeout: 15000 }).its('status').should('equal', 200);
})
cy.get('[data-cy=VirtualScroll]', { timeout: 15000 }).eq(1).invoke('scrollTop').should('be.gt', 0)
cy.get('[data-cy=VirtualScroll]', { timeout: 15000 }).eq(1).scrollTo("bottom")
})
我看不出这段代码有什么问题,但不知何故,它偶尔会无缘无故地失败。有些东西使它不稳定,但有没有办法使Cypress测试更稳定
我得到的错误是:
CypressError: Timed out retrying: `cy.wait()` timed out waiting `15000ms` for the 1st request to the route: `loadMoreAbstracts`. No request ever occurred.
我不确定,但看起来您正在使用外部API获取数据。这自然会在测试中引入可变时间,导致一些失败 如果使用
cy.intercept()
(cy.route()
已被弃用),则可以提供响应对象来满足请求。这样做的好处是,它将删除外部(和高度可变)依赖关系,并且应该使您的测试更加可靠
另一个副作用是,测试将运行得更快。在使用热模块重新加载(使用cy.intercept)和试验路由匹配表达式时,我看到了类似的情况。如果我输入了一个错误的路由,然后恢复它仍然失败,需要重新启动Cypress runner来修复。在源代码中查找匹配点,但还没有找到。事实上,我很少看到它在本地开发中失败。然而,在Azure上托管的CI/CD管道中,更常见的情况是它失败。。。