我目前正在使用cypress测试一个应用程序。此应用程序具有后端(API)和前端。赛普拉斯用于测试前端。
在开始测试之前,我们初始化后端的数据库以使其处于测试所需的状态。我们通过使用cy.request()
向后端发送直接请求来实现这一点。
这是赛普拉斯中一个请求的代码(这个是有问题的之一):
Cypress.Commands.add("assignCityToTerritory", (territory, cityId) => {
return cy.request({
method: 'POST',
url: Cypress.env('apiUrl') + '/territories/' + territory.id + '/city-assignment',
headers: {
Authorization: 'Bearer ' + window.localStorage.getItem('jwt')
},
body: {
city: {
id: cityId
}
}
}).then(response => {
return response
})
})
这是问题所在:
cy.request()
超时,并说它从未收到来自服务器的任何答复cy.request()
到远方后端的其他呼叫在出现问题之前可以正常工作。例如以下示例:Cypress.Commands.add("create", (itemType, itemData) => {
cy.log("# Creating " + itemType)
return cy.request({
method: 'POST',
url: Cypress.env('apiUrl') + '/' + itemType + '/',
headers: {
Authorization: 'Bearer ' + window.localStorage.getItem('jwt')
},
body: itemData
}).then(response => {
return response
})
})
结论:我不知道为什么这个特定的cy.request()
超时