add test for ratio take effect
add test for ratio take effect
This commit is contained in:
parent
bc164c3ece
commit
836a4102db
|
@ -70,6 +70,7 @@ public class Solution {
|
||||||
new int[] { 1, 2, 2 }));
|
new int[] { 1, 2, 2 }));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void test1() {
|
public void test1() {
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -183,9 +183,7 @@ public class RunningAgentDB implements RunningAgentInterface {
|
||||||
.tryUnmarshal(RunScenarioModel.class, this.getTestPlanScript()
|
.tryUnmarshal(RunScenarioModel.class, this.getTestPlanScript()
|
||||||
.getFilteredScriptCnt());
|
.getFilteredScriptCnt());
|
||||||
runScenarioModel.setPoolSize(getLoadInUse());
|
runScenarioModel.setPoolSize(getLoadInUse());
|
||||||
ScheduleModel scheduleModel = (ScheduleModel) MarshalHelper
|
ScheduleModel scheduleModel = generateScheduleModelWithRatio();
|
||||||
.tryUnmarshal(ScheduleModel.class, this.getTestPlanScript()
|
|
||||||
.getScheduleContent());
|
|
||||||
RunScenarioResultModel runScenarioResultModel = this
|
RunScenarioResultModel runScenarioResultModel = this
|
||||||
.getAgentMessenger().submitScenrioWithParams(this.getAgent(),
|
.getAgentMessenger().submitScenrioWithParams(this.getAgent(),
|
||||||
this.getAgentRunId(), script2.loadParamFiles(),
|
this.getAgentRunId(), script2.loadParamFiles(),
|
||||||
|
@ -197,6 +195,19 @@ public class RunningAgentDB implements RunningAgentInterface {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ScheduleModel generateScheduleModelWithRatio() {
|
||||||
|
ScheduleModel scheduleModel = (ScheduleModel) MarshalHelper
|
||||||
|
.tryUnmarshal(ScheduleModel.class, this.getTestPlanScript()
|
||||||
|
.getScheduleContent());
|
||||||
|
int totolRequireLoad = this.getTestPlanScript().getRequireLoad();
|
||||||
|
if (totolRequireLoad <= 0) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
"The require load can't be less than 0!!");
|
||||||
|
}
|
||||||
|
double ratio = (double) this.getLoadInUse() / (double) totolRequireLoad;
|
||||||
|
return scheduleModel.ratioIntoEffect(ratio);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
package org.bench4q.master.domain.valueobject.schedulscript;
|
|
||||||
|
|
||||||
import java.util.TimerTask;
|
|
||||||
|
|
||||||
public class WarmUpOverTask extends TimerTask {
|
|
||||||
public WarmUpOverTask() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
System.out.println("warm up over and start to execute!");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -3,6 +3,7 @@ package org.bench4q.master.unitTest.entity;
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -16,6 +17,7 @@ import org.bench4q.master.domain.valueobject.transaction.TransactionFactory;
|
||||||
import org.bench4q.master.domain.valueobject.transaction.impl.ScriptLoadApplication;
|
import org.bench4q.master.domain.valueobject.transaction.impl.ScriptLoadApplication;
|
||||||
import org.bench4q.master.unitTest.TestBase_MakeUpTestPlan;
|
import org.bench4q.master.unitTest.TestBase_MakeUpTestPlan;
|
||||||
import org.bench4q.share.enums.master.TestPlanStatus;
|
import org.bench4q.share.enums.master.TestPlanStatus;
|
||||||
|
import org.bench4q.share.models.agent.scriptrecord.ScheduleModel;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -144,4 +146,21 @@ public class Test_RunningAgent extends TestBase_MakeUpTestPlan {
|
||||||
assertTrue(runningAgentDB.stop());
|
assertTrue(runningAgentDB.stop());
|
||||||
assertTrue(runningAgentDB.stop());
|
assertTrue(runningAgentDB.stop());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_RatioIntoEffectWithRatioHalf() {
|
||||||
|
ScheduleModel scheduleModel = new ScheduleModel();
|
||||||
|
double ratio = 0.5;
|
||||||
|
scheduleModel.getPoints().addAll(
|
||||||
|
Arrays.asList(new ScheduleModel.PointModel(0, 0),
|
||||||
|
new ScheduleModel.PointModel(30, 100)));
|
||||||
|
ScheduleModel target = scheduleModel.ratioIntoEffect(0.5);
|
||||||
|
for (int i = 0; i < scheduleModel.getPoints().size(); i++) {
|
||||||
|
assertEquals(target.getPoints().get(i).getTimeInSecond(),
|
||||||
|
scheduleModel.getPoints().get(i).getTimeInSecond());
|
||||||
|
assertEquals(
|
||||||
|
(int) (scheduleModel.getPoints().get(i).getLoad() * ratio),
|
||||||
|
target.getPoints().get(i).getLoad());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,16 @@ public class ScheduleModel {
|
||||||
this.points = new LinkedList<PointModel>();
|
this.points = new LinkedList<PointModel>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ScheduleModel ratioIntoEffect(double ratio) {
|
||||||
|
ScheduleModel result = new ScheduleModel();
|
||||||
|
for (PointModel old : this.getPoints()) {
|
||||||
|
result.getPoints().add(
|
||||||
|
new PointModel(old.getTimeInSecond(),
|
||||||
|
(int) (old.getLoad() * ratio)));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public long getExecuteRange() {
|
public long getExecuteRange() {
|
||||||
if (this.points.size() == 0) {
|
if (this.points.size() == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue