From ef495e95be6786041ba5cb38d9e8739de7a20c3e Mon Sep 17 00:00:00 2001 From: coderfengyun Date: Thu, 28 Aug 2014 08:47:02 +0800 Subject: [PATCH] add test about the bug emerging in sampling add test about the bug emerging in sampling --- .../master/domain/entity/RunningAgentDB.java | 3 +++ .../datastatistics/Test_ScriptSample.java | 20 +++++++++++++++++-- .../test/java/stubs/Mock_AgentMessenger.java | 18 +++++++++++++++-- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/Bench4Q-Master/src/main/java/org/bench4q/master/domain/entity/RunningAgentDB.java b/Bench4Q-Master/src/main/java/org/bench4q/master/domain/entity/RunningAgentDB.java index fa30089a..76bd8e20 100644 --- a/Bench4Q-Master/src/main/java/org/bench4q/master/domain/entity/RunningAgentDB.java +++ b/Bench4Q-Master/src/main/java/org/bench4q/master/domain/entity/RunningAgentDB.java @@ -227,6 +227,9 @@ public class RunningAgentDB implements RunningAgentInterface { @Override public TestBriefStatusModel briefAll() { + if (this.isStoped()) { + return null; + } return this.getAgentMessenger().scriptBriefAll(this.getAgent(), this.getAgentRunId()); } diff --git a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/datastatistics/Test_ScriptSample.java b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/datastatistics/Test_ScriptSample.java index ee627045..368bb496 100644 --- a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/datastatistics/Test_ScriptSample.java +++ b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/datastatistics/Test_ScriptSample.java @@ -10,9 +10,10 @@ import javax.xml.bind.JAXBException; import org.bench4q.master.domain.RunningAgentInterface; import org.bench4q.master.domain.entity.Agent; -import org.bench4q.master.domain.entity.RunningAgentDB; import org.bench4q.master.domain.factory.RunningAgentFactory; import org.bench4q.master.domain.valueobject.datastatistics.RunningScriptSampler; +import org.bench4q.share.enums.master.AgentStatus; +import org.bench4q.share.models.master.statistics.ScriptResultModel; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -36,7 +37,22 @@ public class Test_ScriptSample { runningAgents.add(this.runningAgentFactory .buildRunningAgentWithOutIdAndRunningScript( this.testcase2.get(0), 10, UUID.randomUUID())); + runningAgents.add(this.runningAgentFactory + .buildRunningAgentWithOutIdAndRunningScript( + this.testcase2.get(1), 20, UUID.randomUUID())); RunningScriptSampler sampler = new RunningScriptSampler(runningAgents); - assertNotNull(sampler.getResultModelFromAgent()); + long totalSuccessCountBeforeKill = sampler.getResultModelFromAgent() + .getScriptBriefResultModel().getTotalSuccessCountFromBegin(); + + kill(this.testcase2.get(0)); + + long totalSuccessCountAfterKill = sampler.getResultModelFromAgent() + .getScriptBriefResultModel().getTotalSuccessCountFromBegin(); + assertTrue(totalSuccessCountAfterKill >= totalSuccessCountBeforeKill); + + } + + private void kill(Agent agent) { + agent.setCurrentEnumStatus(AgentStatus.BreakDown); } } diff --git a/Bench4Q-Master/src/test/java/stubs/Mock_AgentMessenger.java b/Bench4Q-Master/src/test/java/stubs/Mock_AgentMessenger.java index d79f2278..52509e26 100644 --- a/Bench4Q-Master/src/test/java/stubs/Mock_AgentMessenger.java +++ b/Bench4Q-Master/src/test/java/stubs/Mock_AgentMessenger.java @@ -1,12 +1,14 @@ package stubs; import java.io.File; +import java.util.ArrayList; import java.util.List; import java.util.UUID; import org.bench4q.master.domain.entity.Agent; import org.bench4q.master.infrastructure.communication.AgentMessenger; import org.bench4q.share.enums.master.AgentStatus; +import org.bench4q.share.models.agent.BehaviorBriefModel; import org.bench4q.share.models.agent.RunScenarioModel; import org.bench4q.share.models.agent.RunScenarioResultModel; import org.bench4q.share.models.agent.ServerStatusModel; @@ -41,13 +43,25 @@ public class Mock_AgentMessenger implements AgentMessenger { @Override public TestBriefStatusModel scriptBriefAll(Agent agent, UUID runId) { + if (isDead(agent)) { + return null; + } TestBriefStatusModel result = new TestBriefStatusModel(); - result.setScenarioBriefModel(new AgentBriefStatusModel()); + AgentBriefStatusModel scenarioBriefModel = new AgentBriefStatusModel(); + scenarioBriefModel.setSuccessCountFromBegin(1000); + result.setScenarioBriefModel(scenarioBriefModel); result.setPagesBriefModel(new AgentPagesBriefModel()); - result.setBehaviorsBriefModel(new AgentBehaviorsBriefModel()); + AgentBehaviorsBriefModel behaviorsBriefModel = new AgentBehaviorsBriefModel(); + behaviorsBriefModel + .setBehaviorBriefModels(new ArrayList()); + result.setBehaviorsBriefModel(behaviorsBriefModel); return result; } + private boolean isDead(Agent agent) { + return agent.getCurrentEnumStatus() == AgentStatus.BreakDown; + } + @Override public StopTestModel stop(Agent agent, UUID runId) { // if (runId == this.testId) {