邮递员 - 如何使用变量来比较邮件

时间:2018-02-09 10:50:13

标签: postman

任何人都可以帮助我,我在邮递员方面几乎是新人。

我的问题如下:

  • 我发送了一个POST请求并收到了一条消息:

    {     " errorCode":1000,     " errorDescription":"帐户未经管理员验证!" }

  • 此邮件已保存在名为" messageAccountIsnotVerified "

  • 的var中
  • 当我尝试在postman tets脚本中使用比较并将该消息与预期字符串进行比较时工作正常:
pm.test("test", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.errorCode).to.eql(1000);
    pm.expect(jsonData.errorDescription).to.eql("Account is not verified by Admin!");
});

但是当我尝试保存字符串文本时"管理员未验证帐户!" 在名为 messageAccountIsnotVerified 的变量中 并尝试进行相同的比较

pm.test("test", function () {
    var jsonData = pm.response.json();

    pm.expect(jsonData.errorCode).to.eql(1000);
    pm.expect(jsonData.errorDescription).to.eql("messageAccountIsnotVerified");
});

pm.test("test", function () {
    var jsonData = pm.response.json();
    var message = pm.environment.get("messageAccountIsnotVerified");
    pm.expect(jsonData.errorCode).to.eql(1000);
    pm.expect(jsonData.errorDescription).to.eql(message);
});
错误 错误
test | AssertionError: expected 'Account is not verified by Admin!' to deeply equal 'messageAccountIsnotVerified'

有人可以向我解释 1.什么是"非常平等"意思是 我错了什么 3.如何使用变量

来使用断言

感谢任何提示

  

附加信息:我在比较电子邮件时遇到同样的问题   @签到另一条消息 - 所以我认为可能与特殊字符有关

1 个答案:

答案 0 :(得分:3)

您需要以下列方式获取变量:

pm.expect(jsonData.errorDescription).to.deep.equal(pm.environment.get("messageAccountIsnotVerified"))

.to.deep.equal可用于在嵌套对象中进一步引用某些内容。

  

在链中添加.deep以使用深度相等。有关深度相等算法的信息,请参阅deep-eql项目页面:https://github.com/chaijs/deep-eql

查看您发布的{ "errorCode": 1000, "errorDescription": "Account is not verified by Admin!" }的回复正文,我没有看到第一次测试的问题,但是要抱怨deep equal,那么此回复可能与您发布的不完全相同

Postman

如果你愿意,你可以再次减少这一切:

pm.test("test", () => {
    pm.expect(pm.response.json()).to.deep.equal({"errorCode": 1000, "errorDescription": "Account is not verified by Admin!"})
});

该测试将与上述相同。