Postman:如何在 Postman 自动化中检查字段是不是返回 null
Posted
技术标签:
【中文标题】Postman:如何在 Postman 自动化中检查字段是不是返回 null【英文标题】:Postman: How to check whether the field is returning null in the Postman automationPostman:如何在 Postman 自动化中检查字段是否返回 null 【发布时间】:2017-08-17 00:30:40 【问题描述】:我已尝试使用 !== null
,但即使字段返回 0
或空字符串,它也会返回 PASS。
【问题讨论】:
【参考方案1】:您必须将 + [i] 放在要在 tests[] 上验证的函数之后,这样只有它会在每个数组上返回有效语句。例如,
function checkIsNull()
var items = json.data.pois.items
var PlaceIdIsNull = true;
var subTypeExtraIsNull = true;
var websiteIsNull = true;
for (var i = 0; i < items.length; i++)
if (items[i].placeId !== null)
PlaceIdIsNull = false;
if (items[i].subTypeExtra !== null)
subTypeExtraIsNull = false;
if (items[i].website === null)
websiteIsNull = false;
tests['website is null only happened on these arrays' + [i]] = true;
tests['Place ID is null '] = PlaceIdIsNull
tests['subTypeExtra is null '] = subTypeExtraIsNull
checkIsNull();
结果:
PASS 地点 ID 为空
PASS subTypeExtra 为空
【讨论】:
【参考方案2】:这适用于 2019 年 3 月:
pm.test("To Check if Value is Null", function()
var jsonData = pm.response.json();
pm.expect(jsonData.<yourfield>).not.eq(undefined);
);
【讨论】:
.is.not.undefined
也可以。如果您也真的关心 null,请使用 is.not.oneOf([null, undefined])
。
这是我必须寻找的第五个版本(毫不夸张)。工作几个星期,然后停止。这些解决方案对我不起作用。 .to.eql(null) 也没有,这是我在谷歌搜索之前所拥有的,截至今天它不再为我工作。【参考方案3】:
Postman 不会将不存在的路径引用为 null,而是未定义。
pm.expect(JsonResponse.FAKE.PATH).not.eql(undefined);
这个测试应该失败,因为这个假的 json 路径实际上是未定义的。
【讨论】:
【参考方案4】:如果您正在检查列表中返回的第一项的 Id,您可以使用 not.equal(null)
:
pm.expect(pm.response.json().value[0].Id).not.equal(null);
请注意,“equal”这个词是完整拼写出来的,尽管缩短的“eql”确实有效。
【讨论】:
不确定.to
是否是多余的,但这是我使用的。【参考方案5】:
试试这个:
pm.test("your-value is not null", function ()
var jsonData = pm.response.json();
pm.expect(jsonData.your_value).not.eql(null);
);
【讨论】:
【参考方案6】:你试过了吗
pm.expect(response.your_field).to.eql(null);
?
【讨论】:
OP 要求 不等于【参考方案7】:我遇到了类似的问题。但是以以下方式检查它对我有用
tests["Item is not null"] =
jsonData.item !== undefined;
【讨论】:
【参考方案8】:怎么样:
var jsonData = JSON.parse(responseBody);
tests["Item is not null"] =
jsonData.item !== null &&
jsonData.item !== ' ' &&
jsonData.item !== 0;
【讨论】:
【参考方案9】:我也做过类似的,这是代码的一部分,它运行良好 检查此代码
var jsonData = JSON.parse(responseBody);
for(i=0; i<jsonData.data.length; i++)
tests["due date is between given date range"] = jsonData.data[i].duedate < environment.Cenddate && jsonData.data[i].duedate > environment.Cstartdate;
tests["response body has department name"] = jsonData.data[i].department.name !== null;
【讨论】:
【参考方案10】:您可以像这样访问响应 json:
var json = JSON.parse(responseBody);
var yourVAr = json.yourVar
if(yourVar == null)
//your var is null here
【讨论】:
以上是关于Postman:如何在 Postman 自动化中检查字段是不是返回 null的主要内容,如果未能解决你的问题,请参考以下文章
使用 Postman 的预请求脚本实现自动刷新接口凭证建议收藏