【问题标题】: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。

【问题讨论】:

    标签: javascript api testing automated-tests postman


    【解决方案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
                    }
                

                【讨论】:

                  猜你喜欢
                  • 2014-10-10
                  • 2017-10-13
                  • 2019-03-04
                  • 2018-09-30
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-12-18
                  • 2019-09-21
                  相关资源
                  最近更新 更多