go on creating the report, and it need to be tested
This commit is contained in:
parent
398ae19344
commit
3b4cb24b4d
|
@ -1,15 +1,22 @@
|
|||
package org.bench4q.master.api.model;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
import org.bench4q.master.communication.monitor.LogicalDiskModel;
|
||||
|
||||
/**
|
||||
* @author coderfengyun
|
||||
*
|
||||
*/
|
||||
@XmlRootElement(name = "MonitorLogicalDiskResponseModel")
|
||||
public class MonitorLogicalDiskResponseModel {
|
||||
private boolean success;
|
||||
private String failCause;
|
||||
private LogicalDiskModel logicalDiskModel;
|
||||
private Date createDatetime;
|
||||
|
||||
@XmlElement(name = "success")
|
||||
public boolean isSuccess() {
|
||||
|
@ -38,4 +45,12 @@ public class MonitorLogicalDiskResponseModel {
|
|||
this.logicalDiskModel = logicalDiskModel;
|
||||
}
|
||||
|
||||
public Date getCreateDatetime() {
|
||||
return createDatetime;
|
||||
}
|
||||
|
||||
public void setCreateDatetime(Date createDatetime) {
|
||||
this.createDatetime = createDatetime;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package org.bench4q.master.api.model;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
|
@ -10,6 +12,7 @@ public class MonitorMemoryResponseModel {
|
|||
private boolean success;
|
||||
private String failCause;
|
||||
private MemoryModel memoryModel;
|
||||
private Date createDatetime;
|
||||
|
||||
@XmlElement
|
||||
public boolean isSuccess() {
|
||||
|
@ -38,4 +41,12 @@ public class MonitorMemoryResponseModel {
|
|||
this.memoryModel = memoryModel;
|
||||
}
|
||||
|
||||
public Date getCreateDatetime() {
|
||||
return createDatetime;
|
||||
}
|
||||
|
||||
public void setCreateDatetime(Date createDatetime) {
|
||||
this.createDatetime = createDatetime;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package org.bench4q.master.api.model;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
|
@ -10,6 +12,7 @@ public class MonitorNetWorkReponseModel {
|
|||
private boolean success;
|
||||
private String failCause;
|
||||
private NetworkInterfaceModel model;
|
||||
private Date createDatetime;
|
||||
|
||||
@XmlElement
|
||||
public boolean isSuccess() {
|
||||
|
@ -38,4 +41,11 @@ public class MonitorNetWorkReponseModel {
|
|||
this.model = model;
|
||||
}
|
||||
|
||||
public Date getCreateDatetime() {
|
||||
return createDatetime;
|
||||
}
|
||||
|
||||
public void setCreateDatetime(Date createDatetime) {
|
||||
this.createDatetime = createDatetime;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package org.bench4q.master.api.model;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
|
@ -10,6 +12,7 @@ public class MonitorProcessorResponseModel {
|
|||
private boolean success;
|
||||
private String failCause;
|
||||
private ProcessorModel processorModel;
|
||||
private Date createDatetime;
|
||||
|
||||
@XmlElement
|
||||
public boolean isSuccess() {
|
||||
|
@ -38,4 +41,12 @@ public class MonitorProcessorResponseModel {
|
|||
this.processorModel = processorModel;
|
||||
}
|
||||
|
||||
public Date getCreateDatetime() {
|
||||
return createDatetime;
|
||||
}
|
||||
|
||||
public void setCreateDatetime(Date createDatetime) {
|
||||
this.createDatetime = createDatetime;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
package org.bench4q.master.api.model;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MonitorResultContainerModel {
|
||||
private List<MonitorLogicalDiskResponseModel> logicalDiskResponseModels;
|
||||
private List<MonitorMemoryResponseModel> memoryResponseModels;
|
||||
private List<MonitorProcessorResponseModel> processorResponseModels;
|
||||
private List<MonitorNetWorkReponseModel> netWorkReponseModels;
|
||||
|
||||
public List<MonitorLogicalDiskResponseModel> getLogicalDiskResponseModels() {
|
||||
return logicalDiskResponseModels;
|
||||
}
|
||||
|
||||
public void setLogicalDiskResponseModels(
|
||||
List<MonitorLogicalDiskResponseModel> logicalDiskResponseModels) {
|
||||
this.logicalDiskResponseModels = logicalDiskResponseModels;
|
||||
}
|
||||
|
||||
public List<MonitorMemoryResponseModel> getMemoryResponseModels() {
|
||||
return memoryResponseModels;
|
||||
}
|
||||
|
||||
public void setMemoryResponseModels(
|
||||
List<MonitorMemoryResponseModel> memoryResponseModels) {
|
||||
this.memoryResponseModels = memoryResponseModels;
|
||||
}
|
||||
|
||||
public List<MonitorProcessorResponseModel> getProcessorResponseModels() {
|
||||
return processorResponseModels;
|
||||
}
|
||||
|
||||
public void setProcessorResponseModels(
|
||||
List<MonitorProcessorResponseModel> processorResponseModels) {
|
||||
this.processorResponseModels = processorResponseModels;
|
||||
}
|
||||
|
||||
public List<MonitorNetWorkReponseModel> getNetWorkReponseModels() {
|
||||
return netWorkReponseModels;
|
||||
}
|
||||
|
||||
public void setNetWorkReponseModels(
|
||||
List<MonitorNetWorkReponseModel> netWorkReponseModels) {
|
||||
this.netWorkReponseModels = netWorkReponseModels;
|
||||
}
|
||||
|
||||
public MonitorResultContainerModel() {
|
||||
this.setLogicalDiskResponseModels(new ArrayList<MonitorLogicalDiskResponseModel>());
|
||||
this.setMemoryResponseModels(new ArrayList<MonitorMemoryResponseModel>());
|
||||
this.setProcessorResponseModels(new ArrayList<MonitorProcessorResponseModel>());
|
||||
this.setNetWorkReponseModels(new ArrayList<MonitorNetWorkReponseModel>());
|
||||
}
|
||||
}
|
|
@ -2,12 +2,16 @@ package org.bench4q.master.service;
|
|||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.xml.bind.JAXBException;
|
||||
|
||||
import org.bench4q.master.api.model.MonitorLogicalDiskResponseModel;
|
||||
import org.bench4q.master.api.model.MonitorMemoryResponseModel;
|
||||
import org.bench4q.master.api.model.MonitorNetWorkReponseModel;
|
||||
import org.bench4q.master.api.model.MonitorProcessorResponseModel;
|
||||
import org.bench4q.master.api.model.MonitorResultContainerModel;
|
||||
import org.bench4q.master.communication.monitor.LogicalDiskModel;
|
||||
import org.bench4q.master.communication.monitor.MemoryModel;
|
||||
import org.bench4q.master.communication.monitor.NetworkInterfaceModel;
|
||||
|
@ -39,6 +43,7 @@ public class ReportService {
|
|||
public static String Average_Response_Time = "averageResponseTime";
|
||||
public static String Time = "time";
|
||||
public static String Pdf_Path = "test.pdf";
|
||||
public static String Processor = "ProcessorTimePercent";
|
||||
|
||||
public TestPlanScriptService getTestPlanScriptService() {
|
||||
return testPlanScriptService;
|
||||
|
@ -124,14 +129,14 @@ public class ReportService {
|
|||
+ scriptName);
|
||||
paragraph.setAlignment(Element.ALIGN_CENTER);
|
||||
document.add(paragraph);
|
||||
writeImageIntoPdf(outputStream.toByteArray(), scriptName, document);
|
||||
writeImageIntoPdf(outputStream.toByteArray(), document);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void writeImageIntoPdf(byte[] buffer, String scriptName,
|
||||
Document document) throws Exception {
|
||||
private void writeImageIntoPdf(byte[] buffer, Document document)
|
||||
throws Exception {
|
||||
Image image = Image.getInstance(buffer);
|
||||
document.add(image);
|
||||
}
|
||||
|
@ -142,7 +147,7 @@ public class ReportService {
|
|||
PdfWriter.getInstance(document, new FileOutputStream(Pdf_Path));
|
||||
document.open();
|
||||
createScriptsResultsImage(testPlanRunID, document);
|
||||
createMonitorResultImage(testPlanRunID, document);
|
||||
createMonitorResultImages(testPlanRunID, document);
|
||||
document.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
@ -150,75 +155,143 @@ public class ReportService {
|
|||
}
|
||||
}
|
||||
|
||||
private void createMonitorResultImage(UUID testPlanRunID, Document document) {
|
||||
private void createMonitorResultImages(UUID testPlanRunID, Document document) {
|
||||
Map<String, MonitorResultContainerModel> SUTResultMap = new HashMap<String, MonitorResultContainerModel>();
|
||||
List<MonitorResult> results = this.getMonitorResultService()
|
||||
.queryMonitorResults(testPlanRunID);
|
||||
List<LogicalDiskModel> logicalDiskModels = new ArrayList<LogicalDiskModel>();
|
||||
List<MemoryModel> memoryModels = new ArrayList<MemoryModel>();
|
||||
List<ProcessorModel> processorModels = new ArrayList<ProcessorModel>();
|
||||
List<NetworkInterfaceModel> networkInterfaceModels = new ArrayList<NetworkInterfaceModel>();
|
||||
if (results == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (MonitorResult result : results) {
|
||||
if (result == null) {
|
||||
continue;
|
||||
}
|
||||
sortResultToList(result, logicalDiskModels, memoryModels,
|
||||
processorModels, networkInterfaceModels);
|
||||
buildSUTResultMap(SUTResultMap, result);
|
||||
}
|
||||
createProcessorImage(processorModels);
|
||||
createMemoryImage(memoryModels);
|
||||
createLogicalDiskImage(logicalDiskModels);
|
||||
createNetworkImage(networkInterfaceModels);
|
||||
|
||||
for (String hostName : SUTResultMap.keySet()) {
|
||||
createSUTImage(hostName, SUTResultMap.get(hostName), document);
|
||||
}
|
||||
// createProcessorImage(processorModels);
|
||||
// createMemoryImage(memoryModels);
|
||||
// createLogicalDiskImage(logicalDiskModels);
|
||||
// createNetworkImage(networkInterfaceModels);
|
||||
}
|
||||
|
||||
private void buildSUTResultMap(
|
||||
Map<String, MonitorResultContainerModel> sUTResultMap,
|
||||
MonitorResult result) {
|
||||
String hostName = result.getHostNameUnderMonitor();
|
||||
if (!sUTResultMap.containsKey(hostName)) {
|
||||
sUTResultMap.put(result.getHostNameUnderMonitor(),
|
||||
new MonitorResultContainerModel());
|
||||
}
|
||||
sortResultToList(result, sUTResultMap.get(hostName));
|
||||
}
|
||||
|
||||
private void sortResultToList(final MonitorResult result,
|
||||
List<LogicalDiskModel> logicalDiskModels,
|
||||
List<MemoryModel> memoryModels,
|
||||
List<ProcessorModel> processorModels,
|
||||
List<NetworkInterfaceModel> networkInterfaceModels) {
|
||||
MonitorResultContainerModel container) {
|
||||
try {
|
||||
if (Class.forName(result.getType()).equals(LogicalDiskModel.class)) {
|
||||
logicalDiskModels.add(MonitorService
|
||||
MonitorLogicalDiskResponseModel logicalDiskResponseModel = new MonitorLogicalDiskResponseModel();
|
||||
logicalDiskResponseModel.setCreateDatetime(result
|
||||
.getCreateDatetime());
|
||||
logicalDiskResponseModel.setLogicalDiskModel(MonitorService
|
||||
.extractLogicalDiskModel(result.getContent()));
|
||||
container.getLogicalDiskResponseModels().add(
|
||||
logicalDiskResponseModel);
|
||||
} else if (Class.forName(result.getType())
|
||||
.equals(MemoryModel.class)) {
|
||||
memoryModels.add(MonitorService.extractMemoryModel(result
|
||||
.getContent()));
|
||||
MonitorMemoryResponseModel memoryResponseModel = new MonitorMemoryResponseModel();
|
||||
memoryResponseModel.setCreateDatetime(result
|
||||
.getCreateDatetime());
|
||||
memoryResponseModel.setMemoryModel(MonitorService
|
||||
.extractMemoryModel(result.getContent()));
|
||||
container.getMemoryResponseModels().add(memoryResponseModel);
|
||||
} else if (Class.forName(result.getType()).equals(
|
||||
NetworkInterfaceModel.class)) {
|
||||
networkInterfaceModels.add(MonitorService
|
||||
MonitorNetWorkReponseModel netWorkReponseModel = new MonitorNetWorkReponseModel();
|
||||
netWorkReponseModel.setCreateDatetime(result
|
||||
.getCreateDatetime());
|
||||
netWorkReponseModel.setModel(MonitorService
|
||||
.extractNetworkInterfaceModel(result.getContent()));
|
||||
container.getNetWorkReponseModels().add(netWorkReponseModel);
|
||||
} else if (Class.forName(result.getType()).equals(
|
||||
ProcessorModel.class)) {
|
||||
processorModels.add(MonitorService.extractProcessorModel(result
|
||||
.getContent()));
|
||||
MonitorProcessorResponseModel processorResponseModel = new MonitorProcessorResponseModel();
|
||||
processorResponseModel.setCreateDatetime(result
|
||||
.getCreateDatetime());
|
||||
processorResponseModel.setProcessorModel(MonitorService
|
||||
.extractProcessorModel(result.getContent()));
|
||||
container.getProcessorResponseModels().add(
|
||||
processorResponseModel);
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
return;
|
||||
} catch (JAXBException e) {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void createProcessorImage(List<ProcessorModel> processorModels) {
|
||||
if (processorModels == null || processorModels.size() == 0) {
|
||||
private void createSUTImage(String hostName,
|
||||
MonitorResultContainerModel container, Document document) {
|
||||
createLogicalDiskImage(container.getLogicalDiskResponseModels(),
|
||||
document);
|
||||
createMemoryImage(container.getMemoryResponseModels(), document);
|
||||
createNetworkImage(container.getNetWorkReponseModels(), document);
|
||||
createProcessorImage(container.getProcessorResponseModels(), document);
|
||||
}
|
||||
|
||||
private void createProcessorImage(List<MonitorProcessorResponseModel> list,
|
||||
Document document) {
|
||||
if (list == null || list.size() == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
int processorCount = list.get(0).getProcessorModel()
|
||||
.getProcessorModelList().size();
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||
TimeSeriesCollection lineDataset = new TimeSeriesCollection();
|
||||
TimeSeries[] timeSeriesArray = new TimeSeries[processorCount];
|
||||
for (int i = 0; i < timeSeriesArray.length; i++) {
|
||||
timeSeriesArray[i] = new TimeSeries("Processor-" + i);
|
||||
}
|
||||
|
||||
for (MonitorProcessorResponseModel model : list) {
|
||||
for (int i = 0; i < processorCount; i++) {
|
||||
timeSeriesArray[i].add(new Second(model.getCreateDatetime()),
|
||||
model.getProcessorModel().getProcessorModelList()
|
||||
.get(i).getProcessorTimePercent());
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < timeSeriesArray.length; i++) {
|
||||
lineDataset.addSeries(timeSeriesArray[i]);
|
||||
}
|
||||
|
||||
JFreeChart chart = ChartFactory.createTimeSeriesChart(Processor, Time,
|
||||
Processor, lineDataset, true, true, true);
|
||||
chart.setBackgroundPaint(java.awt.Color.white);
|
||||
try {
|
||||
ChartUtilities.writeChartAsPNG(outputStream, chart, 400, 300);
|
||||
Paragraph paragraph = new Paragraph(Processor);
|
||||
paragraph.setAlignment(Element.ALIGN_CENTER);
|
||||
document.add(paragraph);
|
||||
writeImageIntoPdf(outputStream.toByteArray(), document);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void createMemoryImage(List<MemoryModel> memoryModels) {
|
||||
private void createMemoryImage(List<MonitorMemoryResponseModel> list,
|
||||
Document document) {
|
||||
}
|
||||
|
||||
private void createLogicalDiskImage(List<LogicalDiskModel> logicalDiskModels) {
|
||||
private void createLogicalDiskImage(
|
||||
List<MonitorLogicalDiskResponseModel> list, Document document) {
|
||||
}
|
||||
|
||||
private void createNetworkImage(
|
||||
List<NetworkInterfaceModel> networkInterfaceModels) {
|
||||
private void createNetworkImage(List<MonitorNetWorkReponseModel> list,
|
||||
Document document) {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue