PostMan 脚本的响应时间

Response times from PostMan scripts

是否有一种简单的方法来捕获 PostMan 脚本中请求和响应的响应时间?

我正在尝试通过创建一个集合然后在测试中执行以下操作,编写以下脚本来捕获并将值放入环境变量中:

postman.setEnvironmentVariable("MyURLRequest", (responseTime));

这为我提供了环境变量中的值,但我每次都需要专门去那里查看时间。

我尝试过的另一种方法是在集合上使用 'Runner' 并从导出结果中的 "totalRequestTime" 值获取响应时间。但是因为我是 运行 ~50 个请求,所以很难为每个单独的请求捕获相同的请求。

有没有人更早地尝试过这个并且能够获得更好的方法来捕获和导出每个发出的请求的响应时间值?

您可以使用 built-in pm.response.responseTime 函数来获取时间。

将它添加到测试中的 console.log(pm.response.responseTime) 中,进行测试或将其分配给 env/global 变量。

你甚至可以(虽然有点过头了)这样做:

如果您不想在每次测试中使用它,可以将其添加到 collection。在最新版本中,按 collection 上的编辑以查看选项。

我可以使用以下代码在 Newman 上实现此目的:

"event": [
    {
    "listen": "test",
    "script": {
        "id": "aaaaaaaa-1111-4444-aaaa-000000011111",
        "exec": [                   
                  "var rtm = pm.response.responseTime",
                  "var rts = rtm/1000",

                  "pm.test(\"Check response time and Status\", function () {",
                  "pm.response.to.have.status(200);",

                  "console.log(\"Response time in mili seconds\" , rtm);",
                  "console.log(\"Response time in seconds\" , rts);",
                   "});"    
                ]
            }
     }
]
var time=pm.response.responseTime
pm.test('Set Filter up to 3 month and check the Response time in millisecond(1 Sec =1000 millisecond):-> ' +time ,()=>
pm.expect(pm.response.code).to.eql(200));

以上代码将为您提供以毫秒为单位的响应时间。

pm.test("Response time is less than 200ms", () => {
 pm.expect(pm.response.responseTime).to.be.below(200);
});

上面scriipt是测试响应时间,要打印响应时间你可以这样做

pm.test("Response time is less than 200ms which is "+pm.response.responseTime, () => {
 pm.expect(pm.response.responseTime).to.be.below(200);
});

输出: