function AssertResponseCode200(request) {
cy.wait(request).then(response => {
expect(response.status).to.eq(200);
});
}
function CheckDictionaries() {
var requestUrls = [
"requestUrl1",
"requestUrl2",
"..."
];
for (let i = 0; i < requestUrls.length; i++) {
cy.route("GET", requestUrls[i]).as(`request${i}`);
AssertResponseCode200(`@request${i}`);
}
}
it("Assert dictionaries", () => {
cy.server();
CheckDictionaries();
});
CypressError: Timed out retrying: cy.wait() timed out waiting 5000ms for the 1st request to the route: 'request1'. No request ever occurred.
我想循环浏览请求,并检查一切正常,并且响应代码为200。但是我被卡住了,因为唯一别名的URL是数组中的第一个URL,但是我需要{ {1}}数组的别名为requestUrls
。我的代码有什么问题,还是赛普拉斯的路由无法用于for循环?
答案 0 :(得分:1)
我认为您遇到的问题是,因为您每次仅等待一个请求完成,但是请求以随机顺序异步完成,因此有时您可能在等待已经完成的请求。
cy.wait()
也接受别名数组,因此您可以先收集所有别名,然后用一个cy.wait()
等待所有别名。
const aliases = [];
for (let i = 0; i < requestUrls.length; i++) {
aliases.push(`@request${i}`);
...
}
cy.wait(aliases);