如何在spring或使用junit获取rest api的执行时间(获得响应的时间)

Posted

技术标签:

【中文标题】如何在spring或使用junit获取rest api的执行时间(获得响应的时间)【英文标题】:How to get the execution time(time to get response) of rest api in spring or using junit 【发布时间】:2017-10-23 00:08:30 【问题描述】:

我想节省rest api的执行时间。这与我们在邮递员中看到的状态相同。 Junit有什么办法吗?

提前致谢

【问题讨论】:

【参考方案1】:

您可以手动完成。

示例:

long time = System.currentTimeMillis();
Response response = server.newRequest("/requesturl").request().buildPost(Entity.text("45")).invoke();
long responseTime = (System.currentTimeMillis() - time);
save(responseTime);

或者如果您想测试响应时间,请查看here

【讨论】:

没错。给出的链接非常有帮助。谢谢【参考方案2】:

手动方式确实很简单。尤其是在 Java 8 中你可以做到的地方

private void timed(Runnable r) 
    long time = System.currentTimeMillis();
    r.run();
    long responseTime = (System.currentTimeMillis() - time);
    save(responseTime);

在 JUnit 中,您有 Stopwatch 规则,允许您计算测试执行。

Codahale 也有一个 @Timed 注释,其结果可以发送给收集器。但是要使这一切正常工作,还需要更多的布线。

【讨论】:

以上是关于如何在spring或使用junit获取rest api的执行时间(获得响应的时间)的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot webservice (REST) - 如何将 JUnit 5 测试从基本身份验证更改为 OAuth2 (Keycloak)

如何使用 junit 为 JPA REST API 编写测试用例?

如何在 Spring-Boot-REST 调用中获取用户信息?

如何使用 AngularJS 的 $resource 和 spring rest 控制器获取布尔值

Spring整合Junit测试

如何在 Spring Junit 中创建会话