diff --git a/src/main/java/org/bench4q/agent/api/TestController.java b/src/main/java/org/bench4q/agent/api/TestController.java index ba1a1f1b..88c9c46d 100644 --- a/src/main/java/org/bench4q/agent/api/TestController.java +++ b/src/main/java/org/bench4q/agent/api/TestController.java @@ -27,6 +27,7 @@ import org.bench4q.share.models.agent.AgentBriefStatusModel; import org.bench4q.share.models.agent.BehaviorBriefModel; import org.bench4q.share.models.agent.BehaviorStatusCodeResultModel; import org.bench4q.share.models.agent.CleanTestResultModel; +import org.bench4q.share.models.agent.PageBriefModel; import org.bench4q.share.models.agent.ParameterModel; import org.bench4q.share.models.agent.RunScenarioModel; import org.bench4q.share.models.agent.RunScenarioResultModel; @@ -192,6 +193,55 @@ public class TestController { return parameter; } + @RequestMapping(value = "/brief/{runId}/{behaviorId}", method = RequestMethod.GET) + @ResponseBody + public BehaviorBriefModel behaviorBrief(@PathVariable UUID runId, + @PathVariable int behaviorId) { + ScenarioContext scenarioContext = this.getScenarioEngine() + .getRunningTests().get(runId); + if (scenarioContext == null) { + return null; + } + Map map = scenarioContext + .getDataStatistics().getBehaviorBriefStatistics(behaviorId); + return buildBehaviorBrief(runId, behaviorId, map); + } + + private BehaviorBriefModel buildBehaviorBrief(UUID runId, int behaviorId, + Map map) { + List detailStatusCodeResultModels = new ArrayList(); + for (int statusCode : map.keySet()) { + BehaviorStatusCodeResultModel behaviorStatusCodeResultModel = new BehaviorStatusCodeResultModel(); + BehaviorStatusCodeResult detailStatusCodeResult = map + .get(statusCode); + behaviorStatusCodeResultModel.setStatusCode(statusCode); + behaviorStatusCodeResultModel + .setCount(detailStatusCodeResult.count); + behaviorStatusCodeResultModel + .setContentLength(detailStatusCodeResult.contentLength); + behaviorStatusCodeResultModel + .setMinResponseTime(detailStatusCodeResult.minResponseTime); + behaviorStatusCodeResultModel + .setMaxResponseTime(detailStatusCodeResult.maxResponseTime); + behaviorStatusCodeResultModel + .setContentType(detailStatusCodeResult.contentType); + behaviorStatusCodeResultModel + .setTotalResponseTimeThisTime(detailStatusCodeResult.totalResponseTimeThisTime); + detailStatusCodeResultModels.add(behaviorStatusCodeResultModel); + } + BehaviorBriefModel behaviorBriefModel = new BehaviorBriefModel(); + behaviorBriefModel.setBehaviorId(behaviorId); + behaviorBriefModel + .setDetailStatusCodeResultModels(detailStatusCodeResultModels); + return behaviorBriefModel; + } + + @RequestMapping(value = "/pageBrief/{pageId}") + public PageBriefModel pageBrief(@PathVariable int pageId) { + + return null; + } + @RequestMapping(value = "/behaviorsBrief/{runId}") @ResponseBody public TestBehaviorsBriefModel behaviorsBrief(@PathVariable UUID runId) { @@ -216,48 +266,6 @@ public class TestController { return ret; } - @RequestMapping(value = "/brief/{runId}/{behaviorId}", method = RequestMethod.GET) - @ResponseBody - public BehaviorBriefModel behaviorBrief(@PathVariable UUID runId, - @PathVariable int behaviorId) { - ScenarioContext scenarioContext = this.getScenarioEngine() - .getRunningTests().get(runId); - if (scenarioContext == null) { - return null; - } - Map map = scenarioContext - .getDataStatistics().getBehaviorBriefStatistics(behaviorId); - return buildBehaviorBrief(runId, behaviorId, map); - } - - private BehaviorBriefModel buildBehaviorBrief(UUID runId, int behaviorId, - Map map) { - List detailStatusCodeResultModels = new ArrayList(); - for (int statusCode : map.keySet()) { - BehaviorStatusCodeResultModel behaviorStatusCodeResultModel = new BehaviorStatusCodeResultModel(); - BehaviorStatusCodeResult detailStatusCodeResult = map.get(statusCode); - behaviorStatusCodeResultModel.setStatusCode(statusCode); - behaviorStatusCodeResultModel - .setCount(detailStatusCodeResult.count); - behaviorStatusCodeResultModel - .setContentLength(detailStatusCodeResult.contentLength); - behaviorStatusCodeResultModel - .setMinResponseTime(detailStatusCodeResult.minResponseTime); - behaviorStatusCodeResultModel - .setMaxResponseTime(detailStatusCodeResult.maxResponseTime); - behaviorStatusCodeResultModel - .setContentType(detailStatusCodeResult.contentType); - behaviorStatusCodeResultModel - .setTotalResponseTimeThisTime(detailStatusCodeResult.totalResponseTimeThisTime); - detailStatusCodeResultModels.add(behaviorStatusCodeResultModel); - } - BehaviorBriefModel behaviorBriefModel = new BehaviorBriefModel(); - behaviorBriefModel.setBehaviorId(behaviorId); - behaviorBriefModel - .setDetailStatusCodeResultModels(detailStatusCodeResultModels); - return behaviorBriefModel; - } - @RequestMapping(value = "/brief/{runId}", method = RequestMethod.GET) @ResponseBody public AgentBriefStatusModel brief(@PathVariable UUID runId) { diff --git a/src/main/java/org/bench4q/agent/datacollector/impl/AgentResultDataCollector.java b/src/main/java/org/bench4q/agent/datacollector/impl/AgentResultDataCollector.java index 67cb0167..a778ae5a 100644 --- a/src/main/java/org/bench4q/agent/datacollector/impl/AgentResultDataCollector.java +++ b/src/main/java/org/bench4q/agent/datacollector/impl/AgentResultDataCollector.java @@ -164,6 +164,12 @@ public class AgentResultDataCollector extends AbstractDataCollector { * @param behaviorResult */ private void addItem(BehaviorResult behaviorResult) { + statisticScenarioBriefResult(behaviorResult); + statisticPageBriefResult(behaviorResult); + statisticBehaviorBriefResult(behaviorResult); + } + + private void statisticScenarioBriefResult(BehaviorResult behaviorResult) { if (behaviorResult.isSuccess()) { this.successCountOfThisCall++; this.totalResponseTimeOfThisCall += behaviorResult @@ -183,11 +189,13 @@ public class AgentResultDataCollector extends AbstractDataCollector { } else { this.failCountOfThisCall++; } - - dealWithDetailResult(behaviorResult); } - private void dealWithDetailResult(BehaviorResult behaviorResult) { + private void statisticPageBriefResult(BehaviorResult behaviorResult) { + + } + + private void statisticBehaviorBriefResult(BehaviorResult behaviorResult) { insertWhenNotExist(behaviorResult); Map detailStatusMap = this.detailMap .get(behaviorResult.getBehaviorId()); @@ -199,24 +207,24 @@ public class AgentResultDataCollector extends AbstractDataCollector { .getContentType())); } - BehaviorStatusCodeResult detailResult = detailStatusMap + BehaviorStatusCodeResult statusCodeResult = detailStatusMap .get(behaviorResult.getStatusCode()); - detailResult.count++; + statusCodeResult.count++; if (!behaviorResult.isSuccess()) { - detailResult.maxResponseTime = 0; - detailResult.minResponseTime = 0; - detailResult.contentLength = 0; - detailResult.totalResponseTimeThisTime = 0; + statusCodeResult.maxResponseTime = 0; + statusCodeResult.minResponseTime = 0; + statusCodeResult.contentLength = 0; + statusCodeResult.totalResponseTimeThisTime = 0; return; } - detailResult.contentLength += behaviorResult.getContentLength(); - detailResult.totalResponseTimeThisTime += behaviorResult + statusCodeResult.contentLength += behaviorResult.getContentLength(); + statusCodeResult.totalResponseTimeThisTime += behaviorResult .getResponseTime(); - if (behaviorResult.getResponseTime() > detailResult.maxResponseTime) { - detailResult.maxResponseTime = behaviorResult.getResponseTime(); + if (behaviorResult.getResponseTime() > statusCodeResult.maxResponseTime) { + statusCodeResult.maxResponseTime = behaviorResult.getResponseTime(); } - if (behaviorResult.getResponseTime() < detailResult.minResponseTime) { - detailResult.minResponseTime = behaviorResult.getResponseTime(); + if (behaviorResult.getResponseTime() < statusCodeResult.minResponseTime) { + statusCodeResult.minResponseTime = behaviorResult.getResponseTime(); } }