繁体   English   中英

如何在 Postman 测试中的单个查询中使响应代码 200 和 400 保持一致

[英]How to make response codes 200 and 400 consistent in a single query in Postman test

我目前正在编写登录功能测试。

测试代码

pm.test("status is 200", function() {
    pm.expect(pm.response.code).to.eql(200)
})

pm.test("status is 400", function() {
    pm.expect(pm.response.code).to.eql(400)
})

预请求脚本

const requestJson = JSON.parse(pm.request.body.raw);
requestJson.email = "test@test.com"
requestJson.password = "testtest"
pm.request.body.raw = JSON.stringify(requestJson)
console.log(requestJson)

请求体

{
   email: "string",
   password: "pass",
}

如果通过了成功的请求数据,则只有 200 次状态测试通过,如果通过了不正确的请求数据,则只有 400 次状态测试会通过。

是否可以在成功测试之前更改请求数据并在失败测试之前更改请求数据?

如果没有,我是否必须创建两个查询,一个用于成功,一个用于失败?

你究竟想做什么? 目前,您的测试相互矛盾。 响应不能同时具有 200 和 400 状态。 如果要测试,例如状态是 200 还是 400,您可以使用

pm.test("status is 200 or 400 ", function() {
  pm.expect(pm.response.code).to.be.oneOf([200, 400]);
})

您还可以根据响应代码执行其他测试

if (pm.response.code == 200) {
  pm.test("tests for successful response", function () {
    ...
  })
} else {
  pm.test("tests for error response", function () {
    ...
  })
}

但是如果你真的想使用邮递员进行测试,我建议你为成功和错误的请求创建单独的请求......

顺便说一句:不成功的登录应该返回401 Unauthorized而不是 400 Bad Request

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM