邮递员测试 - 使用 http 状态进行调节

Nic*_*icO 8 javascript testing http http-status-code-404 postman

我想检查答案是否正确。响应码为 200 或 500 时正确。后者需要区分响应正文中的字符串是正确的还是不正确的。它应该在单个测试中。

我已经尝试过简单的 if 子句,但它们不起作用。

pm.test("response is ok", function(){
    if(pm.response.to.have.status(200)){
        //do things
    }     
});
Run Code Online (Sandbox Code Playgroud)

编辑:

我使用的解决方案是

pm.test("response is valid", function(){
if(pm.response.code === 200){
    //is ok
} else if (pm.response.code === 500){
    if(pm.expect(pm.response.json().message).to.include("xyz")){
        //is ok
    } else {
       pm.expect.fail("Error 500"); 
    }
} else {
    pm.expect.fail("statuscode not 200 or 500");
}
Run Code Online (Sandbox Code Playgroud)

});

Dan*_*ton 8

如果状态代码为200

pm.test('Check Status', () => {
    if(pm.response.code === 200) {
        console.log("It's 200")
    }
})
Run Code Online (Sandbox Code Playgroud)

如果您需要在response body之后检查某些内容,您可以执行如下例所示的操作。

这仅仅是发送一个简单的GET请求http://jsonplaceholder.typicode.com/posts/1

响应主体将是:

{
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
Run Code Online (Sandbox Code Playgroud)

我们可以在添加一个检查Tests标签,以确认id酒店的价值1,也只是运行该检查,如果response code200

if(pm.response.code === 200) {
    pm.test('Check a value in the response', () => {
        pm.expect(pm.response.json().id).to.eql(1)
    })
}
Run Code Online (Sandbox Code Playgroud)

这是一个非常基本且非常简单的示例,说明您可以做什么。根据您自己的上下文,它会更复杂,但希望它解释了您如何做到这一点。