在Cypress中使用重试前操作
在Cypress中,可以在测试期间自动重试失败的命令。为了在重试前执行额外的操作,可以使用beforeRetry
钩子。以下是如何在Cypress中使用beforeRetry
钩子的代码示例:
it('attempting an action that might fail', () => {
cy.server()
cy.route('/foo', 'bar').as('getFoo')
// add a retry command for the route
cy.get('@getFoo', {timeout: 2000})
.retry(3, {log: false, timeout: 2000, onBeforeRetry: (cmd) => {
// additional action to perform before retrying
// eg. clear local storage
window.localStorage.clear()
}})
// assertion that depends on the above route
cy.wait('@getFoo')
.its('response.body').should('eq', 'bar')
})
在上面的示例中,cy.get('@getFoo')
通过其别名获取被指定的路由操作。retry
命令重试此操作3次。在每次重试之前,onBeforeRetry
回调在执行之前,将本地存储清除。