赛普拉斯如何在另一个请求中使用 JSON 响应 属性
cypress how to use JSON response property in another request
我似乎在与 cy.request 的响应 body 交互时遇到问题。我有两个 API 调用,它们都在单独工作。我想从第一次调用的响应数组中发送一个 id 以供第二次调用使用。
Cypress.Commands.add('POST_and_PATCH_Order',() => {
cy.fixture('orderEntry.json').then((fileBody)=>{
cy.request({
method:'POST',
url:'/api/OrderEntry',
json: true,
body: fileBody
})
})
.then(response => {
return new Promise(resolve => {
const target = response.body;
resolve(target)
})
})
})
然后用
测试
it("An order may be set to delivered", ()=>{
cy.POST_and_PATCH_Order().then(order =>{
const OrderId_val = order['OrderId'];
cy.request({
method:'PATCH',
url:'/api/OrderManager/StatusDelivered',
json: true,
body: {
"OrderId": OrderId_val,
"ActualPickupDate": "2020-06-08T15:34:20.035Z",
"ActualDeliveryDate": "2020-06-08T15:34:20.035Z",
"DeliveryReceiptName": "string"
}
})
})
})
如上发送 OrderId_val 会收到 404 响应,请求 body 未提供 OrderId 的值。将订单作为 OrderId 发送会导致整个响应 header 作为 OrderId (Body: {"OrderId":[{"OrderId":3588901,"OrderType":"Order","Uuid":"1591821576913"}],"ActualPickupDate":"2020-06-08T15:34:20.035Z","ActualDeliveryDate":"2020-06-08T15:34:20.035Z","DeliveryReceiptName":"string"})
发送
我已经尝试在 command.js 和测试中与 response.body 进一步交互,但遇到 NullReferenceException 结果。对于从 POST 响应访问 OrderId 值以用于后续 PATCH 调用的任何帮助,我们将不胜感激。
您的 fileBody
具有 array
格式的数据:[{"OrderId":3588901,"OrderType":"Order","Uuid":"1591821576913"}]
你应该读成order[0].OrderId
。
我似乎在与 cy.request 的响应 body 交互时遇到问题。我有两个 API 调用,它们都在单独工作。我想从第一次调用的响应数组中发送一个 id 以供第二次调用使用。
Cypress.Commands.add('POST_and_PATCH_Order',() => {
cy.fixture('orderEntry.json').then((fileBody)=>{
cy.request({
method:'POST',
url:'/api/OrderEntry',
json: true,
body: fileBody
})
})
.then(response => {
return new Promise(resolve => {
const target = response.body;
resolve(target)
})
})
})
然后用
测试it("An order may be set to delivered", ()=>{
cy.POST_and_PATCH_Order().then(order =>{
const OrderId_val = order['OrderId'];
cy.request({
method:'PATCH',
url:'/api/OrderManager/StatusDelivered',
json: true,
body: {
"OrderId": OrderId_val,
"ActualPickupDate": "2020-06-08T15:34:20.035Z",
"ActualDeliveryDate": "2020-06-08T15:34:20.035Z",
"DeliveryReceiptName": "string"
}
})
})
})
如上发送 OrderId_val 会收到 404 响应,请求 body 未提供 OrderId 的值。将订单作为 OrderId 发送会导致整个响应 header 作为 OrderId (Body: {"OrderId":[{"OrderId":3588901,"OrderType":"Order","Uuid":"1591821576913"}],"ActualPickupDate":"2020-06-08T15:34:20.035Z","ActualDeliveryDate":"2020-06-08T15:34:20.035Z","DeliveryReceiptName":"string"})
我已经尝试在 command.js 和测试中与 response.body 进一步交互,但遇到 NullReferenceException 结果。对于从 POST 响应访问 OrderId 值以用于后续 PATCH 调用的任何帮助,我们将不胜感激。
您的 fileBody
具有 array
格式的数据:[{"OrderId":3588901,"OrderType":"Order","Uuid":"1591821576913"}]
你应该读成order[0].OrderId
。