Testing 邮递员:支票日期等于昨天的日期

Testing 邮递员:支票日期等于昨天的日期,testing,automation,postman,Testing,Automation,Postman,我正在使用Postman运行GET请求,JSON响应如下: { "Version": "1.0.524.0", "BuildName": "Live", "BuildDate": "04/12/2018 18:58:50.85 \r\n" } 构建日期每天递增一个,我想写一个脚本来检查日期是否递增,如果没有,则测试失败 目前我有: pm.test("Check Build Date", function (CheckDate) { pm.expect(pm.re

我正在使用Postman运行GET请求,JSON响应如下:

{
    "Version": "1.0.524.0",
    "BuildName": "Live",
    "BuildDate": "04/12/2018 18:58:50.85 \r\n"
}
构建日期每天递增一个,我想写一个脚本来检查日期是否递增,如果没有,则测试失败

目前我有:

pm.test("Check Build Date", function (CheckDate) {
    pm.expect(pm.response.text()).to.include("04/12/2018 18:58:50.85");
});
但是,我知道如果我明天运行此脚本,它将不起作用,我将得到以下错误:

FAIL Check Build Date | AssertionError: expected '{"Version":"1.0.524.0","BuildName":"Live","BuildDate":"05/12/2018 18:58:50.85 \\r\\n"}' to include '04/12/2018 18:58:50.85'

有人可以帮忙吗?

如果您的响应主体是一个对象,就像您的问题一样,您可以使用
pm.response.json().BuildDate
并检查它是否等于该值

pm.test("Check Build Date", () => {
    pm.expect(pm.response.json().BuildDate).to.equal("04/12/2018 18:58:50.85 \r\n");
});
不确定为什么在该响应中有字符串形式的
\r\n
值,我觉得它们似乎位于错误的位置


要知道一天增加了1,您需要存储上次运行的状态并进行检查。您可以将其设置为
环境
变量

发送初始请求以获取并设置
BuildDate
。现在,您将在
检查
请求中使用该值

pm.environment.set('lastBuildDate',pm.response.json().BuildDate)

在支票请求中,您可以有如下内容:

const moment = require('moment')

let dateDiff = moment(pm.reponse.json().BuildDate).isAfter(pm.environment.get('lastBuildDate'))

pm.test("Check Build Date", () => {
    pm.expect(dateDiff).to.be.true
})
const moment = require('moment')

let dateNow  = moment().format("DD/MM/YYYY hh:mm:ss.SS")
let dateDiff = moment(pm.response.json().BuildDate).isAfter(dateNow)

pm.test("Check Build Date", () => {
    pm.expect(dateDiff).to.be.true
})

如果您只需要检查
BuildDate
是否在您发出请求的时间之后,那么您可以使用以下内容:

const moment = require('moment')

let dateDiff = moment(pm.reponse.json().BuildDate).isAfter(pm.environment.get('lastBuildDate'))

pm.test("Check Build Date", () => {
    pm.expect(dateDiff).to.be.true
})
const moment = require('moment')

let dateNow  = moment().format("DD/MM/YYYY hh:mm:ss.SS")
let dateDiff = moment(pm.response.json().BuildDate).isAfter(dateNow)

pm.test("Check Build Date", () => {
    pm.expect(dateDiff).to.be.true
})

这显然不是您想要做的,但我建议您查看一下模块,看看其中是否有您可以用于您的用例的内容

感谢您的回复:)我想让脚本测试日期是否已经增加了一天。你建议的脚本将需要每天编辑,这是我试图避免的。加上它包含了构建时间,我不希望它这样,因为构建时间是随机的,每晚。我希望这是有道理的。我的回答是一个例子,说明你可以做什么,考虑到你的问题。我在回答中提到,当日期改变时,这将失败。我没想到每次你开支票的时候都是这个字符串。除非你保持某种状态,否则你怎么知道每天是否增加了一天呢。更新了我的回答谢谢Danny-这是一个很大的帮助:)接受了答案:)我的声望不到15,所以我的支持票不会公开显示。