提交 efbe03c3 authored 作者: mry's avatar mry

fix(base): 完成了报告数据的生成

上级 d5b40a4e
......@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DataBeanMove {
public class DataMove {
/**
* 前置行动ID组,例如:1,2,3
......
......@@ -5,7 +5,7 @@ import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;
import org.matrix.exception.GlobalException;
import org.matrix.testNg.web.entity.DataBean;
import org.matrix.testNg.web.entity.DataBeanMove;
import org.matrix.testNg.web.entity.DataMove;
import org.matrix.testNg.web.entity.DataBeans;
import org.matrix.testNg.web.entity.ReportMessage;
import org.matrix.util.ReporterUtils;
......@@ -39,12 +39,12 @@ public class GenerateReporter {
Map context = new HashMap();
ReporterData reporterData = new ReporterData();
DataBean dataBean = reporterData.testDataBean();
DataBeanMove dataBeanMove = reporterData.testDataBeanMove();
DataMove dataMove = reporterData.testDataBeanMove();
List<DataBeans> dataBeansList = reporterData.testDataBeans();
// 这里是公共的信息.
for (DataBeans bean : dataBeansList) {
context.put("overView", dataBean);
context.put("move", dataBeanMove);
context.put("move", dataMove);
if (bean.getResult()) {
context.put("pass", dataBeansList);
} else {
......
......@@ -5,8 +5,8 @@ import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;
import org.matrix.exception.GlobalException;
import org.matrix.testNg.web.entity.DataBean;
import org.matrix.testNg.web.entity.DataBeanMove;
import org.matrix.testNg.web.entity.DataBeans;
import org.matrix.testNg.web.entity.DataMove;
import org.matrix.testNg.web.entity.ReportMessage;
import org.matrix.util.ReporterUtils;
......@@ -39,18 +39,16 @@ public class GenerateReporterJob {
Map context = new HashMap();
ReporterDataJob reporterDatajob = new ReporterDataJob();
DataBean dataBean = reporterDatajob.testDataBean();
List<DataBeanMove> dataBeanMoves = reporterDatajob.testDataBeanMove();
List<DataMove> dataMoves = reporterDatajob.testDataBeanMove();
List<DataBeans> dataBeansList = reporterDatajob.testDataBeans();
// 这里是公共的信息.
for (DataBeans bean : dataBeansList) {
context.put("overView", dataBean);
for (DataBeanMove dataBeanMove : dataBeanMoves) {
context.put("move", dataBeanMoves);
if (bean.getResult()) {
context.put("pass", bean);
} else {
context.put("fail", bean);
}
context.put("move", dataMoves);
if (bean.getResult()) {
context.put("pass", dataBeansList);
} else {
context.put("fail", dataBeansList);
}
}
//文件夹不存在的话进行创建
......@@ -70,7 +68,7 @@ public class GenerateReporterJob {
} catch (Exception e) {
throw new GlobalException(e.getMessage());
} finally {
ReporterUtils.map = new HashMap<>();
ReporterUtils.jobMap = new HashMap<>();
}
}
}
package org.matrix.testNg.web.report;
import org.matrix.testNg.web.entity.DataBean;
import org.matrix.testNg.web.entity.DataBeanMove;
import org.matrix.testNg.web.entity.DataMove;
import org.matrix.testNg.web.entity.DataBeans;
import org.matrix.testNg.web.entity.DataBeansVo;
import org.matrix.testNg.web.vo.DataBeansVo;
import org.matrix.util.ReporterUtils;
import java.util.List;
......@@ -40,15 +40,15 @@ public class ReporterData {
dataBean.setTotal(passNum + failNum);
//通过率
dataBean.setProbability(passNum / (passNum + failNum));
// TODO 时间需要处理
// TODO 时间需要处理,通过率需要处理
return dataBean;
}
/**
* 动作部分
*/
public DataBeanMove testDataBeanMove() {
return ReporterUtils.map.get("dataBeansVo").getDataBeanMove();
public DataMove testDataBeanMove() {
return ReporterUtils.map.get("dataBeansVo").getDataMove();
}
/**
......
package org.matrix.testNg.web.report;
import org.matrix.testNg.web.entity.DataBean;
import org.matrix.testNg.web.entity.DataBeanMove;
import org.matrix.testNg.web.entity.DataBeans;
import org.matrix.testNg.web.entity.DataBeansJobVo;
import org.matrix.testNg.web.entity.DataMove;
import org.matrix.testNg.web.vo.DataBeansJobVo;
import org.matrix.testNg.web.vo.DataBeansMoveVo;
import org.matrix.util.ReporterUtils;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -18,17 +20,20 @@ public class ReporterDataJob {
* @return 补全了的所有报告信息
*/
public DataBean testDataBean() {
DataBeansJobVo dataBeansJobVo = ReporterUtils.jobMap.get("dataBeansJobVo");
DataBeansJobVo dataBeansJobVo = ReporterUtils.jobMap.get("job");
int passNum = 0;
int failNum = 0;
// 测试结果汇总数据
DataBean dataBean = dataBeansJobVo.getDataBean();
List<DataBeans> dataBeanLists = dataBeansJobVo.getDataBeansList();
for (DataBeans dataBeanList : dataBeanLists) {
if (dataBeanList.getResult()) {
passNum += 1;
} else {
failNum += 1;
List<DataBeansMoveVo> dataBeansMoveVos = dataBeansJobVo.getDataBeansMove();
for (DataBeansMoveVo dataBeansMoveVo : dataBeansMoveVos) {
List<DataBeans> dataBeansList = dataBeansMoveVo.getDataBeansList();
for (DataBeans dataBeans : dataBeansList) {
if (dataBeans.getResult()) {
passNum += 1;
} else {
failNum += 1;
}
}
}
//成功
......@@ -39,15 +44,21 @@ public class ReporterDataJob {
dataBean.setTotal(passNum + failNum);
//通过率
dataBean.setProbability(passNum / (passNum + failNum));
// TODO 时间需要处理
// TODO 时间需要处理,通过率需要处理
return dataBean;
}
/**
* 动作部分
*/
public List<DataBeanMove> testDataBeanMove() {
return ReporterUtils.jobMap.get("dataBeansJobVo").getDataBeanMoveList();
public List<DataMove> testDataBeanMove() {
List<DataMove> dataMoveList = new ArrayList<>();
List<DataBeansMoveVo> dataBeansMoveVos = ReporterUtils.jobMap.get("job").getDataBeansMove();
for (DataBeansMoveVo dataBeansMoveVo : dataBeansMoveVos) {
DataMove dataMove = dataBeansMoveVo.getDataMove();
dataMoveList.add(dataMove);
}
return dataMoveList;
}
/**
......@@ -56,6 +67,11 @@ public class ReporterDataJob {
* @return 报告中细节部分的信息
*/
public List<DataBeans> testDataBeans() {
return ReporterUtils.jobMap.get("dataBeansJobVo").getDataBeansList();
List<DataBeans> dataBeansList = null;
List<DataBeansMoveVo> dataBeansMoveVos = ReporterUtils.jobMap.get("job").getDataBeansMove();
for (DataBeansMoveVo dataBeansMoveVo : dataBeansMoveVos) {
dataBeansList = dataBeansMoveVo.getDataBeansList();
}
return dataBeansList;
}
}
package org.matrix.testNg.web.report;
import org.matrix.testNg.web.TestNg;
import org.matrix.testNg.web.entity.DataBeansJobVo;
import org.matrix.testNg.web.entity.DataBeansVo;
import org.matrix.testNg.web.vo.DataBeansJobVo;
import org.matrix.testNg.web.vo.DataBeansVo;
import org.matrix.testNg.web.entity.ReportMessage;
import org.matrix.util.ReporterUtils;
import org.springframework.stereotype.Component;
......@@ -30,7 +30,7 @@ public class TestNgImpl implements TestNg {
* 多条用例执行时,报告生成的位置
*/
public ReportMessage getReporterUrls(DataBeansJobVo dataBeansJobVo) {
ReporterUtils.jobMap.put("dataBeansJobVo", dataBeansJobVo);
ReporterUtils.jobMap.put("job", dataBeansJobVo);
GenerateReporterJob generateReporterJob = new GenerateReporterJob();
ReportMessage reportMessage = generateReporterJob.generateReport();
return reportMessage;
......
package org.matrix.testNg.web.entity;
package org.matrix.testNg.web.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.matrix.testNg.web.entity.DataBean;
import java.util.List;
......@@ -14,9 +15,13 @@ import java.util.List;
@NoArgsConstructor
public class DataBeansJobVo {
/**
* 报告公共部分
*/
private DataBean dataBean;
private List<DataBeanMove> dataBeanMoveList;
private List<DataBeans> dataBeansList;
/**
* 动作对应多个细节部分
*/
private List<DataBeansMoveVo> dataBeansMove;
}
package org.matrix.testNg.web.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.matrix.testNg.web.entity.DataBeans;
import org.matrix.testNg.web.entity.DataMove;
import java.util.List;
/**
* @author MRY
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DataBeansMoveVo {
/**
* 动作部分
*/
private DataMove dataMove;
/**
* 细节部分
*/
private List<DataBeans> dataBeansList;
}
package org.matrix.testNg.web.entity;
package org.matrix.testNg.web.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.matrix.testNg.web.entity.DataBean;
import org.matrix.testNg.web.entity.DataBeans;
import org.matrix.testNg.web.entity.DataMove;
import java.util.List;
......@@ -24,7 +27,7 @@ public class DataBeansVo {
/**
* 动作部分
*/
private DataBeanMove dataBeanMove;
private DataMove dataMove;
/**
* 细节部分
......
package org.matrix.util;
import org.matrix.actuators.usecase.TestDataExecuteResult;
import org.matrix.testNg.web.entity.DataBeansJobVo;
import org.matrix.testNg.web.entity.DataBeansVo;
import org.matrix.actuators.usecase.TestCaseExecuteResult;
import org.matrix.testNg.web.vo.DataBeansJobVo;
import org.matrix.testNg.web.vo.DataBeansVo;
import java.util.HashMap;
import java.util.List;
......@@ -13,9 +13,9 @@ import java.util.Map;
*/
public class ReporterUtils {
public static Map<Long, Map<Long, List<TestDataExecuteResult>>> userResultMap = new HashMap<>();
public static Map<Long, Map<Long, List<TestCaseExecuteResult>>> userResultMap = new HashMap<>();
public static Map<Long, List<TestDataExecuteResult>> resultMap = new HashMap<>();
public static Map<Long, List<TestCaseExecuteResult>> resultMap = new HashMap<>();
public static Map<String, DataBeansVo> map = new HashMap<>();
......
......@@ -86,25 +86,25 @@
<th>用例通过率</th>
</tr>
<tr>
<td>${overView.total}</td><#--用例总数-->
<td>${overView.passNum}</td><#--执行通过-->
<td>${overView.failNum}</td><#--执行失败-->
<td>${overView.allTime}</td><#--执行时间(s)-->
<td>${overView.probability}</td><#--用例通过率-->
<td>${overView.total!}</td><#--用例总数-->
<td>${overView.passNum!}</td><#--执行通过-->
<td>${overView.failNum!}</td><#--执行失败-->
<td>${overView.allTime!}</td><#--执行时间(s)-->
<td>${overView.probability!}</td><#--用例通过率-->
</tr>
</table>
<br/><br/>
<h2>Move</h2>
<table id="moveAction" class="tabNoBorder">
<table id="move" class="tabNoBorder">
<tr class="columnHeadings">
<th>前置动作</th>
<th>中置动作</th>
<th>后置动作</th>
</tr>
<tr>
<td>${move.moveBefore}</td><#--用例总数-->
<td>${move.moveAfterCase}</td><#--未执行用例数-->
<td>${move.moveAfterTest}</td><#--执行通过-->
<td>${move.moveBefore!无}</td><#--用例总数-->
<td>${move.moveAfterCase!无}</td><#--未执行用例数-->
<td>${move.moveAfterTest!无}</td><#--执行通过-->
</tr>
</table>
<br/><br/>
......@@ -121,35 +121,38 @@
<th>结果信息</th>
</tr>
<#assign caseNo = 0>
<#list fail as failCase>
<tr>
<#assign caseNo=caseNo+1>
<td>${caseNo}</td><#--编号-->
<td>${failCase.testCaseName!}</td><#--用例名称-->
<td>${failCase.type!}</td><#--用例类型-->
<td>${failCase.detail!}</td><#--详细参数-->
<td>${failCase.description!}</td><#--用例描述-->
<td>${failCase.result?c}</td>
<td>${failCase.duration!}</td><#--<th>执行时间(s)</th>-->
<td>${failCase.resultMessage!}</td>
</tr>
</#list>
<#list pass as passCase>
<tr>
<#assign caseNo=caseNo+1>
<td>${caseNo}</td><#--编号-->
<td>${passCase.testCaseName!}</td><#--用例名称-->
<td>${passCase.type!}</td><#--用例类型-->
<td>${passCase.detail!}</td><#--详细参数-->
<td>${passCase.moveBefore!}</td><#--前置动作-->
<td>${passCase.moveAfterCase!}</td><#--中间动作-->
<td>${passCase.moveAfterTest!}</td><#--后置动作-->
<td>${passCase.description!}</td><#--用例描述-->
<td>${passCase.result?c}</td>
<td>${passCase.duration!}</td><#--执行时间(s)-->
<td>${passCase.resultMessage!}</td><#--结果信息-->
</tr>
</#list>
<#if fail ??>
<#list fail as failCase>
<tr>
<#assign caseNo=caseNo+1>
<td>${caseNo}</td><#--编号-->
<td>${failCase.testCaseName!'无'}</td><#--用例名称-->
<td>${failCase.type!'无'}</td><#--用例类型-->
<td>${failCase.detail!'无'}</td><#--详细参数-->
<td>${failCase.description!'无'}</td><#--用例描述-->
<td>${failCase.result?c}</td>
<td>${failCase.duration!'无'}</td><#--<th>执行时间(s)</th>-->
<td>${failCase.resultMessage!'无'}</td>
</tr>
</#list>
<#else>
</#if>
<#if pass ??>
<#list pass as passCase>
<tr>
<#assign caseNo=caseNo+1>
<td>${caseNo}</td><#--编号-->
<td>${passCase.testCaseName!"无"}</td><#--用例名称-->
<td>${passCase.type!'无'}</td><#--用例类型-->
<td>${passCase.detail!'无'}</td><#--详细参数-->
<td>${passCase.description!'无'}</td><#--用例描述-->
<td>${passCase.result?c}</td>
<td>${passCase.duration!'无'}</td><#--执行时间(s)-->
<td>${passCase.resultMessage!'无'}</td><#--结果信息-->
</tr>
</#list>
<#else>
</#if>
</table>
</body>
</html>
\ No newline at end of file
......@@ -80,39 +80,36 @@
<table id="summary" class="tabNoBorder">
<tr class="columnHeadings">
<th>用例总数</th>
<th>未执行用例数</th>
<th>执行通过</th>
<th>执行失败</th>
<th>跳过用例数</th>
<th>执行时间(s)</th>
<th>用例通过率</th>
</tr>
<tr>
<td>${overView.allTestsSize}</td><#--用例总数-->
<td>${overView.excludeTestsSize}</td><#--未执行用例数-->
<td>${overView.passedTestsSize}</td><#--执行通过-->
<td>${overView.failedTestsSize}</td><#--执行失败-->
<td>${overView.skippedTestsSize}</td><#--跳过用例数-->
<td>${overView.testsTime}</td><#--执行时间(s)-->
<td>${overView.passPercent}</td><#--用例通过率-->
<td>${overView.total!}</td><#--用例总数-->
<td>${overView.passNum!}</td><#--执行通过-->
<td>${overView.failNum!}</td><#--执行失败-->
<td>${overView.allTime!}</td><#--执行时间(s)-->
<td>${overView.probability!}</td><#--用例通过率-->
</tr>
</table>
<br/><br/>
<h2>Detail</h2>
<table class="tabNoBorder">
<tr class="columnHeadings">
<th>前置动作</th>
<th>中置动作</th>
<th>后置动作</th>
</tr>
<#list move as moveCase>
<tr>
<td>${moveCase.moveBefore}</td><#--用例总数-->
<td>${moveCase.moveAfterCase}</td><#--未执行用例数-->
<td>${moveCase.moveAfterTest}</td><#--执行通过-->
</tr>
</#list>
<table class="aaa">
<table id="Move" class="tabNoBorder">
<h2>Move</h2>
<table id="move" class="tabNoBorder">
<#list move as moveCase>
<tr class="columnHeadings">
<th>前置动作</th>
<th>中置动作</th>
<th>后置动作</th>
</tr>
<tr>
<td>${moveCase.moveBefore!}</td><#--用例总数-->
<td>${moveCase.moveAfterCase!}</td><#--未执行用例数-->
<td>${moveCase.moveAfterTest!}</td><#--执行通过-->
</tr>
</table>
<table id="Detail" class="tabNoBorder">
<tr class="columnHeadings">
<th>编号</th>
<th>用例名称</th>
......@@ -124,31 +121,38 @@
<th>结果信息</th>
</tr>
<#assign caseNo = 0>
<#list fail as failCase>
<tr>
<#assign caseNo=caseNo+1>
<td>${caseNo}</td><#--编号-->
<td>${failCase.testCaseName!}</td><#--用例名称-->
<td>${failCase.type!}</td><#--用例类型-->
<td>${failCase.detail!}</td><#--详细参数-->
<td>${failCase.description!}</td><#--用例描述-->
<td>${failCase.result}</td>
<td>${failCase.duration!}</td><#--<th>执行时间(s)</th>-->
<td>${failCase.resultMessage!}</td>
</tr>
</#list>
<#list pass as passCase>
<tr>
<#assign caseNo=caseNo+1>
<td>${caseNo}</td><#--编号-->
<td>${passCase.testCaseName!}</td><#--用例名称-->
<td>${passCase.type!}</td><#--用例类型-->
<td>${passCase.detail!}</td><#--详细参数-->
<td>${passCase.description}</td><#--用例描述-->
<td>${passCase.result}</td>
<td>${passCase.duration!}</td><#--执行时间(s)-->
<td>${passCase.resultMessage!}</td><#--结果信息-->
</tr>
<#if fail ??>
<#list fail as failCase>
<tr>
<#assign caseNo=caseNo+1>
<td>${caseNo}</td><#--编号-->
<td>${failCase.testCaseName!}</td><#--用例名称-->
<td>${failCase.type!}</td><#--用例类型-->
<td>${failCase.detail!}</td><#--详细参数-->
<td>${failCase.description!}</td><#--用例描述-->
<td>${failCase.result?c}</td>
<td>${failCase.duration!}</td><#--<th>执行时间(s)</th>-->
<td>${failCase.resultMessage!}</td>
</tr>
</#list>
<#else >
</#if>
<#if pass??>
<#list pass as passCase>
<tr>
<#assign caseNo=caseNo+1>
<td>${caseNo}</td><#--编号-->
<td>${passCase.testCaseName!}</td><#--用例名称-->
<td>${passCase.type!}</td><#--用例类型-->
<td>${passCase.detail!}</td><#--详细参数-->
<td>${passCase.description!}</td><#--用例描述-->
<td>${passCase.result?c}</td>
<td>${passCase.duration!}</td><#--执行时间(s)-->
<td>${passCase.resultMessage!}</td><#--结果信息-->
</tr>
</#list>
<#else >
</#if>
</#list>
</table>
</table>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论