add monitor result

This commit is contained in:
fanfuxiaoran 2014-07-04 10:00:58 +08:00
parent b70bb4aa3d
commit 614bd80e39
8 changed files with 399 additions and 215 deletions

View File

@ -4,34 +4,37 @@ import java.io.FileOutputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import javax.xml.bind.JAXBContext; 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.web.model.ResultInfoModel; import org.bench4q.web.model.ResultInfoModel;
import org.bench4q.web.model.TestResult; import org.bench4q.web.model.TestResult;
public class Main { public class Main {
public static void main(String[] args) throws JAXBException { public static void main(String[] args) throws JAXBException {
Main main=new Main(); Main main = new Main();
try { try {
TestResult testResult = new TestResult(); TestResult testResult = new TestResult();
List<ResultInfoModel> results = new LinkedList<ResultInfoModel>(); List<ResultInfoModel> results = new LinkedList<ResultInfoModel>();
results.add(main.createCpuResult()); results.add(main.createCpuResult());
results.add(main.createMemoryResult()); results.add(main.createMemoryResult());
results.add(main.createPhyResult());
results.add(main.createNetResult());
testResult.setResultInfoModels(results); testResult.setResultInfoModels(results);
OutputStream os = new FileOutputStream("sut.xml"); OutputStream os = new FileOutputStream("sut.xml");
Marshaller marshaller = JAXBContext.newInstance(TestResult.class) Marshaller marshaller = JAXBContext.newInstance(TestResult.class)
.createMarshaller(); .createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(testResult, os); marshaller.marshal(testResult, os);
results.clear(); results.clear();
results.add(main.createScriptResult()); results.add(main.createScriptResult());
testResult.setResultInfoModels(results); testResult.setResultInfoModels(results);
OutputStream os1 = new FileOutputStream("script.xml"); OutputStream os1 = new FileOutputStream("script.xml");
marshaller.marshal(testResult, os1); marshaller.marshal(testResult, os1);
} catch (Exception e) { } catch (Exception e) {
@ -74,15 +77,14 @@ public class Main {
} }
} }
private ResultInfoModel createCpuResult() { private ResultInfoModel createCpuResult() {
ResultInfoModel resultInfoModel = new ResultInfoModel(); ResultInfoModel resultInfoModel = new ResultInfoModel();
resultInfoModel.setName("cpu"); resultInfoModel.setName("cpu");
resultInfoModel.setValue("cpu"); resultInfoModel.setValue("cpu");
List<ResultInfoModel> cpuItems = new LinkedList<ResultInfoModel>(); List<ResultInfoModel> cpuItems = new LinkedList<ResultInfoModel>();
cpuItems.add(new ResultInfoModel( "使用率","processorTimePercent")); cpuItems.add(new ResultInfoModel("使用率", "processorTimePercent"));
cpuItems.add(new ResultInfoModel( "系统使用率","privilegedTimePercent")); cpuItems.add(new ResultInfoModel("系统使用率", "privilegedTimePercent"));
cpuItems.add(new ResultInfoModel( "用户使用率","userTimePercent")); cpuItems.add(new ResultInfoModel("用户使用率", "userTimePercent"));
resultInfoModel.setChildren(cpuItems); resultInfoModel.setChildren(cpuItems);
return resultInfoModel; return resultInfoModel;
@ -91,17 +93,50 @@ public class Main {
private ResultInfoModel createMemoryResult() { private ResultInfoModel createMemoryResult() {
ResultInfoModel resultInfoModel = new ResultInfoModel(); ResultInfoModel resultInfoModel = new ResultInfoModel();
resultInfoModel.setName("内存"); resultInfoModel.setName("内存");
resultInfoModel.setValue("mem"); resultInfoModel.setValue("memory");
List<ResultInfoModel> memItems = new LinkedList<ResultInfoModel>(); List<ResultInfoModel> memItems = new LinkedList<ResultInfoModel>();
memItems.add(new ResultInfoModel("页速率","pagesPerSecond" )); memItems.add(new ResultInfoModel("页速率", "pagesPerSecond"));
memItems.add(new ResultInfoModel("读页速率","pagesInputPerSecond")); memItems.add(new ResultInfoModel("读页速率", "pagesInputPerSecond"));
memItems.add(new ResultInfoModel("写页速率","pagesOutputPerSecond" )); memItems.add(new ResultInfoModel("写页速率", "pagesOutputPerSecond"));
memItems.add(new ResultInfoModel("可用内存(kb)","availableKiloBytes")); memItems.add(new ResultInfoModel("可用内存(KB)", "availableKiloBytes"));
memItems.add(new ResultInfoModel( "总容量(kb)","totalKiloBytes")); memItems.add(new ResultInfoModel("总容量(KB)", "totalKiloBytes"));
memItems.add(new ResultInfoModel( "使用率","memoryUsedPercent")); memItems.add(new ResultInfoModel("使用率", "memoryUsedPercent"));
memItems.add(new ResultInfoModel( "交换内存(kb)","swapKiloBytes")); memItems.add(new ResultInfoModel("交换内存(KB)", "swapKiloBytes"));
resultInfoModel.setChildren(memItems); resultInfoModel.setChildren(memItems);
return resultInfoModel; return resultInfoModel;
} }
private ResultInfoModel createPhyResult() {
ResultInfoModel resultInfoModel = new ResultInfoModel();
resultInfoModel.setName("磁盘");
resultInfoModel.setValue("physicalDisk");
List<ResultInfoModel> phyInfoModels = new LinkedList<ResultInfoModel>();
phyInfoModels.add(new ResultInfoModel("读速率(KB/S)", "diskReadKBytesRate"));
phyInfoModels
.add(new ResultInfoModel("写速率(KB/S)", "diskWriteKBytesRate"));
phyInfoModels
.add(new ResultInfoModel("总速率(KB)", "diskTotalKBytesRate"));
phyInfoModels.add(new ResultInfoModel("等待队列", "curDiskQueLength"));
phyInfoModels.add(new ResultInfoModel("总容量(GB)", "totalGB"));
phyInfoModels.add(new ResultInfoModel("占用量(GB)", "usedGB"));
phyInfoModels.add(new ResultInfoModel("使用率", "usedPercent"));
resultInfoModel.setChildren(phyInfoModels);
return resultInfoModel;
}
private ResultInfoModel createNetResult() {
ResultInfoModel resultInfoModel = new ResultInfoModel();
resultInfoModel.setName("网络");
resultInfoModel.setValue("network");
List<ResultInfoModel> phyInfoModels = new LinkedList<ResultInfoModel>();
phyInfoModels.add(new ResultInfoModel("总速率(KB/S)",
"kiloBytesTotalPerSecond"));
phyInfoModels.add(new ResultInfoModel("接收速率(KB/S)",
"kiloBytesReceivedPerSecond"));
phyInfoModels.add(new ResultInfoModel("发送率(KB/S)",
"kiloBytesSentPerSecond"));
resultInfoModel.setChildren(phyInfoModels);
return resultInfoModel;
}
} }

View File

@ -3,8 +3,9 @@ package org.bench4q.web.api;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.bench4q.share.models.master.MonitorMemoryResponseModel; import org.bench4q.share.models.master.MonitorMemoryResponseModel;
import org.bench4q.share.models.master.MonitorNetworkReponseModel;
import org.bench4q.share.models.master.MonitorPhysicalDiskResponseModel;
import org.bench4q.share.models.master.MonitorProcessorResponseModel; import org.bench4q.share.models.master.MonitorProcessorResponseModel;
import org.bench4q.web.masterMessager.MonitorMessager; import org.bench4q.web.masterMessager.MonitorMessager;
import org.bench4q.web.model.ResultModel; import org.bench4q.web.model.ResultModel;
@ -43,7 +44,7 @@ public class MonitorController extends BaseController {
this.monitorService = monitorService; this.monitorService = monitorService;
} }
@RequestMapping("/{testPlanId}/{ip}/Cpu/{fieldName}/{startTime}") @RequestMapping("/{testPlanId}/{ip}/cpu/{fieldName}/{startTime}")
@ResponseBody @ResponseBody
public Map<String, Object> getCpuResult( public Map<String, Object> getCpuResult(
@ModelAttribute("accessToken") String accessToken, @ModelAttribute("accessToken") String accessToken,
@ -59,7 +60,7 @@ public class MonitorController extends BaseController {
} }
List<ResultModel> resultModels = this.getMonitorService() List<ResultModel> resultModels = this.getMonitorService()
.extractCpuResult( .extractMonitorResult(
monitorProcessorResponseModel.getProcessorModels(), monitorProcessorResponseModel.getProcessorModels(),
fieldName); fieldName);
@ -72,37 +73,37 @@ public class MonitorController extends BaseController {
} }
} }
@RequestMapping("/{testPlanId}/SUT/{ip}/cpu/{cpuInstance}/{fieldName}/{startTime}") // @RequestMapping("/{testPlanId}/SUT/{ip}/cpu/{cpuInstance}/{fieldName}/{startTime}")
@ResponseBody // @ResponseBody
public Map<String, Object> getCpuResult( // public Map<String, Object> getCpuResult(
@ModelAttribute("accessToken") String accessToken, // @ModelAttribute("accessToken") String accessToken,
@PathVariable("testPlanId") String testplanId, // @PathVariable("testPlanId") String testplanId,
@PathVariable String ip, @PathVariable String port, // @PathVariable String ip, @PathVariable String port,
@PathVariable String cpuInstance, @PathVariable String fieldName, // @PathVariable String cpuInstance, @PathVariable String fieldName,
@PathVariable String startTime) { // @PathVariable String startTime) {
Map<String, Object> map = new HashMap<String, Object>(); // Map<String, Object> map = new HashMap<String, Object>();
MonitorProcessorResponseModel monitorProcessorResponseModel = this // MonitorProcessorResponseModel monitorProcessorResponseModel = this
.getMonitorMessager().porcessor(accessToken, testplanId, ip, // .getMonitorMessager().porcessor(accessToken, testplanId, ip,
port, startTime); // port, startTime);
if (monitorProcessorResponseModel == null) { // if (monitorProcessorResponseModel == null) {
return fail(map, SERVER_ERROR); // return fail(map, SERVER_ERROR);
} // }
//
// List<ResultModel> resultModels = this.getMonitorService()
// .extractCpuResultModelList(
// monitorProcessorResponseModel.getProcessorModels(),
// cpuInstance, fieldName);
// if (resultModels == null) {
// return fail(map, SERVER_ERROR);
// } else {
// success(map);
// map.put("result", resultModels);
// return map;
// }
//
// }
List<ResultModel> resultModels = this.getMonitorService() @RequestMapping("/{testPlanId}/{ip}/memory/{fieldName}/{startTime}")
.extractCpuResultModelList(
monitorProcessorResponseModel.getProcessorModels(),
cpuInstance, fieldName);
if (resultModels == null) {
return fail(map, SERVER_ERROR);
} else {
success(map);
map.put("result", resultModels);
return map;
}
}
@RequestMapping("/{testPlanId}/{ip}/Memory/{fieldName}/{startTime}")
@ResponseBody @ResponseBody
public Map<String, Object> getMemoryStatus( public Map<String, Object> getMemoryStatus(
@ModelAttribute("accessToken") String accessToken, @ModelAttribute("accessToken") String accessToken,
@ -119,7 +120,7 @@ public class MonitorController extends BaseController {
} }
List<ResultModel> resultModels = this List<ResultModel> resultModels = this
.getMonitorService() .getMonitorService()
.extractResultModelList( .extractMonitorResult(
monitorMemoryResponseModel.getMemoryModels(), fieldName); monitorMemoryResponseModel.getMemoryModels(), fieldName);
if (resultModels == null) { if (resultModels == null) {
return fail(map, SERVER_ERROR); return fail(map, SERVER_ERROR);
@ -128,18 +129,62 @@ public class MonitorController extends BaseController {
map.put("result", resultModels); map.put("result", resultModels);
return map; return map;
} }
}
@RequestMapping("/{testPlanId}/{ip}/physicalDisk/{fieldName}/{startTime}")
@ResponseBody
public Map<String, Object> getPhysicalDisk(
@ModelAttribute("accessToken") String accessToken,
@PathVariable("testPlanId") String testPlanId,
@PathVariable String ip, @PathVariable String fieldName,
@PathVariable String startTime) {
Map<String, Object> map = new HashMap<>();
MonitorPhysicalDiskResponseModel monitorPhysicalDiskResponseModel = this
.getMonitorMessager().physicalDisk(accessToken, testPlanId, ip,
port, startTime);
if (monitorPhysicalDiskResponseModel == null) {
return fail(map, SERVER_ERROR);
}
List<ResultModel> resultModels = this
.getMonitorService()
.extractMonitorResult(
monitorPhysicalDiskResponseModel
.getPhysicalDiskModels(),
fieldName);
if (resultModels == null) {
return fail(map, "");
} else {
map = success(map);
map.put("result", resultModels);
return map;
}
}
@RequestMapping("/{testPlanId}/{ip}/network/{fieldName}/{startTime}")
@ResponseBody
public Map<String, Object> getNetworkStaus(
@ModelAttribute("accessToken") String accessToken,
@PathVariable("testPlanId") String testPlanId,
@PathVariable String ip, @PathVariable String fieldName,
@PathVariable String startTime) {
Map<String, Object> map = new HashMap<>();
MonitorNetworkReponseModel monitorNetworkReponseModel = this
.getMonitorMessager().network(accessToken, testPlanId, ip,
port, startTime);
if (monitorNetworkReponseModel == null) {
return fail(map, SERVER_ERROR);
}
List<ResultModel> resultModels = this.getMonitorService()
.extractMonitorResult(monitorNetworkReponseModel.getModels(),
fieldName);
if (resultModels == null) {
return fail(map, SERVER_ERROR);
} else {
map = success(map);
map.put("result", resultModels);
return map;
}
} }
@RequestMapping("/{testPlanId}/SUT/{ip}/network/result/{fieldName}/{startTime}")
@ResponseBody
public Map<String, String> getNetworkStaus(
@ModelAttribute("accessToken") String accessToken,
@PathVariable("testPlanId") String testPlanId,
@PathVariable String ip, @PathVariable String port,
@PathVariable String fieldName, @PathVariable String startTime) {
Map<String, String> map = new HashMap<>();
return map;
}
} }

