是否有一种简单的方法可以捕获PostMan脚本中请求和响应的响应时间?
我尝试通过创建Collection然后在Tests中执行以下操作,编写以下脚本来捕获并将值放入Environment变量中:
postman.setEnvironmentVariable("MyURLRequest", (responseTime));
这为我提供了环境变量中的值,但我需要每次都去那里检查时间。
我尝试过的另一种方法是使用集合上的“Runner”并从导出结果中的“totalRequestTime”值获取响应时间。但是当我运行~50个请求时,很难为每个请求捕获相同的内容。
有没有人尝试过这个,并且能够更好地捕获和导出每个发出的请求的响应时间值?
答案 0 :(得分:3)
您可以使用内置的pm.response.responseTime
函数来获取时间。
在测试中将其添加到console.log(pm.response.responseTime)
,尝试将其分配给env / global变量。
你甚至可以(虽然这有点过于杀人)这样做:
如果您在每次测试中都不想要它,可以将其添加到集合中。在最新版本上,按集合上的编辑以查看选项。
答案 1 :(得分:1)
我可以使用以下代码在纽曼上实现这一目标:
"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);",
"});"
]
}
}
]
答案 2 :(得分:0)
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);
});
输出:
答案 3 :(得分:-1)
.... omitted
ServerOAuth2AuthorizedClientExchangeFilterFunction oauthFilter = new
ServerOAuth2AuthorizedClientExchangeFilterFunction(authorizedClientManager);
oauthFilter.setDefaultClientRegistrationId(OAUTH_PROVIDER_NAME);
return WebClient.builder()
.clientConnector(new JettyClientHttpConnector(createHttpClient()))
.exchangeStrategies(getMaxMessageInMemorySize(maxInMemorySize))
.baseUrl(baseURL)
.filter(oauthFilter)
.build();
}
private ReactiveOAuth2AuthorizationFailureHandler getReactiveOAuth2AuthorizationFailureHandler() {
final ReactiveOAuth2AuthorizationFailureHandler reactiveOAuth2AuthorizationFailureHandler = (authorizationException, principal, attributes) -> {
if (authorizationException instanceof ClientAuthorizationException) {
ClientAuthorizationException clientAuthorizationException = (ClientAuthorizationException)authorizationException;
return Mono.error(new MyUnAuthorizedRequestException("401","Could not authorize client", clientAuthorizationException.getMessage()));
} else {
return Mono.empty();
}
};
return reactiveOAuth2AuthorizationFailureHandler;
}
以上代码将为您提供毫秒级的响应时间。