提交 1b902988 authored 作者: mry's avatar mry

fix(base): 修改了报告样式

上级 53a9de3c
......@@ -99,7 +99,7 @@
${failCase.description!}
</div>
</td>
<td style="color: red;width: 84px">
<td style="color: #a90000;width: 84px">
<div style="width: 84px">
${failCase.result?c}
</div>
......@@ -202,9 +202,6 @@
<script src="./res/js/bootstrap.js"></script>
<script src="./res/js/echarts.min.js"></script>
<script>
function handleData(data) {
return data
}
$(".clickClass").each((i, v) => {
v.onclick = function () {
......@@ -221,6 +218,12 @@
let hr = document.createElement('hr')
oDiv.appendChild(hr)
for (let j in item) {
let div1 = document.createElement('div')
let lab1 = document.createElement('label')
let lab2 = document.createElement('label')
div1.className = 'form-group'
lab1.className = 'col-sm-4 control-label w20'
lab2.className = 'col-sm-6 control-label txtl'
let content = null
if (j == 'isSuccess') {
content = '是否成功:'
......@@ -247,12 +250,12 @@
} else {
message = item[j]
}
let div1 = document.createElement('div')
let lab1 = document.createElement('label')
let lab2 = document.createElement('label')
div1.className = 'form-group'
lab1.className = 'col-sm-4 control-label w20'
lab2.className = 'col-sm-6 control-label txtl'
if (item[j] === true){
lab2.style = 'color: green'
}
if (item[j] === false){
lab2.style = 'color: #a90000'
}
lab1.innerText = content
lab2.innerText = message
div1.appendChild(lab1)
......
......@@ -26,7 +26,6 @@ import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
* @author mry
......@@ -194,16 +193,6 @@ public class SwaggerController {
return list;
}
// private List<InterfaceInformation> listSearch(List<InterfaceInformation> originalList){
// // nameIndex nameMap -> key name -> value List result1
// // methodIndex methodMap result2
// // tagIndex indexMap
// Map<String, List<InterfaceInformation>> nameMap = originalList.stream().collect(Collectors.groupingBy(InterfaceInformation::getSummary));
// Map<String, List<InterfaceInformation>> urlMap = originalList.stream().collect(Collectors.groupingBy(InterfaceInformation::getMethodUrl));
// Map<String, List<InterfaceInformation>> tagsMap = originalList.stream().collect(Collectors.groupingBy(InterfaceInformation::getTags));
//
// }
/**
* 查询快速添加的接口
* name -> summary
......@@ -243,19 +232,19 @@ public class SwaggerController {
List<InterfaceInformation> swaggerTagSearch;
if ("".equals(url) && "".equals(tag) && "".equals(name)) {
swaggerSearch = list;
} else if (!"".equals(url) && "".equals(tag) && "".equals(name)) {
} else if ("".equals(tag) && "".equals(name)) {
swaggerSearch = urlSearch(url, list);
} else if ("".equals(url) && !"".equals(tag) && "".equals(name)) {
} else if ("".equals(name) && "".equals(url)) {
swaggerSearch = tagSearch(tag, list);
} else if ("".equals(url) && "".equals(tag) && !"".equals(name)) {
} else if ("".equals(url) && "".equals(tag)) {
swaggerSearch = nameSearch(name, list);
} else if (!"".equals(url) && !"".equals(tag) && "".equals(name)) {
} else if ("".equals(name)) {
swaggerUrlSearch = urlSearch(url, list);
swaggerSearch = tagSearch(tag, swaggerUrlSearch);
} else if (!"".equals(url) && "".equals(tag) && !"".equals(name)) {
} else if ("".equals(tag)) {
swaggerUrlSearch = urlSearch(url, list);
swaggerSearch = nameSearch(name, swaggerUrlSearch);
} else if ("".equals(url) && !"".equals(tag) && !"".equals(name)) {
} else if ("".equals(url)) {
swaggerTagSearch = tagSearch(tag, list);
swaggerSearch = nameSearch(name, swaggerTagSearch);
} else {
......
......@@ -21,40 +21,41 @@
<form class="form">
<div class="form-group flex">
<label for="total">总数:</label>
<input type="text" class="form-control" id="total" readonly="readonly" value="total"/>
<input class="form-control" id="total" readonly="readonly" value="1"/>
</div>
<div class="form-group flex">
<label for="allTime">总耗时:</label>
<input type="text" class="form-control" id="allTime" readonly="readonly" value="allTime"/>
<input class="form-control" id="allTime" readonly="readonly" value="0天:0 小时:0 分钟:1404 毫秒:"/>
</div>
<div class="form-group flex">
<label for="passNum">通过:</label>
<input type="text" class="form-control" id="passNum" readonly="readonly" value="passNum"/>
<label for="passNum">通过:</label>
<input class="form-control" id="passNum" readonly="readonly" value="0"/>
</div>
<div class="form-group flex">
<label for="failNum">失败:</label>
<input type="text" class="form-control" id="failNum" readonly="readonly" value="failNum"/>
<label for="failNum">失败:</label>
<input class="form-control" id="failNum" readonly="readonly" value="1"/>
</div>
<div class="form-group flex">
<label for="probability">通过率:</label>
<input type="text" class="form-control" id="probability" readonly="readonly" value="probability"/>
<input class="form-control" id="probability" readonly="readonly"
value="0%"/>
</div>
</form>
</div>
<div style="display: flex;">
<div id="pieChart" style="width:50%;height: 300px;"></div>
<div id="histogram" style="width:50%;height: 300px;"></div>
<div id="pieChart" style="width:50%;height: 350px;"></div>
<div id="histogram" style="width:50%;height: 350px;"></div>
</div>
<div class="table">
<div class="table" style="overflow: auto">
<table class="table table-striped">
<thead>
<tr>
<th>编号</th>
<th>用例名称</th>
<th>用例类型</th>
<th>详细参数</th>
<th>执行结果</th>
<th>用例描述</th>
<th>执行结果</th>
<th>执行时间</th>
......@@ -63,19 +64,70 @@
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>名称</td>
<td>类型</td>
<td>参数</td>
<td>描述</td>
<td>true/false</td>
<td>时间</td>
<td class="clickClass"
data-message='CheckPointResult(checkPointResultDetails=[CheckPointResultDetail(isSuccess=true, type=EXCEPTION_CHECK, matchExpression=string, parseExpression=string, message=string)])'>
<th style="width: 60px" scope="row">
<div style="width: 60px">
1
</div>
</th>
<td style="width: 184px">
<div style="width: 184px;">获取当前登录用户</div>
</td>
<td style="width: 108px">
<div style="width: 108px">
HTTP
</div>
</td>
<td style="width: 500px">
<div style="width: 500px;cursor: pointer;display: flex;justify-content: flex-start;align-items: flex-start"
class="openJson">
<img style="width: 16px; margin-top: 4px;margin-right: 8px;transition:.5s all ease;user-select: none"
src="./img/left.png"/>
<span style="overflow: hidden; white-space: nowrap; text-overflow: ellipsis;font-size: 16px">{
{
"password" : "cae0bf219196f11c9eaff96ebb72b01a",
"projects" : [ {
"name" : "禅道和gitlab和jenkins联动测试",
"id" : 17
}, {
"name" : "智能会议室管理系统",
"id" : 20
}, {
"name" : "工作流引擎",
"id" : 27
} ],
"name" : "黄夏豪",
"id" : 22,
"account" : "hxh"
}
</span>
</div>
</td>
<td>
<div style="width: 160px">
用于测试订阅服务
</div>
</td>
<td style="color: #a90000;width: 84px">
<div style="width: 84px">
false
</div>
</td>
<td style="width: 84px">
<div style="width: 84px">
422ms
</div>
</td>
<td style="width: 84px"
class="clickClass"
data-message='{"checkPointResultDetails":[{"isSuccess":true,"type":"CONTAIN_CHECK","matchExpression":"登录成功","parseExpression":"登录成功","message":"包含检查点,检查未通过,不包含目标值"},{"isSuccess":false,"type":"NO_CONTAIN_CHECK","matchExpression":"测试","parseExpression":"测试","message":"不包含检查点,检查未通过"},{"isSuccess":false,"type":"JSONPATH_CHECK","matchExpression":"if ({$.password}.length >20 && equal({$.name},\"苗润雨\")){ true }","parseExpression":"if (\"cae0bf219196f11c9eaff96ebb72b01a\".length >20 && equal(\"黄夏豪\",\"苗润雨\")){ true }","message":"JsonPath检查点,检查未通过,JsonPath的返回值不是一个布尔类型"}],"failNum":3,"successNum":0}'>
<div style="width: 84px">
查看结果
</div>
</td>
</tr>
</tbody>
<tbody>
</tbody>
</table>
</div>
</div>
......@@ -89,7 +141,6 @@
</div>
<div class="modal-body">
<form class="form-horizontal" id="grp">
</form>
</div>
<div class="modal-footer">
......@@ -102,40 +153,88 @@
<script src="./js/bootstrap.js"></script>
<script src="./js/echarts.min.js"></script>
<script>
function handleData(data) {
let a = data
let b = a.split('=').splice(1, a.split('=').length - 2)
let c = b.join('=').split('(')[1].split(')')[0]
let d = c.split(',')
let e = []
d.map(v => {
e.push({key: v.split('=')[0] + ":", value: v.split('=')[1]})
})
return e
}
$(".clickClass").each((i, v) => {
v.onclick = function () {
let data = handleData(v.getAttribute('data-message'))
if (!v.getAttribute('data-message')) {
alert('该条测试数据执行失败')
return
}
let data = JSON.parse(v.getAttribute('data-message')).checkPointResultDetails
$('#myModal').modal()
if (data) {
let oDiv = document.getElementById('grp')
$("#grp").empty();
data.map(v => {
for (let item of data) {
let hr = document.createElement('hr')
oDiv.appendChild(hr)
for (let j in item) {
let div1 = document.createElement('div')
let lab1 = document.createElement('label')
let lab2 = document.createElement('label')
div1.className = 'form-group'
lab1.className = 'col-sm-4 control-label w20'
lab2.className = 'col-sm-6 control-label txtl'
lab1.innerText = v.key
lab2.innerText = v.value
let content = null
if (j == 'isSuccess') {
content = '是否成功:'
} else if (j == 'type') {
content = '类型:'
} else if (j == 'matchExpression') {
content = '匹配前表达式:'
} else if (j == 'parseExpression') {
content = '匹配后表达式:'
} else if (j == 'message') {
content = '信息:'
}
let message = null
if (item[j] == 'EXCEPTION_CHECK') {
message = '异常检查点'
} else if (item[j] == 'NULL_CHECK') {
message = '空值检查点'
} else if (item[j] == 'CONTAIN_CHECK') {
message = '包含检查点'
} else if (item[j] == 'NO_CONTAIN_CHECK') {
message = '不包含检查点'
} else if (item[j] == 'JSONPATH_CHECK') {
message = 'Jsonpath检查点'
} else {
message = item[j]
}
if (item[j] === true){
lab2.style = 'color: green'
}
if (item[j] === false){
lab2.style = 'color: #a90000'
}
lab1.innerText = content
lab2.innerText = message
div1.appendChild(lab1)
div1.appendChild(lab2)
oDiv.appendChild(div1)
}
}
}
}
})
$('.openJson').each((i, v) => {
v.onclick = function () {
console.log(v.childNodes)
if (v.childNodes[1].style.transform == 'rotate(90deg)') {
v.childNodes[1].style.transform = 'rotate(0deg)'
} else {
v.childNodes[1].style.transform = 'rotate(90deg)'
}
if (v.childNodes[3].style.whiteSpace == 'pre') {
v.childNodes[3].style.whiteSpace = 'nowrap'
v.childNodes[3].style.overflow = 'hidden'
v.childNodes[3].style.textOverflow = 'ellipsis'
} else {
v.childNodes[3].style.whiteSpace = 'pre'
}
}
})
</script>
<script>
......@@ -146,8 +245,8 @@
pieChart = {
title: {
text: '测试通过率',
subtext: '50%',
left: 'center',
subtext: '0%',
left: 'center'
},
tooltip: {
trigger: 'item'
......@@ -158,7 +257,7 @@
},
series: [
{
name: '是否成功',
name: '是否通过',
type: 'pie',
radius: ['25%', '50%'],
avoidLabelOverlap: false,
......@@ -186,7 +285,7 @@
data: [
{
value: 1, name: 'pass', itemStyle: {
value: 0, name: 'pass', itemStyle: {
color: 'green'
}
},
......@@ -215,7 +314,7 @@
series: [
{
data: [{
value: 1,
value: 0,
itemStyle: {
color: 'green'
}
......@@ -226,8 +325,8 @@
}
}],
type: 'bar',
barWidth: 50,
showBackground: true,
barWidth: 50,
backgroundStyle: {
color: 'rgba(180, 180, 180, 0.2)'
}
......@@ -244,5 +343,4 @@
</script>
</body>
</html>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论