Postman中如何验证不等于条件?我的测试代码未返回结果
问题:Postman测试未返回结果(验证两个ID不相等)
我需要验证API返回结果中第一个id值(1)与第二个id值(2)不相等,但使用下方测试代码后,Postman未返回任何测试结果。
API地址:https://jsonplaceholder.typicode.com/posts
错误的测试代码片段
var jsonData = JSON.parse(responseBody); tests["First and second Ids should not be same "+jsonData[0].id] != jsonData[1].id;
API返回示例结果
[ { "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" }, { "userId": 1, "id": 2, "title": "qui est esse", "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla" } ]
预期结果:Postman应返回测试通过的结果(两个id确实不相等),且该代码结构能正常验证等于条件。
解决方案
问题出在测试语句的赋值逻辑上:Postman的tests对象需要将布尔值赋值给测试项来标记测试状态,原代码仅做了不等判断,却没有把结果赋值给tests的属性,导致Postman无法识别测试条目。
正确的测试代码
var jsonData = JSON.parse(responseBody); tests["First and second Ids should not be same"] = jsonData[0].id !== jsonData[1].id;
带具体ID显示的版本(可选)
如果需要在测试名称中展示具体的ID值,可使用模板字符串:
var jsonData = JSON.parse(responseBody); var testName = `First and second Ids should not be same (${jsonData[0].id} vs ${jsonData[1].id})`; tests[testName] = jsonData[0].id !== jsonData[1].id;
说明
- 将判断的布尔结果(
true表示通过,false表示失败)赋值给tests对象的键,Postman才会在测试结果面板中显示该测试项,并根据布尔值标记状态。 - 使用
!==(严格不等)比!=更严谨,避免类型转换导致的意外问题。
内容的提问来源于stack exchange,提问作者Rajasubramanian SM
相关产品推荐
相关产品推荐

