首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cy.intercept的Retreive响应数据

使用cy.intercept的Retreive响应数据
EN

Stack Overflow用户
提问于 2022-04-11 12:27:47
回答 2查看 2.6K关注 0票数 1

我正在拦截请求URL:请求URL的https://api-stg.geneplanet.com/api/nipt-exporters/tasks/407ff05afdec42caa17a660d2c855117/status响应是

代码语言:javascript
复制
{
  "name": "ExportN2DStatisticsOrchestrator",
  "instanceId": "407ff05afdec42caa17a660d2c855117",
  "runtimeStatus": "Completed",
  "input": {
  "BlobUri": "https://niptexportersstgsa.blob.core.windows.net/nipt-exports/N2D statistics 
  export_11.04.2022 13.38.49.xlsx?sv=2018-03- 
  28&sr=c&sig=V0pXmIQUccUdkm0WtsZ3ENjfr%2FtYiCvYDztgZ6JWaYk%3D&se=2022-04- 
  11T12%3A38%3A49Z&sp=rc",
  "From": "2022-03-11T00:00:00+00:00",
  "To": "2022-04-11T23:59:59+00:00"
  },
  "customStatus": {
    "message": "done"
  },
  "output": null,
  "createdTime": "2022-04-11T11:38:49Z",
  "lastUpdatedTime": "2022-04-11T11:38:50Z"
}

我希望完成对runtimeStatus的断言。

以下代码不起作用:

代码语言:javascript
复制
cy.intercept('https://api-stg.geneplanet.com/api/nipt-exporters/tasks/*/status').as('exp')
cy.get('.col-sm-12').should('be.visible').and('contain','Export').click()
cy.get('.ng-star-inserted > .p-4 > .mb-2').should('be.visible').and('contain','N2D Statistics export')
cy.get('.ng-star-inserted > .p-4 > .mb-2').should('be.visible').and('contain',' Preparing a document. Please wait.')
cy.wait('@exp').its('response.runtimeStatus').should('eq', 'Completed')

我也尝试过应该(‘包括’)和应该(‘包含’)在最后一行。我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2022-04-11 14:40:52

正如Alex在评论您的问题时所说的,尝试下面的代码以检查等待调用返回的“拦截”对象中的内容:

代码语言:javascript
复制
cy.wait('@exp').then((intercept)=>{
    console.log(intercept); //will log a cy object containing the response
    console.log(intercept.response.runtimeStatus); //will log what you need
    expect(intercept.response.runtimeStatus).to.be.eq('Completed'); //should work
})
票数 0
EN

Stack Overflow用户

发布于 2022-04-11 21:15:13

cy.wait('@exp')生成一个拦截对象,请参见使用已生成的对象

代码语言:javascript
复制
// interception object
{
  request: {...},
  response: {
    headers: {...},
    body: {
      "name": "ExportN2DStatisticsOrchestrator",
      "instanceId": "407ff05afdec42caa17a660d2c855117",
      "runtimeStatus": "Completed",
      ...
}

所以这应该有效

代码语言:javascript
复制
cy.wait('@exp').its('response.body.runtimeStatus').should('eq', 'Completed')

代码语言:javascript
复制
cy.wait('@exp').its('response.body').should('have.property', '.runtimeStatus', 'Completed')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71827854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档