1

我有一个邮递员集合,它是 POST 调用,请求正文是纯/文本类型,我只想使用 cy.request 自动执行此操作,但我不确定如何通过 cy.request 正文部分中的测试正文和如果我运行以下代码,它会返回 400 错误请求。

 cy.request({
        url: `${url}/user`,
        method: "POST",
   headers: {
            'Content-Type': 'plain/text'
        },
        body: {
            "confirmEmail": "true"
        }
    }).then(res =>{
        cy.task('log',"Email id "+res.body.emailAddress);
        return res.body;
    });
}

上述请求返回 .json 响应,但如果是文本格式,则返回输入请求,并且在邮递员工具中工作正常。

在邮递员工具中以以下格式传递请求正文,并且工作正常。

confirmEmail=true
4

1 回答 1

0

我的假设是在请求正文中,我们的端点期望一个布尔值,但您传递的是一个字符串。所以改变 "confirmEmail": "true"应该 "confirmEmail": true工作。

cy.request({
  url: `${url}/user`,
  method: 'POST',
  headers: {
    'Content-Type': 'plain/text',
  },
  body: {
    confirmEmail: true,
  },
}).then((res) => {
  cy.log(res.body.emailAddress) //prints email address from response body
})

如果您需要在 URL 中传递参数,您可以直接使用qs

cy.request({
  url: `${url}/user`,
  method: 'POST',
  qs: {
    confirmEmail: true,
  },
  headers: {
    'Content-Type': 'plain/text',
  },
}).then((res) => {
  cy.log(res.body.emailAddress) //prints email address from response body
})
于 2021-11-02T06:09:58.860 回答