Cypress:无法检索API响应数据

Cypress:无法检索API响应数据,cypress,Cypress,我必须测试“id”和“prevTrId”以获得下面的API响应 {"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","a

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

{"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”的方法吗?

尝试以下方法来比较
id
属性:

expect(response.body.securities[0]).to.have.property('id', '3133H')
expect(response.body.securities[0].obs[0]).to.have.property('d', 1549918953000);
expect(response.body.securities[0].obs[0]).to.have.property('prevTrId', '2019021AM_530');
此选项用于比较
d
属性:

expect(response.body.securities[0]).to.have.property('id', '3133H')
expect(response.body.securities[0].obs[0]).to.have.property('d', 1549918953000);
expect(response.body.securities[0].obs[0]).to.have.property('prevTrId', '2019021AM_530');
此选项用于比较
prevTrId
属性:

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

谢谢你的回复叶文:这个断言失败了。我只是尝试打印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\U 530”,“apc”:“{”tt:“-0.000328”,“tc:“0.001751”,“tta:”-0.033,“tca:“0.175892”}}}]}}}你好,请看下面的查询:Hi@SmrutiranjanaRay。只有你可以将此答案标记为已解决/已解决,向上投票并将其标记为已接受的答案,而我将查看你的新问题。