我一直在使用Cypress测试工具进行端到端测试。 但是,在保存和显示某些数据时,它会在手动完成时保存,但在 Cypress bot 运行时不会保存。您甚至可以通过赛普拉斯 UI 手动完成它,它会工作,只是在测试运行时不会。
此错误来自赛普拉斯:
(xhr)POST 500 <current URL here>
控制台中出现此错误:
Failed to load the resource: the server responded with a status of 500 (Internal Server Error)
跟随者:
AxiosError
code: "ERR_BAD_RESPONSE"
config: {transitional: {…}, adapter: Array(2), transformRequest: Array(1), transformResponse: Array(1), timeout: 0, …}
message: "Request failed with status code 500"
name: "AxiosError"
request: XMLHttpRequest {onreadystatechange: null, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, …}
response: {data: {…}, status: 500, statusText: 'Internal Server Error', headers: AxiosHeaders, config: {…}, …}
stack: "AxiosError: Request failed with status code 500\n at settle (http://localhost:1234/node_modules/.vite/deps/axios.js?v=4b79c220:1189:12)\n at XMLHttpRequest.onloadend (http://localhost:1234/node_modules/.vite/deps/axios.js?v=4b79c220:1417:7)"
[[Prototype]]
: Error
如果有帮助,我正在使用 Chrome 浏览器、Windows、VSCode 作为 IDE 和 Bash 终端。
我本来以为是源的问题,因为保存的数据是通过谷歌地图计算出来的,但是即使ChromeWebSecurity为false,也没有任何变化。
一直在用
npx cypress open --config chromeWebSecurity=false
打开Cypress,chromeWebSecurity: false
在cypress.config.ts文件中。
我想可能是测试之间的本地存储没有保存,尽管这几乎没有意义,因为这一切都发生在一次端到端测试中。
在保存信息时使用 cy.saveLocalStorage() 并在应该显示信息时使用 cy.restoreLocalStorage() 无济于事。
我已经谷歌搜索了几个小时。 欢迎任何想法,谢谢。
快速前进的方法可能是使用拦截并适当地存根对 POST 的响应。
cy.intercept({
method: 'POST',
url: ...
},
{
// stub response here, check devtools/Network for live response details
})