javascript - 我可以打开 cy.wait() 超时而不是断言失败吗?
问题描述
我有一个柏树测试,它突出了冷启动 lambda 的问题。但是,在证明问题后,我希望测试通过,处理冷启动并重试,直到冷启动问题得到解决。
如果我cy.wait()
不能抛出失败断言(因此不停止测试),我可以打开 xhr 响应的状态以在 x 时间内尝试。例如;
context("upload trades", () => {
specify("handling cold-start delay", () => {
// attempt system action which will "warm up" cold lambdas
cy.uploadTradeForTomorrow("validTrade_CME_to_KochCE");
// implicitly wait for timeout to occur when posting trade list
cy.wait("@postTradeLists").then(request => {
// handle cold start
if (request.status !== 200) {
cy.log(
"non-200 response; assuming cold start, adding delay and trying again"
);
cy.wait(30000);
// refresh page to re-load Trade Uploads page
// given lambda's now hot
cy.visit("/");
cy.uploadTradeForTomorrow("validTrade_CME_to_KochCE");
// wait for second post, anticipating 200 response (hot-start)
cy.wait("@postTradeLists");
}
});
// check file uploaded successfully
cy.contains("File uploaded successfully").should("be.visible");
cy.get("button")
.contains("OK")
.should("be.enabled");
});
});
cy.wait("@postTradeLists")
但是,当 504 响应(或者更可能是 30000 毫秒超时)从服务器解决时,这目前在线上失败。
有没有办法做到这一点,我不知道?过度的谷歌搜索不会产生任何结果。谢谢你。
解决方案
推荐阅读
- javascript - 在选择一个选项时不发送文本框值
- firebase - FireBase Ping 延迟
- python - 如何从 HTML 中的该属性中提取字符串?
- mysql - SELECT /*!N SQL_NO_CACHE */ * FROM `table` - 这是什么?
- heroku - 我无法让 libvips 在 heroku 上编译
- c# - SetActive 的反应不同
- ghc - 堆栈如何确定使用哪个 ghc?
- javascript - 不确定我对 React Redux 应用程序中特定部分的处理方法?
- html - HTML 元素颜色、颜色和宽度 CSS 属性不起作用
- java - Jetty 中的 JSR-356 javax websockets(嵌入式和非嵌入式)