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)
});
如果状态代码为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 code
是200
:
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)
这是一个非常基本且非常简单的示例,说明您可以做什么。根据您自己的上下文,它会更复杂,但希望它解释了您如何做到这一点。