View File

@ -7,9 +7,11 @@ import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.util.List; import java.util.List;
import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException; import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller; import javax.xml.bind.Unmarshaller;
import org.bench4q.web.model.ResultInfoModel; import org.bench4q.web.model.ResultInfoModel;
import org.bench4q.web.model.TestResult; import org.bench4q.web.model.TestResult;

View File

@ -3,12 +3,12 @@ package org.bench4q.web.masterMessager;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.xml.bind.JAXBException; import javax.xml.bind.JAXBException;
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.MonitorMemoryResponseModel; import org.bench4q.share.models.master.MonitorMemoryResponseModel;
import org.bench4q.share.models.master.MonitorNetworkReponseModel;
import org.bench4q.share.models.master.MonitorPhysicalDiskResponseModel;
import org.bench4q.share.models.master.MonitorProcessorResponseModel; import org.bench4q.share.models.master.MonitorProcessorResponseModel;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -59,11 +59,11 @@ public class MonitorMessager extends MasterMessager {
try { try {
httpResponse = this.getHttpRequester().sendGet(url, params, httpResponse = this.getHttpRequester().sendGet(url, params,
makeAccessTockenMap(accessToken)); makeAccessTockenMap(accessToken));
if (!validateHttpResponse(httpResponse)){ if (!validateHttpResponse(httpResponse)) {
return null; return null;
} }
MonitorProcessorResponseModel monitorProcessorResponseModel = (MonitorProcessorResponseModel) MarshalHelper MonitorProcessorResponseModel monitorProcessorResponseModel = (MonitorProcessorResponseModel) MarshalHelper
.unmarshal(MonitorProcessorResponseModel.class, .unmarshal(MonitorProcessorResponseModel.class,
httpResponse.getContent()); httpResponse.getContent());
return monitorProcessorResponseModel; return monitorProcessorResponseModel;
@ -73,6 +73,55 @@ public class MonitorMessager extends MasterMessager {
} }
} }
public MonitorNetworkReponseModel network(String accessToken,
String testPlanRunId, String hostName, String port,
String duationBegin) {
String url = this.baseUrl + "/networkInfo";
Map<String, String> params = createParmsMap(testPlanRunId, hostName,
port, duationBegin);
HttpResponse httpResponse = null;
try {
httpResponse = this.getHttpRequester().sendGet(url, params,
makeAccessTockenMap(accessToken));
if (!validateHttpResponse(httpResponse)) {
handleInvalidatedResponse(url);
return null;
}
MonitorNetworkReponseModel networkInterfaceModel = (MonitorNetworkReponseModel) MarshalHelper
.unmarshal(MonitorNetworkReponseModel.class,
httpResponse.getContent());
return networkInterfaceModel;
} catch (Exception e) {
this.handleException(httpResponse, e);
return null;
}
}
public MonitorPhysicalDiskResponseModel physicalDisk(String accessToken,
String testPlanRunId, String hostName, String port,
String duationBegin) {
String url = this.baseUrl + "/logicDiskMonitorSUTInfo" + "/"
+ testPlanRunId + "/" + hostName + "/" + port + "/"
+ duationBegin;
HttpResponse httpResponse = null;
try {
httpResponse = this.getHttpRequester().sendGet(url, null,
makeAccessTockenMap(accessToken));
if (!validateHttpResponse(httpResponse)) {
this.handleInvalidatedResponse(url);
return null;
}
MonitorPhysicalDiskResponseModel monitorPhysicalDiskResponseModel = (MonitorPhysicalDiskResponseModel) MarshalHelper
.unmarshal(MonitorPhysicalDiskResponseModel.class,
httpResponse.getContent());
return monitorPhysicalDiskResponseModel;
} catch (Exception e) {
this.handleException(httpResponse, e);
return null;
}
}
private Map<String, String> createParmsMap(String testPlanRunId, private Map<String, String> createParmsMap(String testPlanRunId,
String hostName, String port, String duationBegin) { String hostName, String port, String duationBegin) {
Map<String, String> params = new HashMap<String, String>(); Map<String, String> params = new HashMap<String, String>();

View File

@ -1,78 +1,33 @@
package org.bench4q.web.service; package org.bench4q.web.service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedList;
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.helper.ExceptionLog;
import org.bench4q.share.models.master.MonitorProcessorResponseModel; import org.bench4q.share.models.master.statistics.SampleModel;
import org.bench4q.share.models.monitor.MemoryModel;
import org.bench4q.share.models.monitor.ProcessorModel;
import org.bench4q.share.models.monitor.ProcessorModelChild;
import org.bench4q.web.masterMessager.MonitorMessager;
import org.bench4q.web.model.ResultModel; import org.bench4q.web.model.ResultModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestParam;
@Component @Component
public class MonitorService { public class MonitorService {
private MonitorMessager monitorMessager;
private MonitorMessager getMonitorMessager() {
return monitorMessager;
}
@Autowired
private void setMonitorMessager(MonitorMessager monitorMessager) {
this.monitorMessager = monitorMessager;
}
private Logger logger = Logger.getLogger(MonitorService.class); private Logger logger = Logger.getLogger(MonitorService.class);
public List<ResultModel> extractCpuResultModelList( public List<ResultModel> extractMonitorResult(List<? extends SampleModel> list,
List<ProcessorModel> processorModels, String instance,
String fieldName) { String fieldName) {
if (processorModels == null) { if (list == null)
return null;
}
List<ResultModel> resultModels = new ArrayList<ResultModel>();
for (ProcessorModel processorModel : processorModels) {
if (processorModel != null) {
ResultModel resultModel;
try {
resultModel = extractResultModel(processorModel, instance,
fieldName);
if (resultModel != null)
resultModels.add(resultModel);
} catch (NoSuchFieldException | IllegalArgumentException e) {
// TODO Auto-generated catch block
logger.info(ExceptionLog.getStackTrace(e));
}
}
}
return resultModels;
}
public List<ResultModel> extractCpuResult(
List<ProcessorModel> processorModels,String fieldName) {
if (processorModels == null)
return null; return null;
List<ResultModel> resultModels = new ArrayList<ResultModel>(); List<ResultModel> resultModels = new ArrayList<ResultModel>();
List<String> fieldNames = new ArrayList<String>(); List<String> fieldNames = new ArrayList<String>();
fieldNames.add(fieldName); fieldNames.add(fieldName);
for (ProcessorModel processorModel : processorModels) { for (SampleModel sampleModel : list) {
if (processorModel != null) { if (sampleModel != null) {
ResultModel resultModel; ResultModel resultModel;
try { try {
resultModel = ChangeToResultModel.getResultModel( resultModel = ChangeToResultModel.getResultModel(
processorModel, fieldNames); sampleModel, fieldNames);
resultModel.setTime(processorModel.getSamplingTime()); resultModel.setTime(sampleModel.getSamplingTime());
resultModel.setFinished(processorModel.isFinished()); resultModel.setFinished(sampleModel.isFinished());
resultModels.add(resultModel); resultModels.add(resultModel);
} catch (NoSuchFieldException e) { } catch (NoSuchFieldException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
@ -84,92 +39,144 @@ public class MonitorService {
return resultModels; return resultModels;
} }
public List<ResultModel> extractResultModelList( // public List<ResultModel> extractCpuResultModelList(
List<MemoryModel> memoryModels, String fieldName) { // List<ProcessorModel> processorModels, String instance,
if (memoryModels == null) // String fieldName) {
return null; // if (processorModels == null) {
List<ResultModel> resultModels = new ArrayList<ResultModel>(); // return null;
List<String> fieldNames = new ArrayList<String>(); // }
fieldNames.add(fieldName); // List<ResultModel> resultModels = new ArrayList<ResultModel>();
for (MemoryModel memoryModel : memoryModels) { // for (ProcessorModel processorModel : processorModels) {
if (memoryModel != null) { // if (processorModel != null) {
ResultModel resultModel; // ResultModel resultModel;
try { // try {
resultModel = ChangeToResultModel.getResultModel( // resultModel = extractResultModel(processorModel, instance,
memoryModel, fieldNames); // fieldName);
resultModel.setTime(memoryModel.getSamplingTime()); // if (resultModel != null)
resultModel.setFinished(memoryModel.isFinished()); // resultModels.add(resultModel);
resultModels.add(resultModel); // } catch (NoSuchFieldException | IllegalArgumentException e) {
} catch (NoSuchFieldException e) { // // TODO Auto-generated catch block
// TODO Auto-generated catch block // logger.info(ExceptionLog.getStackTrace(e));
logger.info(ExceptionLog.getStackTrace(e)); // }
} //
// }
} //
} // }
return resultModels; // return resultModels;
} // }
//
private ResultModel extractResultModel(ProcessorModel processorModel, // public List<ResultModel> extractCpuResult(
String instance, String fieldName) throws NoSuchFieldException, // List<ProcessorModel> processorModels, String fieldName) {
IllegalArgumentException { // if (processorModels == null)
List<String> fieldNames = new ArrayList<String>(); // return null;
fieldNames.add(fieldName); // List<ResultModel> resultModels = new ArrayList<ResultModel>();
if (processorModel.getProcessorModelList() == null) { // List<String> fieldNames = new ArrayList<String>();
return null; // fieldNames.add(fieldName);
} // for (ProcessorModel processorModel : processorModels) {
for (ProcessorModelChild processorModelChild : processorModel // if (processorModel != null) {
.getProcessorModelList()) { // ResultModel resultModel;
if (processorModelChild.getInstance().equalsIgnoreCase(instance)) { // try {
ResultModel resultModel = ChangeToResultModel.getResultModel( // resultModel = ChangeToResultModel.getResultModel(
processorModelChild, fieldNames); // processorModel, fieldNames);
resultModel.setFinished(false); // resultModel.setTime(processorModel.getSamplingTime());
resultModel.setTime(processorModel.getSamplingTime()); // resultModel.setFinished(processorModel.isFinished());
return resultModel; // resultModels.add(resultModel);
} // } catch (NoSuchFieldException e) {
} // // TODO Auto-generated catch block
logger.info("no such cpu instance"); // logger.info(ExceptionLog.getStackTrace(e));
return null; // }
} //
// }
public List<String> getCpuList( // }
@ModelAttribute("accessToken") String accessToken, // return resultModels;
@RequestParam("testPlanId") String testPlanId, // }
@RequestParam String ip, String port) { //
try { // public List<ResultModel> extractResultModelList(
MonitorProcessorResponseModel monitorProcessorResponseModel = getCpus( // List<MemoryModel> memoryModels, String fieldName) {
accessToken, testPlanId, ip, port, "0"); // if (memoryModels == null)
// return null;
ProcessorModel processorModel = null; // List<ResultModel> resultModels = new ArrayList<ResultModel>();
List<ProcessorModel> processorModels = monitorProcessorResponseModel // List<String> fieldNames = new ArrayList<String>();
.getProcessorModels(); // fieldNames.add(fieldName);
if (processorModels.size() > 0) { // for (MemoryModel memoryModel : memoryModels) {
processorModel = processorModels.get(0); // if (memoryModel != null) {
} // ResultModel resultModel;
// try {
else { // resultModel = ChangeToResultModel.getResultModel(
return new ArrayList<String>(); // memoryModel, fieldNames);
} // resultModel.setTime(memoryModel.getSamplingTime());
// resultModel.setFinished(memoryModel.isFinished());
List<String> cpuList = new ArrayList<String>(); // resultModels.add(resultModel);
for (ProcessorModelChild processorModelChild : processorModel // } catch (NoSuchFieldException e) {
.getProcessorModelList()) { // // TODO Auto-generated catch block
cpuList.add(processorModelChild.getInstance()); // logger.info(ExceptionLog.getStackTrace(e));
} // }
return cpuList; //
} catch (NullPointerException e) { // }
logger.info(ExceptionLog.getStackTrace(e)); // }
return new LinkedList<String>(); // return resultModels;
} // }
} //
// private ResultModel extractResultModel(ProcessorModel processorModel,
public MonitorProcessorResponseModel getCpus( // String instance, String fieldName) throws NoSuchFieldException,
@ModelAttribute("accessToken") String accessToken, // IllegalArgumentException {
String testPlanId, String ip, String port, String startTime) { // List<String> fieldNames = new ArrayList<String>();
MonitorProcessorResponseModel model = this.getMonitorMessager() // fieldNames.add(fieldName);
.porcessor(accessToken, testPlanId, ip, port, startTime); // if (processorModel.getProcessorModelList() == null) {
return model; // return null;
// }
} // for (ProcessorModelChild processorModelChild : processorModel
// .getProcessorModelList()) {
// if (processorModelChild.getInstance().equalsIgnoreCase(instance)) {
// ResultModel resultModel = ChangeToResultModel.getResultModel(
// processorModelChild, fieldNames);
// resultModel.setFinished(false);
// resultModel.setTime(processorModel.getSamplingTime());
// return resultModel;
// }
// }
// logger.info("no such cpu instance");
// return null;
// }
//
// public List<String> getCpuList(
// @ModelAttribute("accessToken") String accessToken,
// @RequestParam("testPlanId") String testPlanId,
// @RequestParam String ip, String port) {
// try {
// MonitorProcessorResponseModel monitorProcessorResponseModel = getCpus(
// accessToken, testPlanId, ip, port, "0");
//
// ProcessorModel processorModel = null;
// List<ProcessorModel> processorModels = monitorProcessorResponseModel
// .getProcessorModels();
// if (processorModels.size() > 0) {
// processorModel = processorModels.get(0);
// }
//
// else {
// return new ArrayList<String>();
// }
//
// List<String> cpuList = new ArrayList<String>();
// for (ProcessorModelChild processorModelChild : processorModel
// .getProcessorModelList()) {
// cpuList.add(processorModelChild.getInstance());
// }
// return cpuList;
// } catch (NullPointerException e) {
// logger.info(ExceptionLog.getStackTrace(e));
// return new LinkedList<String>();
// }
// }
//
// public MonitorProcessorResponseModel getCpus(
// @ModelAttribute("accessToken") String accessToken,
// String testPlanId, String ip, String port, String startTime) {
// MonitorProcessorResponseModel model = this.getMonitorMessager()
// .porcessor(accessToken, testPlanId, ip, port, startTime);
// return model;
//
// }
} }

View File

@ -15,7 +15,7 @@
<value>userTimePercent</value> <value>userTimePercent</value>
</children> </children>
<name>cpu</name> <name>cpu</name>
<value>Cpu</value> <value>cpu</value>
</result> </result>
<result> <result>
<children> <children>
@ -31,11 +31,11 @@
<value>pagesOutputPerSecond</value> <value>pagesOutputPerSecond</value>
</children> </children>
<children> <children>
<name>可用内存(kb)</name> <name>可用内存(KB)</name>
<value>availableKiloBytes</value> <value>availableKiloBytes</value>
</children> </children>
<children> <children>
<name>总容量(kb)</name> <name>总容量(KB)</name>
<value>totalKiloBytes</value> <value>totalKiloBytes</value>
</children> </children>
<children> <children>
@ -43,11 +43,59 @@
<value>memoryUsedPercent</value> <value>memoryUsedPercent</value>
</children> </children>
<children> <children>
<name>交换内存(kb)</name> <name>交换内存(KB)</name>
<value>swapKiloBytes</value> <value>swapKiloBytes</value>
</children> </children>
<name>内存</name> <name>内存</name>
<value>Memory</value> <value>memory</value>
</result>
<result>
<children>
<name>读速率(KB/S)</name>
<value>diskReadKBytesRate</value>
</children>
<children>
<name>写速率(KB/S)</name>
<value>diskWriteKBytesRate</value>
</children>
<children>
<name>总速率(KB)</name>
<value>diskTotalKBytesRate</value>
</children>
<children>
<name>等待队列</name>
<value>curDiskQueLength</value>
</children>
<children>
<name>总容量(GB)</name>
<value>totalGB</value>
</children>
<children>
<name>占用量(GB)</name>
<value>usedGB</value>
</children>
<children>
<name>使用率</name>
<value>usedPercent</value>
</children>
<name>磁盘</name>
<value>physicalDisk</value>
</result>
<result>
<children>
<name>总速率(KB/S)</name>
<value>kiloBytesTotalPerSecond</value>
</children>
<children>
<name>接收速率(KB/S)</name>
<value>kiloBytesReceivedPerSecond</value>
</children>
<children>
<name>发送率(KB/S)</name>
<value>kiloBytesSentPerSecond</value>
</children>
<name>网络</name>
<value>network</value>
</result> </result>
</results> </results>
</testResult> </testResult>

View File

@ -20,8 +20,8 @@ $(function() {
// behaviorResult.getResult(testPlanId, getScriptList(testPlanId)); // behaviorResult.getResult(testPlanId, getScriptList(testPlanId));
// // var pageResult = new PageResult(); // // var pageResult = new PageResult();
// pageResult.getResult(testPlanId, getScriptList(testPlanId)); // pageResult.getResult(testPlanId, getScriptList(testPlanId));
var urlContentTypeDistribution = new UrlContentTypeDistribution( // var urlContentTypeDistribution = new UrlContentTypeDistribution(
"url-distribution", testPlanId); // "url-distribution", testPlanId);
}); });
function getTestInfo(testPlanId) { function getTestInfo(testPlanId) {
var testPlan; var testPlan;

View File

@ -7,7 +7,6 @@ import static org.junit.Assert.*;
import org.bench4q.share.helper.MarshalHelper; import org.bench4q.share.helper.MarshalHelper;
import org.bench4q.share.models.master.TestPlanResponseModel; import org.bench4q.share.models.master.TestPlanResponseModel;
import org.bench4q.share.models.master.TestPlanResultModel; import org.bench4q.share.models.master.TestPlanResultModel;
import org.bench4q.share.models.master.TestPlanScriptBriefResultModel;
import org.bench4q.share.models.master.statistics.ScriptBehaviorsBriefModel; import org.bench4q.share.models.master.statistics.ScriptBehaviorsBriefModel;
import org.bench4q.web.masterMessager.TestPlanMessager; import org.bench4q.web.masterMessager.TestPlanMessager;
@ -27,7 +26,6 @@ public class TestPlanMessageTest extends MessagerTestBase {
private String baseUrl = "/testPlan"; private String baseUrl = "/testPlan";
private String testPlanId = "testPlanId"; private String testPlanId = "testPlanId";
private String scriptId = "scriptId"; private String scriptId = "scriptId";
private String duationBegin = "duationBegin";
public TestPlanMessager getTestPlanMessager() { public TestPlanMessager getTestPlanMessager() {
return testPlanMessager; return testPlanMessager;