add test about load result data from database, until now, i just finish

the scriptBriefResultMOdel part
This commit is contained in:
coderfengyun 2013-12-26 17:04:49 +08:00
parent b76c138f6e
commit 14c8800a99
22 changed files with 441 additions and 116 deletions

View File

@ -3,9 +3,9 @@ package org.bench4q.master.api;
import java.util.UUID; import java.util.UUID;
import org.bench4q.master.exception.Bench4QException; import org.bench4q.master.exception.Bench4QException;
import org.bench4q.master.service.db.TestPlanScriptService; import org.bench4q.master.service.db.TestPlanScriptResultService;
import org.bench4q.master.service.db.UserService; import org.bench4q.master.service.db.UserService;
import org.bench4q.share.models.master.ScriptProcessModel; import org.bench4q.share.models.master.ResultLoadModel;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
@ -14,31 +14,33 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
@Controller @Controller
@RequestMapping("/TestPlanResult") @RequestMapping("/testPlanResult")
public class TestPlanResulController extends BaseController { public class TestPlanResulController extends BaseController {
private TestPlanScriptService testPlanScriptService; private TestPlanScriptResultService testPlanScriptResultService;
public TestPlanScriptService getTestPlanScriptService() { public TestPlanScriptResultService getTestPlanScriptResultService() {
return testPlanScriptService; return testPlanScriptResultService;
} }
@Autowired @Autowired
private void setTestPlanScriptService( public void setTestPlanScriptResultService(
TestPlanScriptService testPlanScriptService) { TestPlanScriptResultService testPlanScriptResultService) {
this.testPlanScriptService = testPlanScriptService; this.testPlanScriptResultService = testPlanScriptResultService;
} }
@RequestMapping(value = "/{testPlanRunId}/script/{scriptId}/{fieldName}", method = RequestMethod.GET) @RequestMapping(value = "/{testPlanRunId}/loadScriptBirefResults/{scriptId}/{fieldName}", method = RequestMethod.GET)
@ResponseBody @ResponseBody
public ScriptProcessModel getScriptResults( public ResultLoadModel loadScriptBirefResults(
@PathVariable UUID testPlanRunId, @PathVariable int scriptId, @PathVariable UUID testPlanRunId, @PathVariable int scriptId,
@PathVariable String fieldName) throws Bench4QException { @PathVariable String fieldName) throws Bench4QException {
if (!this.checkScope(UserService.NORAML_AUTHENTICATION)) { if (!this.checkScope(UserService.NORAML_AUTHENTICATION)) {
throw new Bench4QException(400 + "", "not permitted", throw new Bench4QException(400 + "", "not permitted",
"/{testPlanRunId}/script/{scriptId}/{fieldName}"); "/{testPlanRunId}/script/{scriptId}/{fieldName}");
} }
ScriptProcessModel ret = new ScriptProcessModel(); ResultLoadModel ret = new ResultLoadModel();
ret.setValueTimeModels(this.getTestPlanScriptResultService()
.loadScriptBriefSpecificField(testPlanRunId, scriptId,
fieldName));
return ret; return ret;
} }
} }

View File

@ -39,8 +39,7 @@ public class Bench4QException extends Exception {
this.resource = resource; this.resource = resource;
} }
public Bench4QException(String code, String message, public Bench4QException(String code, String message, String resource) {
String resource) {
this.setCode(code); this.setCode(code);
this.setMessage(message); this.setMessage(message);
this.setResource(resource); this.setResource(resource);

View File

@ -67,7 +67,7 @@ public class ScriptReportService {
} }
for (TestPlanScript testPlanScript : scripts) { for (TestPlanScript testPlanScript : scripts) {
createScriptImage(this.getTestPlanScriptService() createScriptImage(this.getTestPlanScriptService()
.queryTestPlanScriptResult(testPlanScript), document); .queryScriptBriefResults(testPlanScript), document);
} }
} }

View File

