如何在postman pm.test中使用OR运算符

时间:2017-10-25 16:48:29

标签: postman

我正在尝试创建一个测试,检查json响应是否包含一个属性或另一个属性。

我的例子:

pm.expect(jsonData.data.owner).to.have.property(('orgName') || ('firstName'));

出于某种原因,我无法在新的pm中找到or运营商的文档。语法。

3 个答案:

答案 0 :(得分:1)

使用oneOf()方法

pm.expect(jsonData.carrierType.type).to.be.oneOf(["mobile", "landline"]);

答案 1 :(得分:0)

首先你滥用pm.expect,你应该做类似

的事情
pm.expect(jsonData.data.owner).to.have.property('property_name','property_value)

我担心实施或条件不直接......参见示例here

答案 2 :(得分:0)

我一直在寻找在邮递员测试中实施OR的答案,但未找到任何答案。我已经完成了一个简单的if语句,以确定应该检查哪些条件。 (了解业务逻辑)。在我的应用程序中,我必须检查我们是否支持德语,但是如果默认情况下我们不将其设置为英语。这很容易,因为我从json中获取了值,然后手动检查了哪个条件应该是有效的。这可能会帮助您和其他任何人进一步执行此操作。所以对我来说,看起来像这样:

   pm.test("German language support.", function(){
   var jsonData = pm.response.json();
      if(jsonData.count() > 0){
          var langCode = jsonData[0].language.code;
          if(langCode === "en"){
          pm.expect(jsonData[0].language.code).to.eql("en") ;
          }else{
                 pm.expect(jsonData[0].language.code).to.eql("de") 
          }
      }
});