add test to monitor result,fix the bug

This commit is contained in:
fanfuxiaoran 2014-03-27 21:06:11 +08:00
parent f197aaf5b4
commit bd0ea68583
9 changed files with 228 additions and 116 deletions

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.bench4q.share.helper.ExceptionLog;
import org.bench4q.share.models.master.MonitorMemoryResponseModel; import org.bench4q.share.models.master.MonitorMemoryResponseModel;
import org.bench4q.share.models.master.MonitorProcessorResponseModel; import org.bench4q.share.models.master.MonitorProcessorResponseModel;
import org.bench4q.share.models.monitor.MemoryModel; import org.bench4q.share.models.monitor.MemoryModel;
@ -14,6 +15,7 @@ import org.bench4q.web.model.BaseResponseModel;
import org.bench4q.web.model.ResultModel; import org.bench4q.web.model.ResultModel;
import org.bench4q.web.service.ChangeToResultModel; import org.bench4q.web.service.ChangeToResultModel;
import org.bench4q.web.service.MonitorService; import org.bench4q.web.service.MonitorService;
import org.bench4q.web.tool.test.GsonHelper;
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.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
@ -74,7 +76,7 @@ public class MonitorController {
@RequestMapping("/testPlanId/SUT/{ip}/{port}/memory/{fieldName}/{startTime}") @RequestMapping("/testPlanId/SUT/{ip}/{port}/memory/{fieldName}/{startTime}")
@ResponseBody @ResponseBody
public BaseResponseModel geMemoryStatus( public BaseResponseModel getMemoryStatus(
@ModelAttribute("accessToken") String accessToken, @ModelAttribute("accessToken") String accessToken,
@PathVariable("testPlanId") String testPlanId, @PathVariable("testPlanId") String testPlanId,
@RequestParam String ip, @RequestParam String port, @RequestParam String ip, @RequestParam String port,
@ -87,6 +89,7 @@ public class MonitorController {
MonitorMemoryResponseModel monitorMemoryResponseModel = this MonitorMemoryResponseModel monitorMemoryResponseModel = this
.getMonitorService().getMemoryResponseModel(accessToken, .getMonitorService().getMemoryResponseModel(accessToken,
testPlanId, ip, port, startTime); testPlanId, ip, port, startTime);
logger.info(GsonHelper.getGson().toJson(monitorMemoryResponseModel));
List<ResultModel> resultModels = extractResultModelList( List<ResultModel> resultModels = extractResultModelList(
monitorMemoryResponseModel.getMemoryModels(), fieldName); monitorMemoryResponseModel.getMemoryModels(), fieldName);
if (resultModels == null) if (resultModels == null)
@ -94,7 +97,7 @@ public class MonitorController {
else else
return new BaseResponseModel(true, resultModels); return new BaseResponseModel(true, resultModels);
} catch (NoSuchFieldException e) { } catch (NoSuchFieldException e) {
logger.info(e.getStackTrace()); logger.info(ExceptionLog.getStackTrace(e));
logger.info("get Memory info error :no such field:" + e.getCause()); logger.info("get Memory info error :no such field:" + e.getCause());
logger.info(source + "_" + fieldName); logger.info(source + "_" + fieldName);
throw new CustomGenericException("5", throw new CustomGenericException("5",
@ -165,7 +168,7 @@ public class MonitorController {
for (MemoryModel memoryModel : memoryModels) { for (MemoryModel memoryModel : memoryModels) {
if (memoryModel != null) { if (memoryModel != null) {
ResultModel resultModel = ChangeToResultModel.getResultModel( ResultModel resultModel = ChangeToResultModel.getResultModel(
MemoryModel.class, fieldNames); memoryModel, fieldNames);
resultModel.setTime(memoryModel.getSamplingTime()); resultModel.setTime(memoryModel.getSamplingTime());
resultModels.add(resultModel); resultModels.add(resultModel);
} }

View File

@ -3,30 +3,36 @@ package org.bench4q.web.service;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.List; import java.util.List;
import org.apache.log4j.Logger;
import org.bench4q.share.helper.ExceptionLog;
import org.bench4q.web.model.ResultModel; import org.bench4q.web.model.ResultModel;
public class ChangeToResultModel { public class ChangeToResultModel {
public static ResultModel getResultModel(Object object, List<String> fieldNames) throws NoSuchFieldException { public static ResultModel getResultModel(Object object,
List<String> fieldNames) throws NoSuchFieldException {
ResultModel resultModel = new ResultModel(); ResultModel resultModel = new ResultModel();
for (String fieldName : fieldNames) for (String fieldName : fieldNames) {
resultModel.setData(getSpecificFieldValue(object, resultModel.setData(getSpecificFieldValue(object, fieldName));
fieldName)); }
return resultModel; return resultModel;
} }
private static Object getSpecificFieldValue(Object object, String fieldName) private static Object getSpecificFieldValue(Object object, String fieldName)
throws NoSuchFieldException { throws NoSuchFieldException {
try { try {
Field field = getFieldAndSetAccessible(object, fieldName); Field field = getFieldAndSetAccessible(object, fieldName);
return field.get(object); return field.get(object);
} catch (Exception e) { } catch (Exception e) {
Logger.getLogger(ChangeToResultModel.class).info(
ExceptionLog.getStackTrace(e));
throw new NoSuchFieldException(); throw new NoSuchFieldException();
} }
} }
private static Field getFieldAndSetAccessible(Object object, String fieldName)
throws NoSuchFieldException, SecurityException { private static Field getFieldAndSetAccessible(Object object,
String fieldName) throws NoSuchFieldException, SecurityException {
Field field = object.getClass().getDeclaredField(fieldName); Field field = object.getClass().getDeclaredField(fieldName);
field.setAccessible(true); field.setAccessible(true);
return field; return field;

View File

@ -1,11 +1,8 @@
package org.bench4q.web.service; package org.bench4q.web.service;
import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import org.bench4q.share.models.monitor.NetworkInterfaceModel;
import org.bench4q.web.exception.CustomGenericException; import org.bench4q.web.exception.CustomGenericException;
import org.bench4q.web.model.ResultInfoModel; import org.bench4q.web.model.ResultInfoModel;
import org.bench4q.web.model.SutInfo; import org.bench4q.web.model.SutInfo;
@ -37,13 +34,11 @@ public class MonitorDescriptionInfoService extends BaseService {
if (cpuInfoModel != null) if (cpuInfoModel != null)
resultInfoModels.add(cpuInfoModel); resultInfoModels.add(cpuInfoModel);
resultInfoModels.add(createMemoryResultInfoModel("Memory")); resultInfoModels.add(createMemoryResultInfoModel("Memory"));
resultInfoModels.add(createNetworkResultInfoModel("Network"));
sutInfo.setChildResults(resultInfoModels); sutInfo.setChildResults(resultInfoModels);
return sutInfo; return sutInfo;
} }
private ResultInfoModel createMemoryResultInfoModel(String resultName) { private ResultInfoModel createMemoryResultInfoModel(String resultName) {
ResultInfoModel resultInfoModel = new ResultInfoModel(resultName, ResultInfoModel resultInfoModel = new ResultInfoModel(resultName,
@ -54,15 +49,15 @@ public class MonitorDescriptionInfoService extends BaseService {
return resultInfoModel; return resultInfoModel;
} }
private ResultInfoModel createNetworkResultInfoModel(String resultName) { // private ResultInfoModel createNetworkResultInfoModel(String resultName) {
//
ResultInfoModel resultInfoModel = new ResultInfoModel(resultName, // ResultInfoModel resultInfoModel = new ResultInfoModel(resultName,
new ArrayList<ResultInfoModel>()); // new ArrayList<ResultInfoModel>());
//
resultInfoModel.getChildResults().add(getNetworkResultInfo()); // resultInfoModel.getChildResults().add(getNetworkResultInfo());
//
return resultInfoModel; // return resultInfoModel;
} // }
private ResultInfoModel createCpuResultInfoModel(String resultName, private ResultInfoModel createCpuResultInfoModel(String resultName,
List<String> results) { List<String> results) {
@ -90,14 +85,14 @@ public class MonitorDescriptionInfoService extends BaseService {
return getResultInfoModel(result, fields); return getResultInfoModel(result, fields);
} }
private ResultInfoModel getNetworkResultInfo() { // private ResultInfoModel getNetworkResultInfo() {
String result = "Result"; // String result = "Result";
List<String> fiels = new LinkedList<String>(); // List<String> fiels = new LinkedList<String>();
for (Field field : NetworkInterfaceModel.class.getFields()) { // for (Field field : NetworkInterfaceModel.class.getFields()) {
fiels.add(field.getName()); // fiels.add(field.getName());
//
} // }
String[] toBeStored = new String[fiels.size()]; // String[] toBeStored = new String[fiels.size()];
return getResultInfoModel(result, fiels.toArray(toBeStored)); // return getResultInfoModel(result, fiels.toArray(toBeStored));
} // }
} }

View File

@ -86,27 +86,6 @@ public class MonitorService extends BaseService {
} }
// public List<String> getNetworkList(String accessToken, String testplanId,
// String ip, String port) throws CustomGenericException {
// String scource = "MonitorService:getNetworkList";
// try {
// MonitorNetworkReponseModel monitorNetworkReponseModel = getNetworks(
// accessToken, testplanId, ip, port, "0");
// NetworkInterfaceModel networkInterfaceModel = monitorNetworkReponseModel
// .getModels().get(0);
// List<String> networkList = new ArrayList<String>();
// for (NetworkInterfaceModelChild networkInterfaceModelChild :
// networkInterfaceModel
// .getNetworkList()) {
// networkList.add(networkInterfaceModelChild.getInstance());
// }
// return networkList;
// } catch (NullPointerException e) {
// logger.info(e.getStackTrace());
// throw new CustomGenericException("1", "error network list info"
// + e.getCause(), scource);
// }
// }
public MonitorNetworkReponseModel getNetworks(String accessToken, public MonitorNetworkReponseModel getNetworks(String accessToken,
String testplanId, String ip, String port, String startTime) String testplanId, String ip, String port, String startTime)
@ -125,6 +104,7 @@ public class MonitorService extends BaseService {
private Map<String, String> makeParamsMap(String ip, String port, private Map<String, String> makeParamsMap(String ip, String port,
String testPlanId, String startTime) { String testPlanId, String startTime) {
logger.info(testPlanId);
Map<String, String> params = new HashMap<String, String>(); Map<String, String> params = new HashMap<String, String>();
params.put("hostName", ip); params.put("hostName", ip);
params.put("port", port); params.put("port", port);

View File

@ -1 +1 @@
masterAddress=127.0.0.1:7979/ masterAddress=133.133.12.1:7979/

View File

@ -0,0 +1,112 @@
package org.bench4q.web.api.test;
import static org.junit.Assert.*;
import java.util.List;
import javax.xml.bind.JAXBException;
import junit.framework.Assert;
import org.apache.log4j.Logger;
import org.bench4q.share.enums.master.TestPlanStatus;
import org.bench4q.web.api.MonitorController;
import org.bench4q.web.exception.CustomGenericException;
import org.bench4q.web.model.BaseResponseModel;
import org.bench4q.web.model.ResultModel;
import org.bench4q.web.model.WebTestPlanResultModel;
import org.bench4q.web.tool.test.GsonHelper;
import org.bench4q.web.tool.test.LoginHelper;
import org.bench4q.web.tool.test.TestPlanHelper;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "file:src/test/resources/bench4qweb-servlet.xml" })
public class TestMonitorResult extends LoginHelper {
private MonitorController monitorController;
private TestPlanHelper startTestPlan;
private String accessToken;
private String testPlanId;
private Logger logger = Logger.getLogger(TestMonitorResult.class);
public MonitorController getMonitorController() {
return monitorController;
}
@Autowired
public void setMonitorController(MonitorController monitorController) {
this.monitorController = monitorController;
}
public TestPlanHelper getStartTestPlan() {
return startTestPlan;
}
@Autowired
public void setStartTestPlan(TestPlanHelper startTestPlan) {
this.startTestPlan = startTestPlan;
}
@Before
public void setUp() {
this.accessToken = login();
this.getStartTestPlan().startTest(accessToken);
this.testPlanId = this.getStartTestPlan().getTestPlanRunId();
}
@SuppressWarnings("unchecked")
@Test
public void test_getMemoryResult() throws InterruptedException,
CustomGenericException, JAXBException {
testTestPlanStatus();
BaseResponseModel baseResponseModel = this.getMonitorController()
.getMemoryStatus(accessToken, testPlanId,
TestPlanHelper.MONITOR_IP, "5556", "pagesPerSecond",
"0");
assertTrue(baseResponseModel.isSuccess());
List<ResultModel> resultModels = (List<ResultModel>) baseResponseModel
.getData();
logger.info(GsonHelper.getGson().toJson(resultModels));
assertTrue(resultModels.size() > 0);
}
@Test
public void test_getCpuResult() throws InterruptedException, CustomGenericException, JAXBException{
testTestPlanStatus();
BaseResponseModel baseResponseModel = this.getMonitorController()
.getCpuResult(accessToken, testPlanId, TestPlanHelper.MONITOR_IP, "5556", "cpu0", "processorTimePercent", "0");
assertTrue(baseResponseModel.isSuccess());
@SuppressWarnings("unchecked")
List<ResultModel> resultModels = (List<ResultModel>) baseResponseModel
.getData();
logger.info(GsonHelper.getGson().toJson(resultModels));
assertTrue(resultModels.size() > 0);
}
@Test
public void test_getNetwork() throws InterruptedException, CustomGenericException, JAXBException{
testTestPlanStatus();
BaseResponseModel baseResponseModel = this.getMonitorController()
.getCpuResult(accessToken, testPlanId, TestPlanHelper.MONITOR_IP, "5556", "cpu0", "processorTimePercent", "0");
assertTrue(baseResponseModel.isSuccess());
@SuppressWarnings("unchecked")
List<ResultModel> resultModels = (List<ResultModel>) baseResponseModel
.getData();
logger.info(GsonHelper.getGson().toJson(resultModels));
assertTrue(resultModels.size() > 0);
}
private void testTestPlanStatus() throws InterruptedException,
CustomGenericException, JAXBException {
Assert.assertNotNull(this.getStartTestPlan().getTestPlanRunId());
assertNotNull(testPlanId);
Thread.sleep(6000);
WebTestPlanResultModel webTestPlanResultModel = this.getStartTestPlan()
.queryTestPlanResultModel(testPlanId, accessToken);
assertEquals(TestPlanStatus.InRunning,
webTestPlanResultModel.getCurrentStatus());
}
}

View File

@ -1,10 +1,14 @@
package org.bench4q.web.api.test; package org.bench4q.web.api.test;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.xml.bind.JAXBException; import javax.xml.bind.JAXBException;
import junit.framework.Assert; import junit.framework.Assert;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.bench4q.share.enums.master.TestPlanStatus; import org.bench4q.share.enums.master.TestPlanStatus;
import org.bench4q.share.helper.ExceptionLog; import org.bench4q.share.helper.ExceptionLog;
@ -19,7 +23,7 @@ import org.bench4q.web.model.WebTestPlanResultModel;
import org.bench4q.web.service.TestPlanService; import org.bench4q.web.service.TestPlanService;
import org.bench4q.web.tool.test.GsonHelper; import org.bench4q.web.tool.test.GsonHelper;
import org.bench4q.web.tool.test.LoginHelper; import org.bench4q.web.tool.test.LoginHelper;
import org.bench4q.web.tool.test.StartTestPlan; import org.bench4q.web.tool.test.TestPlanHelper;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@ -32,12 +36,12 @@ import com.google.gson.Gson;
@RunWith(SpringJUnit4ClassRunner.class) @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "file:src/test/resources/bench4qweb-servlet.xml" }) @ContextConfiguration(locations = { "file:src/test/resources/bench4qweb-servlet.xml" })
public class TestResultTest extends LoginHelper { public class TestScriptResultTest extends LoginHelper {
private TestPlanActionController testPlanActionController; private TestPlanActionController testPlanActionController;
private StartTestPlan startTestPlan; private TestPlanHelper testPlanHelper;
private String testPlanId; private String testPlanId;
private String accessToken; private String accessToken;
private Logger logger = Logger.getLogger(TestResultTest.class); private Logger logger = Logger.getLogger(TestScriptResultTest.class);
private TestPlanService testPlanService; private TestPlanService testPlanService;
private String scriptId; private String scriptId;
@ -51,13 +55,13 @@ public class TestResultTest extends LoginHelper {
this.testPlanActionController = testPlanActionController; this.testPlanActionController = testPlanActionController;
} }
public StartTestPlan getStartTestPlan() { public TestPlanHelper getStartTestPlan() {
return startTestPlan; return testPlanHelper;
} }
@Autowired @Autowired
public void setStartTestPlan(StartTestPlan startTestPlan) { public void setStartTestPlan(TestPlanHelper startTestPlan) {
this.startTestPlan = startTestPlan; this.testPlanHelper = startTestPlan;
} }
public TestPlanService getTestPlanService() { public TestPlanService getTestPlanService() {
@ -72,9 +76,9 @@ public class TestResultTest extends LoginHelper {
@Before @Before
public void setUp() { public void setUp() {
this.accessToken = this.login(); this.accessToken = this.login();
this.startTestPlan.startTest(accessToken); this.testPlanHelper.startTest(accessToken);
this.testPlanId = this.startTestPlan.getTestPlanRunId(); this.testPlanId = this.testPlanHelper.getTestPlanRunId();
this.scriptId = this.getOneScriptId(testPlanId); this.scriptId = this.getOneScriptId(testPlanId, accessToken);
} }
@ -89,37 +93,21 @@ public class TestResultTest extends LoginHelper {
Assert.assertNotNull(this.getStartTestPlan().getTestPlanRunId()); Assert.assertNotNull(this.getStartTestPlan().getTestPlanRunId());
BaseResponseModel baseResponseModel = this BaseResponseModel baseResponseModel = this
.getTestPlanActionController().getReplaceList(this.accessToken, .getTestPlanActionController().getReplaceList(this.accessToken,
this.startTestPlan.getTestPlanRunId()); this.testPlanHelper.getTestPlanRunId());
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
Map<String, Integer> scriptIdMap = (Map<String, Integer>) baseResponseModel Map<String, Integer> scriptIdMap = (Map<String, Integer>) baseResponseModel
.getData(); .getData();
Assert.assertTrue(scriptIdMap.size() > 0); Assert.assertTrue(scriptIdMap.size() > 0);
} }
@Test
public void test_getSutInfo() throws CustomGenericException, JAXBException {
Assert.assertNotNull(this.getStartTestPlan().getTestPlanRunId());
@SuppressWarnings("unchecked")
List<SutInfo> sutInfos = (List<SutInfo>) this
.getTestPlanActionController()
.getSutInfo(accessToken,
this.getStartTestPlan().getTestPlanRunId()).getData();
for (SutInfo sutInfo : sutInfos) {
assertEquals("5556", sutInfo.getPort());
assertEquals("133.133.12.3", sutInfo.getIp());
Gson gson = new Gson();
logger.info(gson.toJson(sutInfo));
}
}
@Test @Test
public void test_getTestPageBriefModel() throws InterruptedException, public void test_getTestPageBriefModel() throws InterruptedException,
CustomGenericException, JAXBException { CustomGenericException, JAXBException {
assertNotNull(this.testPlanId); assertNotNull(this.testPlanId);
assertNotNull(this.scriptId); assertNotNull(this.scriptId);
Thread.sleep(3000); Thread.sleep(3000);
WebTestPlanResultModel webTestPlanResultModel = this WebTestPlanResultModel webTestPlanResultModel = this.getStartTestPlan()
.queryTestPlanResultModel(testPlanId); .queryTestPlanResultModel(testPlanId, accessToken);
assertEquals(TestPlanStatus.InRunning, assertEquals(TestPlanStatus.InRunning,
webTestPlanResultModel.getCurrentStatus()); webTestPlanResultModel.getCurrentStatus());
BaseResponseModel baseResponseModel = this BaseResponseModel baseResponseModel = this
@ -138,7 +126,7 @@ public class TestResultTest extends LoginHelper {
CustomGenericException, JAXBException, InterruptedException { CustomGenericException, JAXBException, InterruptedException {
Assert.assertNotNull(testPlanId); Assert.assertNotNull(testPlanId);
String scriptId = getOneScriptId(this.getStartTestPlan() String scriptId = getOneScriptId(this.getStartTestPlan()
.getTestPlanRunId()); .getTestPlanRunId(), accessToken);
Assert.assertNotNull(scriptId); Assert.assertNotNull(scriptId);
Thread.sleep(3000); Thread.sleep(3000);
BaseResponseModel baseResponseModelForTestPlan = this BaseResponseModel baseResponseModelForTestPlan = this
@ -152,13 +140,13 @@ public class TestResultTest extends LoginHelper {
BaseResponseModel baseResponseModel = this BaseResponseModel baseResponseModel = this
.getTestPlanActionController().getScriptBriefStatus( .getTestPlanActionController().getScriptBriefStatus(
accessToken, this.testPlanId, accessToken, this.testPlanId,
this.getOneScriptId(this.testPlanId), this.getOneScriptId(this.testPlanId, accessToken),
"averageResponseTime", "0"); "averageResponseTime", "0");
assertTrue(baseResponseModel.isSuccess()); assertTrue(baseResponseModel.isSuccess());
List<ResultModel> resultModels = (List<ResultModel>) baseResponseModel List<ResultModel> resultModels = (List<ResultModel>) baseResponseModel
.getData(); .getData();
Logger.getLogger("get result model"); Logger.getLogger("get result model");
Logger.getLogger(TestResultTest.class).info( Logger.getLogger(TestScriptResultTest.class).info(
"resultModel:" + GsonHelper.getGson().toJson(resultModels)); "resultModel:" + GsonHelper.getGson().toJson(resultModels));
assertTrue(resultModels.size() > 0); assertTrue(resultModels.size() > 0);
} }
@ -168,7 +156,7 @@ public class TestResultTest extends LoginHelper {
throws CustomGenericException, JAXBException, InterruptedException { throws CustomGenericException, JAXBException, InterruptedException {
assertNotNull(this.testPlanId); assertNotNull(this.testPlanId);
String scriptId = getOneScriptId(this.getStartTestPlan() String scriptId = getOneScriptId(this.getStartTestPlan()
.getTestPlanRunId()); .getTestPlanRunId(), accessToken);
Thread.sleep(3000); Thread.sleep(3000);
BaseResponseModel baseResponseModel = this BaseResponseModel baseResponseModel = this
.getTestPlanActionController().getScriptBehaviorBriefModel( .getTestPlanActionController().getScriptBehaviorBriefModel(
@ -183,11 +171,12 @@ public class TestResultTest extends LoginHelper {
.getTestBehaviorsBriefModel().getBehaviorBriefModels().size() > 0); .getTestBehaviorsBriefModel().getBehaviorBriefModels().size() > 0);
} }
private String getOneScriptId(String testPlanRunId) { private String getOneScriptId(String testPlanRunId, String accessToken) {
try { try {
return queryTestPlanResultModel(testPlanRunId).getScriptIds() return this.getStartTestPlan()
.get(0).toString(); .queryTestPlanResultModel(testPlanRunId, accessToken)
.getScriptIds().get(0).toString();
} catch (CustomGenericException e) { } catch (CustomGenericException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
logger.info(ExceptionLog.getStackTrace(e)); logger.info(ExceptionLog.getStackTrace(e));
@ -200,12 +189,31 @@ public class TestResultTest extends LoginHelper {
} }
} }
private WebTestPlanResultModel queryTestPlanResultModel(String testPlanRunId) @SuppressWarnings("unchecked")
throws CustomGenericException, JAXBException { @Test
WebTestPlanResultModel webTestPlanResultModel = (WebTestPlanResultModel) this public void test_getSutInfo() throws CustomGenericException, JAXBException,
InterruptedException {
testTestPlanStatus();
List<SutInfo> sutInfos = (List<SutInfo>) this
.getTestPlanActionController() .getTestPlanActionController()
.queryTestPlan(accessToken, .getSutInfo(accessToken, testPlanId).getData();
this.getStartTestPlan().getTestPlanRunId()).getData(); for (SutInfo sutInfo : sutInfos) {
return webTestPlanResultModel; assertEquals("5556", sutInfo.getPort());
assertEquals(TestPlanHelper.MONITOR_IP, sutInfo.getIp());
Gson gson = new Gson();
logger.info(gson.toJson(sutInfo));
}
assertEquals(1, sutInfos.size());
}
private void testTestPlanStatus() throws InterruptedException,
CustomGenericException, JAXBException {
Assert.assertNotNull(this.getStartTestPlan().getTestPlanRunId());
assertNotNull(testPlanId);
Thread.sleep(6000);
WebTestPlanResultModel webTestPlanResultModel = this.getStartTestPlan()
.queryTestPlanResultModel(testPlanId, accessToken);
assertEquals(TestPlanStatus.InRunning,
webTestPlanResultModel.getCurrentStatus());
} }
} }

View File

@ -9,7 +9,7 @@ import org.bench4q.web.api.ScriptActionController;
import org.bench4q.web.exception.CustomGenericException; import org.bench4q.web.exception.CustomGenericException;
import org.bench4q.web.model.BaseResponseModel; import org.bench4q.web.model.BaseResponseModel;
import org.bench4q.web.tool.test.LoginHelper; import org.bench4q.web.tool.test.LoginHelper;
import org.bench4q.web.tool.test.StartTestPlan; import org.bench4q.web.tool.test.TestPlanHelper;
import org.junit.After; import org.junit.After;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -23,7 +23,7 @@ public class TestLoginHelper {
private LoginHelper loginHelper; private LoginHelper loginHelper;
private ScriptActionController scriptActionController; private ScriptActionController scriptActionController;
private StartTestPlan startTestPlan; private TestPlanHelper startTestPlan;
public LoginHelper getLoginHelper() { public LoginHelper getLoginHelper() {
return loginHelper; return loginHelper;
@ -34,12 +34,12 @@ public class TestLoginHelper {
this.loginHelper = loginHelper; this.loginHelper = loginHelper;
} }
public StartTestPlan getStartTestPlan() { public TestPlanHelper getStartTestPlan() {
return startTestPlan; return startTestPlan;
} }
@Autowired @Autowired
public void setStartTestPlan(StartTestPlan startTestPlan) { public void setStartTestPlan(TestPlanHelper startTestPlan) {
this.startTestPlan = startTestPlan; this.startTestPlan = startTestPlan;
} }

View File

@ -13,22 +13,23 @@ import org.bench4q.web.api.TestPlanActionController;
import org.bench4q.web.exception.CustomGenericException; import org.bench4q.web.exception.CustomGenericException;
import org.bench4q.web.model.TestPlanRequestModel; import org.bench4q.web.model.TestPlanRequestModel;
import org.bench4q.web.model.WebScriptModel; import org.bench4q.web.model.WebScriptModel;
import org.bench4q.web.model.WebTestPlanResultModel;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
@Component @Component
public class StartTestPlan { public class TestPlanHelper {
private final String MONITOR_IP = "133.133.12.3"; public static final String MONITOR_IP = "133.133.12.3";
private ScriptHelper scriptHelper; private ScriptHelper scriptHelper;
private TestPlanActionController testPlanActionController; private TestPlanActionController testPlanActionController;
private String testPlanRunId; private String testPlanRunId;
public TestPlanActionController getTestPlanActionController() { public TestPlanActionController getTestPlanActionController() {
return testPlanActionController; return testPlanActionController;
} }
@Autowired
@Autowired
public void setTestPlanActionController( public void setTestPlanActionController(
TestPlanActionController testPlanActionController) { TestPlanActionController testPlanActionController) {
this.testPlanActionController = testPlanActionController; this.testPlanActionController = testPlanActionController;
@ -57,11 +58,11 @@ public class StartTestPlan {
.getTestPlanActionController() .getTestPlanActionController()
.runTestPlan(accessToken, new ModelMap(), .runTestPlan(accessToken, new ModelMap(),
createTestPlanWithMonitor(accessToken)).getData(); createTestPlanWithMonitor(accessToken)).getData();
this.setTestPlanRunId(testPlanResultModel.getTestPlanId() this.setTestPlanRunId(testPlanResultModel.getTestPlanId()
.toString()); .toString());
} catch (Exception e) { } catch (Exception e) {
Logger.getLogger(StartTestPlan.class).info( Logger.getLogger(TestPlanHelper.class).info(
ExceptionLog.getStackTrace(e)); ExceptionLog.getStackTrace(e));
} }
} }
@ -77,9 +78,6 @@ public class StartTestPlan {
.setScriptList(generateWebScriptModels(accessToken)); .setScriptList(generateWebScriptModels(accessToken));
return testPlanRequestModel; return testPlanRequestModel;
} }
// private void deleteTestPlan(String accessToken){
//
// }
private List<WebScriptModel> generateWebScriptModels(String accessToken) private List<WebScriptModel> generateWebScriptModels(String accessToken)
throws JAXBException, IOException, CustomGenericException { throws JAXBException, IOException, CustomGenericException {
@ -87,15 +85,25 @@ public class StartTestPlan {
WebScriptModel webScriptModel = new WebScriptModel(); WebScriptModel webScriptModel = new WebScriptModel();
webScriptModel.setCooldown(1); webScriptModel.setCooldown(1);
webScriptModel.setExecuteRange(50); webScriptModel.setExecuteRange(50);
webScriptModel.setId(this.getScriptHelper().upLoadScriptAndGetId( webScriptModel.setId(this.getScriptHelper()
accessToken).getId()); .upLoadScriptAndGetId(accessToken).getId());
webScriptModel.setLoad(30); webScriptModel.setLoad(30);
webScriptModel.setWarmup(1); webScriptModel.setWarmup(1);
scriptList.add(webScriptModel); scriptList.add(webScriptModel);
return scriptList; return scriptList;
} }
public void cleanUpTest(String accessToken) throws CustomGenericException{
public void cleanUpTest(String accessToken) throws CustomGenericException {
this.getScriptHelper().deleteScript(accessToken); this.getScriptHelper().deleteScript(accessToken);
} }
public WebTestPlanResultModel queryTestPlanResultModel(
String testPlanRunId, String accessToken)
throws CustomGenericException, JAXBException {
WebTestPlanResultModel webTestPlanResultModel = (WebTestPlanResultModel) this
.getTestPlanActionController()
.queryTestPlan(accessToken, testPlanRunId).getData();
return webTestPlanResultModel;
}
} }