Postman 邮递员-如何获得;讯息;当POST请求返回400错误时

Postman 邮递员-如何获得;讯息;当POST请求返回400错误时,postman,Postman,我在Postman中有一个POST请求,带有以下测试 pm.test("CREATED - Status code is 201", function () { pm.response.to.have.status(201); }); var namespaceLink = postman.getResponseHeader("Location"); var namespaceId = namespaceLink.substring(namespaceLink.lastIndexOf(

我在Postman中有一个POST请求,带有以下测试

pm.test("CREATED - Status code is 201", function () {
    pm.response.to.have.status(201);
});

var namespaceLink = postman.getResponseHeader("Location");
var namespaceId = namespaceLink.substring(namespaceLink.lastIndexOf('/') + 1);

pm.environment.set("IdOfNamespace", namespaceId);
请求失败,出现“400错误请求”。 在本例中,我希望测试失败,出现类似“Expected 201 but Get 400”的情况,但测试失败的原因是“评估测试脚本时出错:TypeError:无法读取未定义的属性“substring” 我还在响应正文中收到以下消息:“名称空间'AUTO_NS'已在使用此代码”

由于请求是作为自动测试的一部分运行的(有很多请求),然后生成一个报告,因此我希望以在报告中更清楚地说明失败原因的方式设置测试。即来自响应主体的消息


你能帮我做一下吗(作为测试的一部分)

您只需将代码放在测试函数中即可。当你的
pm.response.to.have.status(201)时断言失败,chai抛出AssertionError,这意味着测试函数中的其他行将不会执行。在其他情况下,你可以走了。试试这个:

pm.test("CREATED - Status code is 201", () => {
    pm.response.to.have.status(201);
    const namespaceLink = postman.getResponseHeader("Location");
    const namespaceId = namespaceLink.substring(namespaceLink.lastIndexOf('/') + 1);
    pm.environment.set("IdOfNamespace", namespaceId);
});

测试将单独运行并失败到
pm.test()
函数之外的其他代码。如果
位置
响应头不是失败响应的一部分,那么它也不知道
名称空间链接
在引用中。您能否将其包装在
if
语句或
try/catch
块中?