【问题标题】:How do I get my Postman tests to pass using response body as the results?如何使用响应正文作为结果让我的邮递员测试通过?
【发布时间】:2019-04-29 12:08:09
【问题描述】:

我第一次尝试在 Postman 中编写测试。我正在使用包含pm.expectpm.test 方法。

这是我的测试:

//contract details tests
pm.test("Contract data is correct", function() {
        pm.expect(pm.response.json().results.contractNb).to.equal("00002");
        pm.expect(pm.response.json().results.progSrvcNm).to.equal("009");
});

我的回复是这样的:

{
    "contractNb": "00002",
    "progSrvcNm": "009",
    "contractPartyNm": "testContract",
    "terms": 30,
    "startDt": "2018-01-01"
}

【问题讨论】:

  • 什么是完整的响应正文? results 是对象数组吗?
  • 我无法包含完整的响应数据,因为它包含私人客户数据,但它是格式为 { "contractNb": "00002", "progSrvcNm": "009", "parameter ": "值" }
  • 我从丹尼那里找到了关于这个问题的答案。 stackoverflow.com/questions/49586400/… 谢谢!
  • 好的,您可以屏蔽所有敏感信息。我要问的不是数据,而是它的结构。这个答案现在有点老了,我觉得有一种更清洁的方法。如果您使用数据更新问题,仍然可以提供帮助。
  • 好的,我已经编辑了响应正文以反映测试数据。

标签: javascript postman postman-collection-runner


【解决方案1】:

鉴于您的响应正文数据 - 如果您仅删除 expect 语句的 .results 部分,则检查将通过。

pm.test("Contract data is correct", () => {
    pm.expect(pm.response.json().contractNb).to.equal("00002")
    pm.expect(pm.response.json().progSrvcNm).to.equal("009")
})

【讨论】:

  • 非常感谢!我使用 Postman 示例页面的结果获得了示例。展望未来,我应该使用它吗?
【解决方案2】:

正确的代码是 Danny Dainton 发布的。

pm.test('Contract details are correct for the passed in contract ID', () => {
    pm.expect(pm.response.json().contractNb).to.equal("00002");
    pm.expect(pm.response.json().progSrvcNm).to.equal("009");
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-07
    • 2022-08-10
    • 2017-11-09
    • 2018-11-29
    • 2019-04-30
    • 2021-10-26
    • 2014-07-09
    • 1970-01-01
    相关资源
    最近更新 更多