【问题标题】:Cypress: Some requests on website side get empty response赛普拉斯:网站端的一些请求得到空响应
【发布时间】:2019-09-23 23:48:38
【问题描述】:

我们目前正在尝试为在本地运行的 web 应用程序制作测试脚本。 但是,一些在基本浏览器上运行的请求在 cypress 测试浏览器上得到一个空响应,这导致测试失败。

我听说 Node 的一条规则会为任何超过 80kb 的标头返回一个空响应,但是,我的应用程序中的请求永远不会超过 80kb,所以我想知道发生了什么。

有人知道吗?

发送数据

{
  id: -1
  project_id: 3605
  parent_id: 0
  title: Folder
  original_filename: Folder
  type: FOLDER
  created_datetime: 201905061228
  updated_datetime: 201905061228
  delete_flag: 0
  folder_type: 1
}

预期的 API 响应(我在普通浏览器中得到的)

{
  "created_time":"2019-05-06 10:39:38",
  "updated_time":"2019-05-06 10:39:38",
  "purchase_datetime":null,
  "folder_type":"1",
  "id":9522,
  "project_id":"3605",
  "parent_id":"0",
  "title":"Folder 2",
  "original_filename":null,
  "type":"FOLDER",
  "original_xml":null,
  "updated_xml":null,
  "deleted_datetime":null,
  "delete_flag":"0",
  "status":null,
  "progress":null,
  "version_no":null,
  "purchase_flag":null
}

我在赛普拉斯浏览器中得到的信息(开发者工具响应选项卡)

This request has no response data available

【问题讨论】:

  • 您使用的是哪个 Cypress 版本?
  • 我是通过 npm 安装的,所以它是当前最新的:v3.2.0
  • 你能分享一个最小的 GitHub 仓库吗?
  • 尝试更新到 Cypress 3.3.0,我们在这个版本中对网络错误处理做了很多改进。
  • @ZachBloomquist 非常感谢,我会试试的

标签: javascript request xmlhttprequest response cypress


【解决方案1】:

我遇到了同样的问题。 尝试编辑 cypress.json 文件。放入以下行 "responseTimeout":{你要等待的时间} 默认情况下,此时间为 30000 毫秒。 这对我有用。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。原来我无意中打断了响应。

    我的代码是:

    cy.intercept('POST', '/route', {statusCode: 200}).as('someRoute'); <------WRONG
    

    什么时候应该是这样的:

    cy.intercept('/route').as('someRoute');
    // code for clicking button/triggering the request
    cy.wait('@someRoute').its('response.statusCode').should('eq', 200)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-08
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      • 2022-11-02
      • 2021-08-08
      • 1970-01-01
      相关资源
      最近更新 更多