【问题标题】:Cypress: not able to retrieve the API respose data赛普拉斯:无法检索 API 响应数据
【发布时间】:2019-11-28 10:06:02
【问题描述】:

我必须测试以下 API 响应的“id”和“prevTrId”

{"result":{"code":200,"status":"OK"},"securities":[{"id":"3133H","sec":"USIG//FFCB","xcc":0,"liq":"9","dr":"-434.114562","dur":"5.411709","obs":[{"d":1549918953000,"bps":"0.001751","m":231,"prevTrId":"2019021AM_530","apc":{"tt":"-0.000328","tc":"0.001751","tta":"-0.033","tca":"0.175892"}}]}]}

赛普拉斯代码:

describe('API Testing with Cypress', () => {
    var responsebodydata

    it('Validate the header', () => {
     cy.request('http://pTe-GPbt-ws.ga.data.com:9082/v1/testing/raw?dateFrom=01-01-2019&dateTo=07-17-2019&reqId=xxxxxx-secIds=3133EJ5H&tradeSizeFrom=10000&tradeSizeTo=5000&tradeSide=BUY&cepSide=BID&cepCompareToTrades=&cepCompareToQuotes').then((response)=> {


   responsebodydata = response.body
   cy.log(responsebodydata)

 expect(response.body).to.have.property('id', '3133H')     

      })
  })
})

cy.log(responsebodydata) 将结果打印为

{result: {code: 200, status: OK}, securities: [Object{7}]}

我得到一个断言错误

期望 { Object (result, Securities) } 有一个属性 'id'

谁能提供一些想法如何从响应中获取“id”?

【问题讨论】:

    标签: cypress


    【解决方案1】:

    试试这个比较id属性:

    expect(response.body.securities[0]).to.have.property('id', '3133H')
    

    这样比较d属性:

    expect(response.body.securities[0].obs[0]).to.have.property('d', 1549918953000);
    

    这样比较prevTrId属性:

    expect(response.body.securities[0].obs[0]).to.have.property('prevTrId', '2019021AM_530');
    

    【讨论】:

    • 感谢 Yevhen 的回复:断言失败。我只是尝试打印值 responsebodydata = response.body.securities[0] cy.log(responsebodydata) 它返回“Object{7}”而不是“id”
    • 如果您有问题的所有数据都正确,它应该可以工作。您要打印对象的所有键还是断言 id?如果只想打印对象的所有键,请调用JSON.stringify(responsebodydata) 函数。
    • 是的,它工作正常,谢谢。但是对于以下相同的响应数据,我无法访问“d”:1549918953000,为什么我可以访问它有什么不同:“证券”:[{“id”:“3133H”,“sec”: "USIG//FFCB","xcc":0,"liq":"9","dr":"-434.114562","dur":"5.411709","obs":[{"d":1549918953000, "bps":"0.001751","m":231,"prevTrId":"2019021AM_530","apc":{"tt":"-0.000328","tc":"0.001751","tta":"- 0.033","tca":"0.175892"}}]}]}
    • 嗨 Yeven,请看下面的查询:stackoverflow.com/questions/57133812
    • 嗨@SmrutiranjanaRay。只有您可以将此答案标记为已解决/已解决,对其进行投票并将其标记为已接受的答案,同时我会查看您的新问题。
    猜你喜欢
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2021-07-07
    • 1970-01-01
    • 2021-07-15
    • 2021-08-08
    • 1970-01-01
    相关资源
    最近更新 更多