具有动态 body 的 Cypress 网络请求
Cypress network request with dynamic body
我想创建 cypress 自定义方法,它将使用参数作为动态请求 body(以避免代码重复,因为 url、方法和 headers 始终相同) 像这样:
var bodyValue =
`abc
abc
abc`
var bodyValue2 =
`bbb
bbb
bbb`
Cypress.Commands.add("myRequest", () => {
cy.request({
url: "xxx",
method: 'PUT',
headers: {
authorization: cookies
},
body: bodyValue
})
})
总是以
结尾
The response we got was:
Status: 409 - Conflict
Headers: {
xxx
xxx
xxx
}
Body: {
"message": "Setting Deleted"
}
如果我从我的变量中获取值并将其粘贴到 body:
有什么好笑的
cy.request({
url: "xxx",
method: 'PUT',
headers: {
authorization: cookies
},
body: {
abc
abc
abc
}
})
一直有效
我也试过了
cy.request({
url: "xxx",
method: 'PUT',
headers: {
authorization: cookies
},
body: {bodyValue}
})
这很奇怪,因为之后的 body 不是
abc
abc
abc
但是
{"bodyValue":
abc
abc
abc
}
这可能是原因。我不知道如何实现我的目标。
我的实际 body值:
{
"revision": "23554252352542343",
"activePerspective": ".Beta",
"perspectives": [
{
"type": ".Beta",
"activeLayout": "1x1",
"layouts": [
{
"caption": "1x1",
"canonicalName": "1x1",
"icon": {
"source": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"><path fill=\"none\" stroke=\"#fff\" class=\"eveInteractiveSvgStroke\"/></svg>"
},
"placement": {
"center": {
"config_mode": ".Default",
"visualization": "object-table",
"configuration": "punkt"
}
}
}
]
}
]
}
您可能想将 bodyValue 设置为一个对象(在传入之前)
const bodyValue = { abc, abc, abc }
然后在请求中,按照第一次尝试
body: bodyValue
这很难说,因为即使“粘贴”的工作示例也有语法错误 - 每个 属性.
之间应该有逗号
@Fody 这与您的回答没有太大区别。
var body = {abc, abc, abc}
和里面 cy.request
url: "xxx",
method: 'PUT',
headers: {
authorization: cookies
},
body
成功了。
我想创建 cypress 自定义方法,它将使用参数作为动态请求 body(以避免代码重复,因为 url、方法和 headers 始终相同) 像这样:
var bodyValue =
`abc
abc
abc`
var bodyValue2 =
`bbb
bbb
bbb`
Cypress.Commands.add("myRequest", () => {
cy.request({
url: "xxx",
method: 'PUT',
headers: {
authorization: cookies
},
body: bodyValue
})
})
总是以
结尾The response we got was:
Status: 409 - Conflict
Headers: {
xxx
xxx
xxx
}
Body: {
"message": "Setting Deleted"
}
如果我从我的变量中获取值并将其粘贴到 body:
有什么好笑的cy.request({
url: "xxx",
method: 'PUT',
headers: {
authorization: cookies
},
body: {
abc
abc
abc
}
})
一直有效
我也试过了
cy.request({
url: "xxx",
method: 'PUT',
headers: {
authorization: cookies
},
body: {bodyValue}
})
这很奇怪,因为之后的 body 不是
abc
abc
abc
但是
{"bodyValue":
abc
abc
abc
}
这可能是原因。我不知道如何实现我的目标。
我的实际 body值:
{
"revision": "23554252352542343",
"activePerspective": ".Beta",
"perspectives": [
{
"type": ".Beta",
"activeLayout": "1x1",
"layouts": [
{
"caption": "1x1",
"canonicalName": "1x1",
"icon": {
"source": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"><path fill=\"none\" stroke=\"#fff\" class=\"eveInteractiveSvgStroke\"/></svg>"
},
"placement": {
"center": {
"config_mode": ".Default",
"visualization": "object-table",
"configuration": "punkt"
}
}
}
]
}
]
}
您可能想将 bodyValue 设置为一个对象(在传入之前)
const bodyValue = { abc, abc, abc }
然后在请求中,按照第一次尝试
body: bodyValue
这很难说,因为即使“粘贴”的工作示例也有语法错误 - 每个 属性.
之间应该有逗号@Fody 这与您的回答没有太大区别。
var body = {abc, abc, abc}
和里面 cy.request
url: "xxx",
method: 'PUT',
headers: {
authorization: cookies
},
body
成功了。