@ -0,0 +1,86 @@
package org.bench4q.master.service.db;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import javax.xml.bind.JAXBException;
import org.apache.log4j.Logger;
import org.bench4q.master.entity.db.TestPlanScriptResult;
import org.bench4q.master.exception.ExceptionLog;
import org.bench4q.share.helper.MarshalHelper;
import org.bench4q.share.models.master.ScriptBriefResultModel;
import org.bench4q.share.models.master.ValueTimeModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class TestPlanScriptResultService {
private TestPlanScriptService testPlanScriptService;
private static Logger logger = Logger
.getLogger(TestPlanScriptResultService.class);
private TestPlanScriptService getTestPlanScriptService() {
return testPlanScriptService;
}
@Autowired
private void setTestPlanScriptService(
TestPlanScriptService testPlanScriptService) {
this.testPlanScriptService = testPlanScriptService;
}
/**
* Here I just use the Time that createDateTime in testplanscriptResult
*
* @param testPlanId
* @param scriptId
* @return
*/
public List<ValueTimeModel> loadScriptBriefSpecificField(UUID testPlanId,
int scriptId, String fieldName) {
List<TestPlanScriptResult> scriptBriefresults = this
.getTestPlanScriptService().queryScriptBriefResults(testPlanId,
scriptId);
List<ValueTimeModel> ret = new ArrayList<ValueTimeModel>();
for (TestPlanScriptResult result : scriptBriefresults) {
try {
ScriptBriefResultModel briefModel = (ScriptBriefResultModel) MarshalHelper
.unmarshal(ScriptBriefResultModel.class,
result.getResultContent());
ret.add(ValueTimeModel.buildValueTimeModel(
getSpecificFieldValue(briefModel, fieldName),
result.getCreateDatetime()));
} catch (JAXBException e) {
logger.info(ExceptionLog.getExceptionStackTrace(e)
+ " When unmarshal the model from ResultCOntent");
continue;
} catch (NoSuchFieldException e) {
logger.info(ExceptionLog.getExceptionStackTrace(e)
+ " When get Field from the model from ResultCOntent");
continue;
}
}
return ret;
}
public long getSpecificFieldValue(ScriptBriefResultModel briefModel,
String fieldName) throws NoSuchFieldException {
try {
Field field = getFieldAndSetAccessible(briefModel, fieldName);
return (Long) field.get(briefModel);
} catch (Exception e) {
throw new NoSuchFieldException();
}
}
private Field getFieldAndSetAccessible(ScriptBriefResultModel briefModel,
String fieldName) throws NoSuchFieldException, SecurityException {
Field field = briefModel.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
return field;
}
}

View File

