diff --git a/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/aop/MockCallAop.java b/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/aop/MockCallAop.java index a398d17e3232ba381b64d4802e74d5de15e92df8..aa279804fdaad08f59cd59afccceb1dacf7b269b 100644 --- a/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/aop/MockCallAop.java +++ b/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/aop/MockCallAop.java @@ -32,8 +32,13 @@ public class MockCallAop { @Around("callAop()") public Object doBefore(ProceedingJoinPoint pjp) throws Throwable { Object[] args = pjp.getArgs(); + long startTime = System.currentTimeMillis(); + // invoke Object returnVal = pjp.proceed(); - eventDispatcher.fire(new MockCallEvent(String.valueOf(args[0]), String.valueOf(args[1]), (MockCallWrapper) returnVal), false); + long endTime = System.currentTimeMillis(); + + eventDispatcher.fire(new MockCallEvent(String.valueOf(args[0]), String.valueOf(args[1]), (endTime - startTime), (MockCallWrapper) returnVal), false); + return returnVal; } } diff --git a/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/event/call/MockCallEvent.java b/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/event/call/MockCallEvent.java index 92a10ce394d8aec22b6a07569b495bf3d56a252e..ecca2f36b61cd92967b2b722dc7b034fc8e65896 100644 --- a/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/event/call/MockCallEvent.java +++ b/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/event/call/MockCallEvent.java @@ -19,6 +19,10 @@ public class MockCallEvent extends AmcCloudEvent { * mock请求参数 */ private String mockCallRequest; + /** + * 执行时间 + */ + private long runtime; /** * Mock请求Wrapper */ @@ -27,9 +31,10 @@ public class MockCallEvent extends AmcCloudEvent { public MockCallEvent() { } - public MockCallEvent(String mockCallUuid, String mockCallRequest, MockCallWrapper wrapper) { + public MockCallEvent(String mockCallUuid, String mockCallRequest, long runtime, MockCallWrapper wrapper) { this.mockCallUuid = mockCallUuid; this.mockCallRequest = mockCallRequest; + this.runtime = runtime; this.wrapper = wrapper; } @@ -49,6 +54,14 @@ public class MockCallEvent extends AmcCloudEvent { this.mockCallUuid = mockCallUuid; } + public long getRuntime() { + return runtime; + } + + public void setRuntime(long runtime) { + this.runtime = runtime; + } + public MockCallWrapper getWrapper() { return wrapper; } diff --git a/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/event/call/MockCallEventListener.java b/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/event/call/MockCallEventListener.java index 4d7b8ab02da94a812da9c069f82eccb5210dffd2..0c6d2f2bd2e68b849b53b66152ac3deea9e3e9b1 100644 --- a/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/event/call/MockCallEventListener.java +++ b/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/event/call/MockCallEventListener.java @@ -1,12 +1,12 @@ package cn.icanci.loopstack.amc.cloud.biz.event.call; -import cn.icanci.loopstack.amc.cloud.biz.service.AppMockTestService; -import cn.icanci.loopstack.lsi.event.BaseEventListener; - import javax.annotation.Resource; import org.springframework.stereotype.Service; +import cn.icanci.loopstack.amc.cloud.biz.service.AppMockTestService; +import cn.icanci.loopstack.lsi.event.BaseEventListener; + /** * @author icanci * @since 1.0 Created in 2023/01/16 20:10 @@ -19,7 +19,7 @@ public class MockCallEventListener extends BaseEventListener { @Override protected void event(MockCallEvent event) { - appMockTestService.log(event.getMockCallUuid(), event.getMockCallRequest(), event.getWrapper()); + appMockTestService.log(event.getMockCallUuid(), event.getMockCallRequest(), event.getRuntime(), event.getWrapper()); } @Override diff --git a/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/service/AppMockTestService.java b/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/service/AppMockTestService.java index a97234c02371be3ac2c7aa4d1d6a9741a1835a22..6a04b8b4110f5141686d2be482dfa502d616c591 100644 --- a/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/service/AppMockTestService.java +++ b/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/service/AppMockTestService.java @@ -15,7 +15,8 @@ public interface AppMockTestService { * * @param mockUuid mockUuid * @param request 执行请求 + * @param runtime 方法执行时间 * @param wrapper Wrapper对象 */ - void log(String mockUuid, String request, MockCallWrapper wrapper); + void log(String mockUuid, String request, long runtime, MockCallWrapper wrapper); } diff --git a/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/service/impl/AppMockTestServiceImpl.java b/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/service/impl/AppMockTestServiceImpl.java index 85005bd4c22f173363ccc24f79bbf362c444f557..26e5fb9feddba9d82ca7ab1f0cca318da6c7c838 100644 --- a/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/service/impl/AppMockTestServiceImpl.java +++ b/biz/src/main/java/cn/icanci/loopstack/amc/cloud/biz/service/impl/AppMockTestServiceImpl.java @@ -27,7 +27,7 @@ public class AppMockTestServiceImpl implements AppMockTestService { private AppMockCallReportDAO appMockCallReportDAO; @Override - public void log(String mockUuid, String request, MockCallWrapper wrapper) { + public void log(String mockUuid, String request, long runtime, MockCallWrapper wrapper) { logger.info("[AppMockTestService][log] mockUuid:{},request:{},wrapper:{}", mockUuid, request, JSONUtil.toJsonStr(wrapper)); AppMockCallReportDO report = new AppMockCallReportDO(); @@ -35,6 +35,7 @@ public class AppMockTestServiceImpl implements AppMockTestService { report.setMockName(wrapper.getMockName()); report.setMockUuid(wrapper.getMockUuid()); report.setMockRequest(wrapper.getMockRequest()); + report.setRuntime(runtime); report.setMockErrorMessage(wrapper.getMockErrorMessage()); // hutool 的包方法,null值吃掉了,此处需要展示null值 report.setMockResponse(JSON.toJSONString(wrapper.getMockResponse(), SerializerFeature.WriteMapNullValue)); diff --git a/dal/src/main/java/cn/icanci/loopstack/amc/cloud/dal/mongodb/dataobject/AppMockCallReportDO.java b/dal/src/main/java/cn/icanci/loopstack/amc/cloud/dal/mongodb/dataobject/AppMockCallReportDO.java index 2efbcb226aa38586ac4be55a533c65b8acc76c13..8e9fbba44a6fcee6381bf906c6f7ed254f9e21a5 100644 --- a/dal/src/main/java/cn/icanci/loopstack/amc/cloud/dal/mongodb/dataobject/AppMockCallReportDO.java +++ b/dal/src/main/java/cn/icanci/loopstack/amc/cloud/dal/mongodb/dataobject/AppMockCallReportDO.java @@ -21,6 +21,10 @@ public class AppMockCallReportDO extends BaseDO { * mock执行的请求 */ private String mockRequest; + /** + * mock执行时间 + */ + private long runtime; /** * mock执行的异常信息 */ @@ -62,6 +66,14 @@ public class AppMockCallReportDO extends BaseDO { this.mockRequest = mockRequest; } + public long getRuntime() { + return runtime; + } + + public void setRuntime(long runtime) { + this.runtime = runtime; + } + public String getMockErrorMessage() { return mockErrorMessage; }