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

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

上级 53a9de3c
...@@ -99,7 +99,7 @@ ...@@ -99,7 +99,7 @@
${failCase.description!} ${failCase.description!}
</div> </div>
</td> </td>
<td style="color: red;width: 84px"> <td style="color: #a90000;width: 84px">
<div style="width: 84px"> <div style="width: 84px">
${failCase.result?c} ${failCase.result?c}
</div> </div>
...@@ -202,9 +202,6 @@ ...@@ -202,9 +202,6 @@
<script src="./res/js/bootstrap.js"></script> <script src="./res/js/bootstrap.js"></script>
<script src="./res/js/echarts.min.js"></script> <script src="./res/js/echarts.min.js"></script>
<script> <script>
function handleData(data) {
return data
}
$(".clickClass").each((i, v) => { $(".clickClass").each((i, v) => {
v.onclick = function () { v.onclick = function () {
...@@ -221,6 +218,12 @@ ...@@ -221,6 +218,12 @@
let hr = document.createElement('hr') let hr = document.createElement('hr')
oDiv.appendChild(hr) oDiv.appendChild(hr)
for (let j in item) { 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 let content = null
if (j == 'isSuccess') { if (j == 'isSuccess') {
content = '是否成功:' content = '是否成功:'
...@@ -247,12 +250,12 @@ ...@@ -247,12 +250,12 @@
} else { } else {
message = item[j] message = item[j]
} }
let div1 = document.createElement('div') if (item[j] === true){
let lab1 = document.createElement('label') lab2.style = 'color: green'
let lab2 = document.createElement('label') }
div1.className = 'form-group' if (item[j] === false){
lab1.className = 'col-sm-4 control-label w20' lab2.style = 'color: #a90000'
lab2.className = 'col-sm-6 control-label txtl' }
lab1.innerText = content lab1.innerText = content
lab2.innerText = message lab2.innerText = message
div1.appendChild(lab1) div1.appendChild(lab1)
......
...@@ -26,7 +26,6 @@ import java.util.Map; ...@@ -26,7 +26,6 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors;
/** /**
* @author mry * @author mry
...@@ -194,16 +193,6 @@ public class SwaggerController { ...@@ -194,16 +193,6 @@ public class SwaggerController {
return list; 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 * name -> summary
...@@ -243,19 +232,19 @@ public class SwaggerController { ...@@ -243,19 +232,19 @@ public class SwaggerController {
List<InterfaceInformation> swaggerTagSearch; List<InterfaceInformation> swaggerTagSearch;
if ("".equals(url) && "".equals(tag) && "".equals(name)) { if ("".equals(url) && "".equals(tag) && "".equals(name)) {
swaggerSearch = list; swaggerSearch = list;
} else if (!"".equals(url) && "".equals(tag) && "".equals(name)) { } else if ("".equals(tag) && "".equals(name)) {
swaggerSearch = urlSearch(url, list); swaggerSearch = urlSearch(url, list);
} else if ("".equals(url) && !"".equals(tag) && "".equals(name)) { } else if ("".equals(name) && "".equals(url)) {
swaggerSearch = tagSearch(tag, list); swaggerSearch = tagSearch(tag, list);
} else if ("".equals(url) && "".equals(tag) && !"".equals(name)) { } else if ("".equals(url) && "".equals(tag)) {
swaggerSearch = nameSearch(name, list); swaggerSearch = nameSearch(name, list);
} else if (!"".equals(url) && !"".equals(tag) && "".equals(name)) { } else if ("".equals(name)) {
swaggerUrlSearch = urlSearch(url, list); swaggerUrlSearch = urlSearch(url, list);
swaggerSearch = tagSearch(tag, swaggerUrlSearch); swaggerSearch = tagSearch(tag, swaggerUrlSearch);
} else if (!"".equals(url) && "".equals(tag) && !"".equals(name)) { } else if ("".equals(tag)) {
swaggerUrlSearch = urlSearch(url, list); swaggerUrlSearch = urlSearch(url, list);
swaggerSearch = nameSearch(name, swaggerUrlSearch); swaggerSearch = nameSearch(name, swaggerUrlSearch);
} else if ("".equals(url) && !"".equals(tag) && !"".equals(name)) { } else if ("".equals(url)) {
swaggerTagSearch = tagSearch(tag, list); swaggerTagSearch = tagSearch(tag, list);
swaggerSearch = nameSearch(name, swaggerTagSearch); swaggerSearch = nameSearch(name, swaggerTagSearch);
} else { } else {
......
...@@ -21,40 +21,41 @@ ...@@ -21,40 +21,41 @@
<form class="form"> <form class="form">
<div class="form-group flex"> <div class="form-group flex">
<label for="total">总数:</label> <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>
<div class="form-group flex"> <div class="form-group flex">
<label for="allTime">总耗时:</label> <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>
<div class="form-group flex"> <div class="form-group flex">
<label for="passNum">通过:</label> <label for="passNum">通过:</label>
<input type="text" class="form-control" id="passNum" readonly="readonly" value="passNum"/> <input class="form-control" id="passNum" readonly="readonly" value="0"/>
</div> </div>
<div class="form-group flex"> <div class="form-group flex">
<label for="failNum">失败:</label> <label for="failNum">失败:</label>
<input type="text" class="form-control" id="failNum" readonly="readonly" value="failNum"/> <input class="form-control" id="failNum" readonly="readonly" value="1"/>
</div> </div>
<div class="form-group flex"> <div class="form-group flex">
<label for="probability">通过率:</label> <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> </div>
</form> </form>
</div> </div>
<div style="display: flex;"> <div style="display: flex;">
<div id="pieChart" style="width:50%;height: 300px;"></div> <div id="pieChart" style="width:50%;height: 350px;"></div>
<div id="histogram" style="width:50%;height: 300px;"></div> <div id="histogram" style="width:50%;height: 350px;"></div>
</div> </div>
<div class="table"> <div class="table" style="overflow: auto">
<table class="table table-striped"> <table class="table table-striped">
<thead> <thead>
<tr> <tr>
<th>编号</th> <th>编号</th>
<th>用例名称</th> <th>用例名称</th>
<th>用例类型</th> <th>用例类型</th>
<th>详细参数</th> <th>执行结果</th>
<th>用例描述</th> <th>用例描述</th>
<th>执行结果</th> <th>执行结果</th>
<th>执行时间</th> <th>执行时间</th>
...@@ -63,19 +64,70 @@ ...@@ -63,19 +64,70 @@
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<th scope="row">1</th> <th style="width: 60px" scope="row">
<td>名称</td> <div style="width: 60px">
<td>类型</td> 1
<td>参数</td> </div>
<td>描述</td> </th>
<td>true/false</td> <td style="width: 184px">
<td>时间</td> <div style="width: 184px;">获取当前登录用户</div>
<td class="clickClass" </td>
data-message='CheckPointResult(checkPointResultDetails=[CheckPointResultDetail(isSuccess=true, type=EXCEPTION_CHECK, matchExpression=string, parseExpression=string, message=string)])'> <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> </td>
</tr> </tr>
</tbody> </tbody>
<tbody>
</tbody>
</table> </table>
</div> </div>
</div> </div>
...@@ -89,7 +141,6 @@ ...@@ -89,7 +141,6 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<form class="form-horizontal" id="grp"> <form class="form-horizontal" id="grp">
</form> </form>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
...@@ -102,41 +153,89 @@ ...@@ -102,41 +153,89 @@
<script src="./js/bootstrap.js"></script> <script src="./js/bootstrap.js"></script>
<script src="./js/echarts.min.js"></script> <script src="./js/echarts.min.js"></script>
<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) => { $(".clickClass").each((i, v) => {
v.onclick = function () { 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() $('#myModal').modal()
if (data) { if (data) {
let oDiv = document.getElementById('grp') let oDiv = document.getElementById('grp')
$("#grp").empty(); $("#grp").empty();
data.map(v => { for (let item of data) {
let div1 = document.createElement('div') let hr = document.createElement('hr')
let lab1 = document.createElement('label') oDiv.appendChild(hr)
let lab2 = document.createElement('label') for (let j in item) {
div1.className = 'form-group' let div1 = document.createElement('div')
lab1.className = 'col-sm-4 control-label w20' let lab1 = document.createElement('label')
lab2.className = 'col-sm-6 control-label txtl' let lab2 = document.createElement('label')
lab1.innerText = v.key div1.className = 'form-group'
lab2.innerText = v.value lab1.className = 'col-sm-4 control-label w20'
div1.appendChild(lab1) lab2.className = 'col-sm-6 control-label txtl'
div1.appendChild(lab2) let content = null
oDiv.appendChild(div1) 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>
<script> <script>
let chartDom = document.getElementById('pieChart'); let chartDom = document.getElementById('pieChart');
...@@ -146,8 +245,8 @@ ...@@ -146,8 +245,8 @@
pieChart = { pieChart = {
title: { title: {
text: '测试通过率', text: '测试通过率',
subtext: '50%', subtext: '0%',
left: 'center', left: 'center'
}, },
tooltip: { tooltip: {
trigger: 'item' trigger: 'item'
...@@ -158,7 +257,7 @@ ...@@ -158,7 +257,7 @@
}, },
series: [ series: [
{ {
name: '是否成功', name: '是否通过',
type: 'pie', type: 'pie',
radius: ['25%', '50%'], radius: ['25%', '50%'],
avoidLabelOverlap: false, avoidLabelOverlap: false,
...@@ -186,7 +285,7 @@ ...@@ -186,7 +285,7 @@
data: [ data: [
{ {
value: 1, name: 'pass', itemStyle: { value: 0, name: 'pass', itemStyle: {
color: 'green' color: 'green'
} }
}, },
...@@ -215,7 +314,7 @@ ...@@ -215,7 +314,7 @@
series: [ series: [
{ {
data: [{ data: [{
value: 1, value: 0,
itemStyle: { itemStyle: {
color: 'green' color: 'green'
} }
...@@ -226,8 +325,8 @@ ...@@ -226,8 +325,8 @@
} }
}], }],
type: 'bar', type: 'bar',
barWidth: 50,
showBackground: true, showBackground: true,
barWidth: 50,
backgroundStyle: { backgroundStyle: {
color: 'rgba(180, 180, 180, 0.2)' color: 'rgba(180, 180, 180, 0.2)'
} }
...@@ -244,5 +343,4 @@ ...@@ -244,5 +343,4 @@
</script> </script>
</body> </body>
</html> </html>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论