@ -79,19 +79,20 @@ public class TestPlanScriptService {
} }
} }
public boolean saveScriptBriefResult(final UUID testPlanRunId, final int scriptId, public boolean saveScriptBriefResult(final UUID testPlanRunId,
final ScriptBriefResultModel resultModel) { final int scriptId, final ScriptBriefResultModel resultModel) {
return saveResultPrivate(testPlanRunId, scriptId, resultModel); return saveResultPrivate(testPlanRunId, scriptId, resultModel);
} }
public boolean saveBehaviorsBriefResult(final UUID testPlanRunId, final int scriptId, public boolean saveBehaviorsBriefResult(final UUID testPlanRunId,
final int scriptId,
final ScriptBehaviorsBriefModel scriptBehaviorsBriefModel) { final ScriptBehaviorsBriefModel scriptBehaviorsBriefModel) {
return saveResultPrivate(testPlanRunId, scriptId, return saveResultPrivate(testPlanRunId, scriptId,
scriptBehaviorsBriefModel); scriptBehaviorsBriefModel);
} }
public boolean savePageBriefResult(final UUID testPlanRunId, final int scriptId, public boolean savePageBriefResult(final UUID testPlanRunId,
final ScriptPageBriefModel pageBriefModel) { final int scriptId, final ScriptPageBriefModel pageBriefModel) {
return saveResultPrivate(testPlanRunId, scriptId, pageBriefModel); return saveResultPrivate(testPlanRunId, scriptId, pageBriefModel);
} }
@ -181,15 +182,27 @@ public class TestPlanScriptService {
} }
} }
public List<TestPlanScriptResult> queryTestPlanScriptResult( public List<TestPlanScriptResult> queryScriptBriefResults(UUID testPlanId,
int scriptId) {
return queryScriptBriefResults(this.getTestPlanScript(scriptId,
testPlanId));
}
public List<TestPlanScriptResult> queryScriptBriefResults(
TestPlanScript testPlanScript) { TestPlanScript testPlanScript) {
return queryScriptResultsByType(testPlanScript,
ScriptBriefResultModel.class.getName());
}
private List<TestPlanScriptResult> queryScriptResultsByType(
TestPlanScript testPlanScript, String type) {
Session session = this.getSessionHelper().openSession(); Session session = this.getSessionHelper().openSession();
try { try {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
List<TestPlanScriptResult> resultList = session List<TestPlanScriptResult> resultList = session
.createCriteria(TestPlanScriptResult.class) .createCriteria(TestPlanScriptResult.class)
.add(Restrictions.eq("testPlanScript", testPlanScript)) .add(Restrictions.eq("testPlanScript", testPlanScript))
.list(); .add(Restrictions.eq("resultType", type)).list();
return resultList; return resultList;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();

View File

@ -192,7 +192,7 @@ public class TestPlanService {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
List<PlanedConfig> configs = session List<PlanedConfig> configs = session
.createCriteria(PlanedConfig.class) .createCriteria(PlanedConfig.class)
.add(Restrictions.eq("testPlanScript", testPlanScripts)) .add(Restrictions.eq("testPlanScript", testPlanScript))
.list(); .list();
if (configs == null) { if (configs == null) {
return false; return false;

View File

@ -0,0 +1,93 @@
package org.bench4q.master.test;
import java.util.UUID;
import org.bench4q.master.service.db.ScriptService;
import org.bench4q.master.service.db.TestPlanScriptResultService;
import org.bench4q.master.service.db.TestPlanScriptService;
import org.bench4q.master.service.db.TestPlanService;
import org.bench4q.master.service.db.UserService;
import org.bench4q.master.test.controller.TestBase;
import org.bench4q.share.models.master.ScriptBriefResultModel;
import org.springframework.beans.factory.annotation.Autowired;
public class TestBase_MakeUpTestPlan extends TestBase {
private TestPlanScriptResultService testPlanScriptResultService;
private TestPlanScriptService testPlanScriptService;
private TestPlanService testPlanService;
private UserService userService;
private ScriptService scriptService;
private UUID testPlanRunIdUuid;
private int scriptId;
public TestPlanScriptResultService getTestPlanScriptResultService() {
return testPlanScriptResultService;
}
@Autowired
public void setTestPlanScriptResultService(
TestPlanScriptResultService testPlanScriptResultService) {
this.testPlanScriptResultService = testPlanScriptResultService;
}
public TestPlanScriptService getTestPlanScriptService() {
return testPlanScriptService;
}
@Autowired
public void setTestPlanScriptService(
TestPlanScriptService testPlanScriptService) {
this.testPlanScriptService = testPlanScriptService;
}
public TestPlanService getTestPlanService() {
return testPlanService;
}
@Autowired
public void setTestPlanService(TestPlanService testPlanService) {
this.testPlanService = testPlanService;
}
public UserService getUserService() {
return userService;
}
@Autowired
public void setUserService(UserService userService) {
this.userService = userService;
}
public ScriptService getScriptService() {
return scriptService;
}
@Autowired
public void setScriptService(ScriptService scriptService) {
this.scriptService = scriptService;
}
public UUID getTestPlanRunIdUuid() {
return testPlanRunIdUuid;
}
public void setTestPlanRunIdUuid(UUID testPlanRunIdUuid) {
this.testPlanRunIdUuid = testPlanRunIdUuid;
}
public int getScriptId() {
return scriptId;
}
public void setScriptId(int scriptId) {
this.scriptId = scriptId;
}
protected ScriptBriefResultModel buildScriptBriefResultModel(int i) {
ScriptBriefResultModel resultModel = new ScriptBriefResultModel();
resultModel.setAverageElapsedTime(100 * i);
resultModel.setAverageResponseTime(100 * i);
resultModel.setFailRateThisTime(10 * i);
return resultModel;
}
}

View File

@ -1,31 +0,0 @@
package org.bench4q.master.test;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import junit.framework.TestCase;
import org.bench4q.share.communication.HttpRequester;
import org.junit.Test;
public class UserTest extends TestCase {
private HttpRequester httpRequester = new HttpRequester();
@Test
public void authorizeTest() throws IOException {
Map<String, String> map = new HashMap<String, String>();
map.put("userName", "chen");
map.put("password", "123");
HttpRequester.HttpResponse httpResponse = this.httpRequester.sendGet(
"http://localhost:8080/user/authorize", map, null);
assertEquals(true, httpResponse != null);
System.out.println(httpResponse.getContent());
}
public static void main(String[] args) throws IOException {
UserTest userTest = new UserTest();
userTest.authorizeTest();
}
}

View File

@ -1,4 +1,4 @@
package org.bench4q.master.test; package org.bench4q.master.test.controller;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;

View File

@ -1,4 +1,4 @@
package org.bench4q.master.test; package org.bench4q.master.test.controller;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;

View File

@ -1,4 +1,4 @@
package org.bench4q.master.test; package org.bench4q.master.test.controller;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;

View File

@ -1,4 +1,4 @@
package org.bench4q.master.test.recordscript; package org.bench4q.master.test.controller;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
@ -8,7 +8,6 @@ import javax.xml.bind.JAXBException;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import org.bench4q.master.test.TestBase;
import org.bench4q.share.communication.HttpRequester.HttpResponse; import org.bench4q.share.communication.HttpRequester.HttpResponse;
import org.bench4q.share.helper.MarshalHelper; import org.bench4q.share.helper.MarshalHelper;
import org.bench4q.share.models.agent.RunScenarioModel; import org.bench4q.share.models.agent.RunScenarioModel;

View File

@ -1,8 +1,10 @@
package org.bench4q.master.test; package org.bench4q.master.test.controller;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.xml.bind.JAXBException; import javax.xml.bind.JAXBException;
@ -25,4 +27,16 @@ public class ScriptControllerTest extends TestBase {
httpResponse.getContent()); httpResponse.getContent());
assertTrue(ret.getScriptModels().size() > 0); assertTrue(ret.getScriptModels().size() > 0);
} }
@Test
public void deleteScript(int scriptId) throws IOException {
Map<String, String> params = new HashMap<String, String>();
params.put("scriptId", scriptId + "");
Map<String, String> properties = new HashMap<String, String>();
properties.put(this.AUTH_HEADER_PROPERTY, this.ACCES_TOCKEN_STARTER
+ this.accessTocken);
HttpResponse httpResponse = this.httpRequester.sendPost(
this.controllerUrl + "/deleteScript", params, properties);
System.out.println(httpResponse.getContent());
}
} }

View File

@ -1,4 +1,4 @@
package org.bench4q.master.test; package org.bench4q.master.test.controller;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;

View File

@ -1,13 +1,15 @@
package org.bench4q.master.test.testplan; package org.bench4q.master.test.controller;
import java.io.IOException; import java.io.IOException;
import javax.xml.bind.JAXBException; import javax.xml.bind.JAXBException;
import org.bench4q.master.test.TestBase; import org.bench4q.master.test.testplan.TestPlanTester;
import org.bench4q.share.communication.HttpRequester.HttpResponse; import org.bench4q.share.communication.HttpRequester.HttpResponse;
import org.bench4q.share.helper.MarshalHelper; import org.bench4q.share.helper.MarshalHelper;
import org.bench4q.share.models.master.TestPlanBusinessModel; import org.bench4q.share.models.master.TestPlanBusinessModel;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.*; import static org.junit.Assert.*;
public class TestPlanControllerTest extends TestBase { public class TestPlanControllerTest extends TestBase {
@ -18,11 +20,17 @@ public class TestPlanControllerTest extends TestBase {
@Test @Test
public void runTestPlanWithoutLogOn() throws JAXBException, IOException { public void runTestPlanWithoutLogOn() throws JAXBException, IOException {
HttpResponse httpResponse = this.httpRequester.sendPostXml(this.url HttpResponse httpResponse = this.httpRequester
+ "/runTestPlanWithTestPlanModel", MarshalHelper.marshal( .sendPostXml(
TestPlanBusinessModel.class, TestPlanTester.createATestPlan()), this.url + "/runTestPlanWithTestPlanModel",
null); MarshalHelper
.marshal(
TestPlanBusinessModel.class,
TestPlanTester
.createATestPlan(TestPlanTester.SCRIPTID1)),
null);
System.out.println(httpResponse.getContent()); System.out.println(httpResponse.getContent());
assertEquals(400, httpResponse.getCode()); assertEquals(400, httpResponse.getCode());
} }
} }

View File

@ -0,0 +1,76 @@
package org.bench4q.master.test.controller;
import static org.junit.Assert.*;
import java.io.IOException;
import java.util.UUID;
import javax.xml.bind.JAXBException;
import org.bench4q.master.api.modelfactory.BusinessModelMapFactory;
import org.bench4q.master.entity.db.User;
import org.bench4q.master.test.TestBase_MakeUpTestPlan;
import org.bench4q.master.test.testplan.TestPlanTester;
import org.bench4q.master.testplan.entity.TestPlanInBusiness;
import org.bench4q.share.communication.HttpRequester.HttpResponse;
import org.bench4q.share.helper.MarshalHelper;
import org.bench4q.share.models.master.ResultLoadModel;
import org.bench4q.share.models.master.ScriptBehaviorsBriefModel;
import org.bench4q.share.models.master.ScriptPageBriefModel;
import org.bench4q.share.models.master.TestPlanBusinessModel;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:service-test-context.xml" })
public class TestPlanScriptResultControllerTest extends TestBase_MakeUpTestPlan {
private String urlString = BASE_URL + "/testPlanResult";
@Test
public void testGetScriptResults() throws IOException, JAXBException {
HttpResponse httpResponse = this.httpRequester.sendGet(urlString + "/"
+ this.getTestPlanRunIdUuid().toString()
+ "/loadScriptBirefResults/" + this.getScriptId()
+ "/averageResponseTime", null,
this.makeAccessTockenMap(this.getAccessTocken()));
ResultLoadModel loadModel = (ResultLoadModel) MarshalHelper.unmarshal(
ResultLoadModel.class, httpResponse.getContent());
assertEquals(3, loadModel.getValueTimeModels().size());
}
@Before
public void makeUpTestPlanAndTestPlanScriptAndTestPlanScriptResult() {
UUID testPlanRunId = UUID.randomUUID();
User user = this.getUserService().getUserByName("admin");
this.setScriptId(this.getScriptService().loadScripts(user).get(0)
.getId());
TestPlanBusinessModel model = TestPlanTester.createATestPlan(this
.getScriptId());
TestPlanInBusiness testPlan = BusinessModelMapFactory.toBusiness(model);
this.getTestPlanService().saveTestPlanToDB(testPlan, user,
testPlanRunId, testPlan.getRunningScripts());
this.setTestPlanRunIdUuid(testPlanRunId);
for (int i = 0; i < 3; i++) {
this.getTestPlanScriptService().saveScriptBriefResult(
testPlanRunId, this.getScriptId(),
buildScriptBriefResultModel(i));
this.getTestPlanScriptService().saveBehaviorsBriefResult(
testPlanRunId, this.getScriptId(),
new ScriptBehaviorsBriefModel());
this.getTestPlanScriptService().savePageBriefResult(testPlanRunId,
this.getScriptId(), new ScriptPageBriefModel());
}
}
@After
public void cleanUp() {
this.getTestPlanService().removeTestPlanInDB(
this.getTestPlanService()
.getTestPlan(this.getTestPlanRunIdUuid()).getId());
}
}

View File

@ -1,7 +1,6 @@
package org.bench4q.master.test; package org.bench4q.master.test.controller;
import java.io.IOException; import java.io.IOException;
import javax.xml.bind.JAXBException; import javax.xml.bind.JAXBException;
import org.bench4q.share.communication.HttpRequester.HttpResponse; import org.bench4q.share.communication.HttpRequester.HttpResponse;
@ -11,7 +10,7 @@ import org.junit.Test;
import static org.junit.Assert.*; import static org.junit.Assert.*;
public class AuthTest extends TestBase { public class UserControllerTest extends TestBase {
@Test @Test
public void testNormalAuth() throws IOException, JAXBException { public void testNormalAuth() throws IOException, JAXBException {
@ -35,4 +34,5 @@ public class AuthTest extends TestBase {
httpResponse.getContent()); httpResponse.getContent());
assertTrue(ret.isSuccess()); assertTrue(ret.isSuccess());
} }
} }

View File

@ -1,30 +0,0 @@
package org.bench4q.master.test;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.xml.bind.JAXBException;
import org.bench4q.share.communication.HttpRequester.HttpResponse;
public class scriptOperateTest extends TestBase {
private final String _url = TestBase.BASE_URL + "/RecordScript";
public void deleteScript(int scriptId) throws IOException {
Map<String, String> params = new HashMap<String, String>();
params.put("scriptId", scriptId + "");
Map<String, String> properties = new HashMap<String, String>();
properties.put(this.AUTH_HEADER_PROPERTY, this.ACCES_TOCKEN_STARTER
+ this.accessTocken);
HttpResponse httpResponse = this.httpRequester.sendPost(this._url
+ "/deleteScript", params, properties);
System.out.println(httpResponse.getContent());
}
public static void main(String[] args) throws IOException, JAXBException {
scriptOperateTest test = new scriptOperateTest();
test.accessTocken = test.login();
test.deleteScript(2);
}
}

View File

@ -0,0 +1,95 @@
package org.bench4q.master.test.service;
import static org.junit.Assert.*;
import java.util.List;
import java.util.UUID;
import org.bench4q.master.api.modelfactory.BusinessModelMapFactory;
import org.bench4q.master.entity.db.User;
import org.bench4q.master.test.TestBase_MakeUpTestPlan;
import org.bench4q.master.test.testplan.TestPlanTester;
import org.bench4q.master.testplan.entity.TestPlanInBusiness;
import org.bench4q.share.models.master.ScriptBehaviorsBriefModel;
import org.bench4q.share.models.master.ScriptBriefResultModel;
import org.bench4q.share.models.master.ScriptPageBriefModel;
import org.bench4q.share.models.master.TestPlanBusinessModel;
import org.bench4q.share.models.master.ValueTimeModel;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:service-test-context.xml" })
public class TestTestPlanScriptResultService extends TestBase_MakeUpTestPlan {
@Test
public void testGetSpecficFieldValue() throws NoSuchFieldException {
long averageResponseTime = this.getTestPlanScriptResultService()
.getSpecificFieldValue(buildScriptBriefResultModel(0),
"averageResponseTime");
assertEquals(0, averageResponseTime);
}
@Test
public void testLoadAvgFromScriptBriefResultWithWrongTestPlanID()
throws NoSuchFieldException, SecurityException {
List<ValueTimeModel> results = this
.getTestPlanScriptResultService()
.loadScriptBriefSpecificField(
UUID.fromString("af67ccd7-ca7b-4dbf-9544-8ffe81b3af2d"),
61,
ScriptBriefResultModel.class.getDeclaredField(
"averageResponseTime").getName());
assertEquals(0, results.size());
}
@Test
public void testLoadAvgFromScriptBriefResult() throws NoSuchFieldException,
SecurityException {
List<ValueTimeModel> results = this.getTestPlanScriptResultService()
.loadScriptBriefSpecificField(
this.getTestPlanRunIdUuid(),
this.getScriptId(),
ScriptBriefResultModel.class.getDeclaredField(
"averageResponseTime").getName());
System.out.println(results.size());
assertTrue(results.size() > 0);
assertTrue(results.get(1).getValue() % 100 == 0);
}
@Before
public void makeUpTestPlanAndTestPlanScriptAndTestPlanScriptResult() {
UUID testPlanRunId = UUID.randomUUID();
User user = this.getUserService().getUserByName("admin");
this.setScriptId(this.getScriptService().loadScripts(user).get(0)
.getId());
TestPlanBusinessModel model = TestPlanTester.createATestPlan(this
.getScriptId());
TestPlanInBusiness testPlan = BusinessModelMapFactory.toBusiness(model);
this.getTestPlanService().saveTestPlanToDB(testPlan, user,
testPlanRunId, testPlan.getRunningScripts());
this.setTestPlanRunIdUuid(testPlanRunId);
for (int i = 0; i < 3; i++) {
this.getTestPlanScriptService().saveScriptBriefResult(
testPlanRunId, this.getScriptId(),
buildScriptBriefResultModel(i));
this.getTestPlanScriptService().saveBehaviorsBriefResult(
testPlanRunId, this.getScriptId(),
new ScriptBehaviorsBriefModel());
this.getTestPlanScriptService().savePageBriefResult(testPlanRunId,
this.getScriptId(), new ScriptPageBriefModel());
}
}
@After
public void cleanUp() {
this.getTestPlanService().removeTestPlanInDB(
this.getTestPlanService()
.getTestPlan(this.getTestPlanRunIdUuid()).getId());
}
}

View File

@ -41,7 +41,7 @@ public class TestTestPlanScriptService {
.getTestPlanScript(WRONG_SCRIPT_ID, .getTestPlanScript(WRONG_SCRIPT_ID,
UUID.fromString(WRONG_TEST_PLAN_RUN_ID)); UUID.fromString(WRONG_TEST_PLAN_RUN_ID));
List<TestPlanScriptResult> scriptBriefResultModels = this List<TestPlanScriptResult> scriptBriefResultModels = this
.getTestPlanScriptService().queryTestPlanScriptResult( .getTestPlanScriptService().queryScriptBriefResults(
testPlanScript); testPlanScript);
assertTrue(scriptBriefResultModels.size() == 0); assertTrue(scriptBriefResultModels.size() == 0);
} }
@ -52,7 +52,7 @@ public class TestTestPlanScriptService {
.getTestPlanScript(PROPER_SCRIPT_ID, .getTestPlanScript(PROPER_SCRIPT_ID,
UUID.fromString(TEST_PLAN_RUN_ID)); UUID.fromString(TEST_PLAN_RUN_ID));
List<TestPlanScriptResult> scriptBriefList = this List<TestPlanScriptResult> scriptBriefList = this
.getTestPlanScriptService().queryTestPlanScriptResult( .getTestPlanScriptService().queryScriptBriefResults(
testPlanScript); testPlanScript);
assertTrue(scriptBriefList.size() > 0); assertTrue(scriptBriefList.size() > 0);
} }
@ -72,7 +72,7 @@ public class TestTestPlanScriptService {
.getTestPlanScript(WRONG_SCRIPT_ID, .getTestPlanScript(WRONG_SCRIPT_ID,
UUID.fromString(WRONG_TEST_PLAN_RUN_ID)); UUID.fromString(WRONG_TEST_PLAN_RUN_ID));
assertTrue(this.getTestPlanScriptService() assertTrue(this.getTestPlanScriptService()
.queryTestPlanScriptResult(testPlanScript).size() == 0); .queryScriptBriefResults(testPlanScript).size() == 0);
} }
} }

