赛普拉斯测试不起作用,而手动测试是

问题描述 投票:0回答:1

我一直在使用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)

The 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() 无济于事。

我已经谷歌搜索了几个小时。 欢迎任何想法,谢谢。

cypress e2e-testing manual-testing
1个回答
0
投票

快速前进的方法可能是使用拦截并适当地存根对 POST 的响应。

cy.intercept({
  method: 'POST',
  url: ...
},
{ 
  // stub response here, check devtools/Network for live response details
})
© www.soinside.com 2019 - 2024. All rights reserved.