View File

@ -12,7 +12,7 @@ import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException; import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller; import javax.xml.bind.Marshaller;
import org.bench4q.master.test.TestBase; import org.bench4q.master.test.controller.TestBase;
import org.bench4q.share.communication.HttpRequester; import org.bench4q.share.communication.HttpRequester;
import org.bench4q.share.communication.HttpRequester.HttpResponse; import org.bench4q.share.communication.HttpRequester.HttpResponse;
import org.bench4q.share.enums.master.TestPlanStatus; import org.bench4q.share.enums.master.TestPlanStatus;
@ -30,7 +30,7 @@ public class TestPlanTester extends TestBase {
private TestPlanBusinessModel testPlanBusinessModel = new TestPlanBusinessModel(); private TestPlanBusinessModel testPlanBusinessModel = new TestPlanBusinessModel();
private String _url = TestBase.BASE_URL + "/testPlan"; private String _url = TestBase.BASE_URL + "/testPlan";
private int scriptSumNum; private int scriptSumNum;
private static int SCRIPTID1 = 61; public static int SCRIPTID1 = 61;
private static int SCRIPTID2 = 2; private static int SCRIPTID2 = 2;
// private static int EACH_SCRIPT_LOAD_LargeSCALE = 12000; // private static int EACH_SCRIPT_LOAD_LargeSCALE = 12000;
private static int EACH_SCRIPT_LOAD_SMALLSCALE = 40; private static int EACH_SCRIPT_LOAD_SMALLSCALE = 40;
@ -144,17 +144,18 @@ public class TestPlanTester extends TestBase {
return stringWriter.toString(); return stringWriter.toString();
} }
public static TestPlanBusinessModel createATestPlan() { public static TestPlanBusinessModel createATestPlan(int scriptId) {
TestPlanBusinessModel testPlanBusinessModel = new TestPlanBusinessModel(); TestPlanBusinessModel testPlanBusinessModel = new TestPlanBusinessModel();
testPlanBusinessModel.setMonitorModels(createOneMonitorList()); testPlanBusinessModel.setMonitorModels(createOneMonitorList());
testPlanBusinessModel.setRunningScriptModels(createOneScriptList()); testPlanBusinessModel
.setRunningScriptModels(createOneScriptList(SCRIPTID1));
return testPlanBusinessModel; return testPlanBusinessModel;
} }
public TestPlanBusinessModel _createATestPlan() { public TestPlanBusinessModel _createATestPlan() {
if (this.getScriptSumNum() == 1) { if (this.getScriptSumNum() == 1) {
this.testPlanBusinessModel this.testPlanBusinessModel
.setRunningScriptModels(createOneScriptList()); .setRunningScriptModels(createOneScriptList(SCRIPTID1));
} else if (getScriptSumNum() == 2) { } else if (getScriptSumNum() == 2) {
this.testPlanBusinessModel this.testPlanBusinessModel
.setRunningScriptModels(createTowScriptList()); .setRunningScriptModels(createTowScriptList());
@ -171,9 +172,9 @@ public class TestPlanTester extends TestBase {
return monitors; return monitors;
} }
private static List<RunningScriptModel> createOneScriptList() { private static List<RunningScriptModel> createOneScriptList(int scriptId) {
List<RunningScriptModel> list = new ArrayList<RunningScriptModel>(); List<RunningScriptModel> list = new ArrayList<RunningScriptModel>();
list.add(buildScriptModel(SCRIPTID1)); list.add(buildScriptModel(scriptId));
return list; return list;
} }

View File

@ -6,10 +6,10 @@ import java.io.IOException;
import javax.xml.bind.JAXBException; import javax.xml.bind.JAXBException;
import org.bench4q.master.test.TestBase; import org.bench4q.master.test.controller.TestBase;
import org.bench4q.share.communication.HttpRequester.HttpResponse; import org.bench4q.share.communication.HttpRequester.HttpResponse;
import org.bench4q.share.helper.MarshalHelper; import org.bench4q.share.helper.MarshalHelper;
import org.bench4q.share.models.master.ScriptProcessModel; import org.bench4q.share.models.master.ResultLoadModel;
import org.junit.Test; import org.junit.Test;
public class TestTestPlanResult extends TestBase { public class TestTestPlanResult extends TestBase {
@ -26,8 +26,8 @@ public class TestTestPlanResult extends TestBase {
+ testPlanRunId, null, + testPlanRunId, null,
makeAccessTockenMap(this.getAccessTocken())); makeAccessTockenMap(this.getAccessTocken()));
assertTrue(httpResponse != null); assertTrue(httpResponse != null);
ScriptProcessModel resultModel = (ScriptProcessModel) MarshalHelper ResultLoadModel resultModel = (ResultLoadModel) MarshalHelper
.unmarshal(ScriptProcessModel.class, httpResponse.getContent()); .unmarshal(ResultLoadModel.class, httpResponse.getContent());
assertTrue(resultModel.getScriptBriefResultModels().size() > 0); assertTrue(resultModel.getValueTimeModels().size() > 0);
} }
} }