Commit 0c277885 authored by xiao-hesheng's avatar xiao-hesheng
Browse files

Signed-off-by: xiao-hesheng <xhs89@sina.com>

parent 26c6f206
Pipeline #3481 failed with stages
in 25 seconds
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
<title>失败 small</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="单机报告-copy" transform="translate(-462.000000, -966.000000)">
<g id="Group-4" transform="translate(462.000000, 915.000000)">
<g id="Group-10">
<g id="Group-9" transform="translate(0.000000, 11.000000)">
<g id="失败-small" transform="translate(0.000000, 40.000000)">
<circle id="Oval-2-Copy" fill="#B43333" cx="9" cy="9" r="9"></circle>
<path d="M13.0046512,5 L5,13.0046512" id="Shape" stroke="#F4F4F4" stroke-width="2"></path>
<path d="M13.0046512,13.0046512 L5,5" id="Shape" stroke="#F4F4F4" stroke-width="2"></path>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
<title>成功 small</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="单机报告-copy" transform="translate(-462.000000, -926.000000)">
<g id="Group-4" transform="translate(462.000000, 915.000000)">
<g id="Group-10">
<g id="Group-9" transform="translate(0.000000, 11.000000)">
<g id="成功-small">
<circle id="Oval-2" fill="#417505" cx="9" cy="9" r="9"></circle>
<polyline id="Shape" stroke="#F4F4F4" stroke-width="2" points="14.9202513 4.5 6.90768487 13.5 3.07974867 9.75471242"></polyline>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="42px" height="42px" viewBox="0 0 42 42" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
<title>成功</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="成功">
<rect id="Rectangle-4" x="0" y="0" width="42" height="42"></rect>
<g id="Group" transform="translate(3.000000, 2.000000)" stroke-width="3" stroke="#B8E986">
<polyline id="Shape" points="36.18 5.36 17.76 26.05 8.96 17.44"></polyline>
<path d="M36.38,16.25 C37.3070012,23.6749088 33.5438907,30.8989805 26.9281535,34.3947813 C20.3124163,37.8905821 12.2239357,36.9289722 6.61222664,31.9794951 C1.00051764,27.030018 -0.963952556,19.1250152 1.678045,12.1244116 C4.32004255,5.12380796 11.0174509,0.487760677 18.5,0.48 C22.2207062,0.472701888 25.851632,1.6224368 28.89,3.77" id="Shape"></path>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1564910404604" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2319" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><style type="text/css"></style></defs><path d="M515 68.5c-243.5 0-441.6 198.1-441.6 441.6S271.5 951.7 515 951.7s441.6-198.1 441.6-441.6S758.6 68.5 515 68.5z m0 809.6c-202.9 0-368-165.1-368-368s165.1-368 368-368 368 165.1 368 368-165 368-368 368z m171.1-259.8L533.4 530V289.3c0-20.3-16.5-36.8-36.8-36.8-20.3 0-36.8 16.5-36.8 36.8v257.6c0 13.7 17 25.1 28 31.4 3.1 4.6 11.4 8.8 16.6 11.7l151.8 92c17.6 10.2 36.7 4.1 46.8-13.5 10.2-17.5 0.7-40-16.9-50.2z" fill="#ffffff" p-id="2320"></path></svg>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.

// 基于准备好的dom,初始化echarts实例
//var myChart = echarts.init(document.getElementById('pfm_chart'), 'shine');
//var colors = ['#5793f3', '#d14a61', '#675bba'];
// 指定图表的配置项和数据
option = {
//color: colors,
title: {
text: '性能数据监控'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
// tooltip 提示文字在这里补充
},
grid: {
right: '20%'
},
legend: {
data:['cpu使用率','pss内存占用','net网络流量']
},
toolbox: {
feature: {
saveAsImage: {}
}
},
dataZoom: [
{
show: true,
realtime: true,
start: 0,
end: 100
},
{
type: 'inside',
realtime: true,
start: 0,
end: 100
}],
xAxis: {
type: 'category',
boundaryGap: false,
data: []
},
yAxis: [{
type: 'value',
name: 'cpu使用率',
position: 'left',
/*
axisLine: {
lineStyle: {
color: colors[0]
}
},
*/
axisLabel: {
formatter: '{value} %'
}
},
{
type: 'value',
name: 'pss内存占用',
position: 'right',
offset: 80,
/*
axisLine: {
lineStyle: {
color: colors[1]
}
},
*/
axisLabel: {
formatter: '{value} MB'
}
},
{
type: 'value',
name: 'net网络流量',
position: 'right',
/*
axisLine: {
lineStyle: {
color: colors[2]
}
},
*/
axisLabel: {
formatter: '{value} KB/S'
}
}
],
series: [
{
name:'cpu使用率',
type:'line',
yAxisIndex: 0,
data:[],
tooltip: {
formatter: '{a0}: {c0}%'
}
},
{
name:'pss内存占用',
type:'line',
yAxisIndex: 1,
data:[]
},
{
name:'net网络流量',
type:'line',
yAxisIndex: 2,
data:[]
}
]
};
function load_data() {
if (json_data === null) {
console.log("test");
} else {
$.each(json_data, function(i, n) {
if (n.serialno === "") {
var myChart = echarts.init(document.getElementById('pfm'), 'shine');
option.title.text = '设备性能数据监控';
} else {
var myChart = echarts.init(document.getElementById('pfm_' + n.serialno), 'shine');
option.title.text = '设备' + n.serialno + '性能数据监控';
}
option.xAxis.data = n.times;
option.series[0].data = n.cpu;
option.series[1].data = n.pss;
option.series[2].data = n.net_flow;
myChart.setOption(option);
})
}
}
load_data();
\ No newline at end of file
(function (root, factory) {if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['exports', 'echarts'], factory);
} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
// CommonJS
factory(exports, require('echarts'));
} else {
// Browser globals
factory({}, root.echarts);
}
}(this, function (exports, echarts) {
var log = function (msg) {
if (typeof console !== 'undefined') {
console && console.error && console.error(msg);
}
};
if (!echarts) {
log('ECharts is not Loaded');
return;
}
var colorPalette = [
'#c12e34','#e6b600','#0098d9','#2b821d',
'#005eaa','#339ca8','#cda819','#32a487'
];
var theme = {
color: colorPalette,
title: {
textStyle: {
fontWeight: 'normal'
}
},
visualMap: {
color:['#1790cf','#a2d4e6']
},
toolbox: {
iconStyle: {
normal: {
borderColor: '#06467c'
}
}
},
tooltip: {
backgroundColor: 'rgba(0,0,0,0.6)'
},
dataZoom: {
dataBackgroundColor: '#dedede',
fillerColor: 'rgba(154,217,247,0.2)',
handleColor: '#005eaa'
},
timeline: {
lineStyle: {
color: '#005eaa'
},
controlStyle: {
normal: {
color: '#005eaa',
borderColor: '#005eaa'
}
}
},
candlestick: {
itemStyle: {
normal: {
color: '#c12e34',
color0: '#2b821d',
lineStyle: {
width: 1,
color: '#c12e34',
color0: '#2b821d'
}
}
}
},
graph: {
color: colorPalette
},
map: {
label: {
normal: {
textStyle: {
color: '#c12e34'
}
},
emphasis: {
textStyle: {
color: '#c12e34'
}
}
},
itemStyle: {
normal: {
borderColor: '#eee',
areaColor: '#ddd'
},
emphasis: {
areaColor: '#e6b600'
}
}
},
gauge: {
axisLine: {
show: true,
lineStyle: {
color: [[0.2, '#2b821d'],[0.8, '#005eaa'],[1, '#c12e34']],
width: 5
}
},
axisTick: {
splitNumber: 10,
length:8,
lineStyle: {
color: 'auto'
}
},
axisLabel: {
textStyle: {
color: 'auto'
}
},
splitLine: {
length: 12,
lineStyle: {
color: 'auto'
}
},
pointer: {
length: '90%',
width: 3,
color: 'auto'
},
title: {
textStyle: {
color: '#333'
}
},
detail: {
textStyle: {
color: 'auto'
}
}
}
};
echarts.registerTheme('shine', theme);
}));
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Lang.prototype.pack.zh = {
"token": {
"Airtest Report": "Airtest 报告",
"script running report": "脚本运行报告",
"Contact Us": "联系我们",
"I am sorry, this log file is empty!": "你没有眼花,这个Log文件就是一片空白",
"Test Case": "测试用例",
"Steps: ": "步骤数:",
"Time: ": "耗时",
"Quick view": "快览",
"[Passed]": "[运行成功]",
"[Failed]": "[运行失败]",
'[Terminated]': "[任务超时]",
"Executors": "执行者",
"Author:": "作者:",
"Author: Anonymous": "作者:佚名",
"Device:": "设备:",
"Connect:": '连接:',
"Accomplished:": "已完成:",
"Rate:": '成功率:',
"Succeed:": '成功运行:',
'Failed:':'运行失败:',
"No of device:": '设备序号:',
"No of script:": "脚本序号:",
"Type:": '运行类型:',
"Assert: Test Steps Summary": "Assert 测试点汇总",
"Test step": "测试点",
"Steps:": "步骤数:",
"Expected result:": "预期结果:",
"order":"顺序",
"duration": "耗时",
"status": "状态",
"Jump to wrong step": "跳至错误步骤",
"Filter by:": "筛选:",
"All": "全部",
"Failed": "失败",
"Success": "成功",
"Assert": "断言",
"show all steps": "显示所有步骤",
"show success steps only": "只显示成功步骤",
"show failed steps only": "只显示失败步骤",
"show steps with assertion only": "只显示断言",
"No record information found.": "暂无设备录屏信息",
"Target object": "目标图片",
"Runtime screenshot": "运行时屏幕截图",
"Confidence:": "匹配度:",
"Execution finished successfully": "执行成功",
"Execution failed": "执行失败",
"Steps navigation": "步骤导航",
"Related information": "相关信息",
"Touch": "点击",
"Swipe": "滑动",
"Wait": "等待目标出现",
"Exists": "根据图片是否存在选择分支",
"Text": "输入",
"Keyevent": "按键",
"Sleep": "等待",
"Server call": "调用服务器方法",
"Assert exists": "断言目标存在",
"Assert not exists": "断言目标不存在",
"Snapshot": "截图",
"Assert equal": "断言相等",
"Assert not equal": "断言不相等",
"Assert:": "断言:",
"Title": "标题",
"Description:": "描述:",
"Time:": "时间:",
"Behavior:": "动作:",
"Start:": "时间:",
"Duration:": "耗时:",
"Status:": "结果:",
"Total": "",
"Warning: No steps": "警告:没有步骤",
"© 1997 - 2019 NetEase, Inc. All Rights Reserved.": "© 1997 - 2019 网易公司版权所有"
}
};
\ No newline at end of file
/*!
* Lazy Load - JavaScript plugin for lazy loading images
*
* Copyright (c) 2007-2017 Mika Tuupola
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/mit-license.php
*
* Project home:
* https://appelsiini.net/projects/lazyload
*
* Version: 2.0.0-beta.2
*
*/
(function (root, factory) {
if (typeof exports === "object") {
module.exports = factory(root);
} else if (typeof define === "function" && define.amd) {
define([], factory(root));
} else {
root.LazyLoad = factory(root);
}
}) (typeof global !== "undefined" ? global : this.window || this.global, function (root) {
"use strict";
const defaults = {
src: "data-src",
srcset: "data-srcset",
selector: ".lazyload"
};
/**
* Merge two or more objects. Returns a new object.
* @private
* @param {Boolean} deep If true, do a deep (or recursive) merge [optional]
* @param {Object} objects The objects to merge together
* @returns {Object} Merged values of defaults and options
*/
const extend = function () {
let extended = {};
let deep = false;
let i = 0;
let length = arguments.length;
/* Check if a deep merge */
if (Object.prototype.toString.call(arguments[0]) === "[object Boolean]") {
deep = arguments[0];
i++;
}
/* Merge the object into the extended object */
let merge = function (obj) {
for (let prop in obj) {
if (Object.prototype.hasOwnProperty.call(obj, prop)) {
/* If deep merge and property is an object, merge properties */
if (deep && Object.prototype.toString.call(obj[prop]) === "[object Object]") {
extended[prop] = extend(true, extended[prop], obj[prop]);
} else {
extended[prop] = obj[prop];
}
}
}
};
/* Loop through each object and conduct a merge */
for (; i < length; i++) {
let obj = arguments[i];
merge(obj);
}
return extended;
};
function LazyLoad(images, options) {
this.settings = extend(defaults, options || {});
this.images = images || document.querySelectorAll(this.settings.selector);
this.observer = null;
this.init();
}
LazyLoad.prototype = {
init: function() {
/* Without observers load everything and bail out early. */
if (!root.IntersectionObserver) {
this.loadImages();
return;
}
let self = this;
let observerConfig = {
root: null,
rootMargin: "0px",
threshold: [0]
};
this.observer = new IntersectionObserver(function(entries) {
entries.forEach(function (entry) {
if (entry.intersectionRatio > 0) {
self.observer.unobserve(entry.target);
let src = entry.target.getAttribute(self.settings.src);
let srcset = entry.target.getAttribute(self.settings.srcset);
if ("img" === entry.target.tagName.toLowerCase()) {
if (src) {
entry.target.src = src;
}
if (srcset) {
entry.target.srcset = srcset;
}
} else {
entry.target.style.backgroundImage = "url(" + src + ")";
}
}
});
}, observerConfig);
this.images.forEach(function (image) {
self.observer.observe(image);
});
},
loadAndDestroy: function () {
if (!this.settings) { return; }
this.loadImages();
this.destroy();
},
loadImages: function () {
if (!this.settings) { return; }
let self = this;
this.images.forEach(function (image) {
let src = image.getAttribute(self.settings.src);
let srcset = image.getAttribute(self.settings.srcset);
if ("img" === image.tagName.toLowerCase()) {
if (src) {
image.src = src;
}
if (srcset) {
image.srcset = srcset;
}
} else {
image.style.backgroundImage = "url(" + src + ")";
}
});
},
destroy: function () {
if (!this.settings) { return; }
this.observer.disconnect();
this.settings = null;
}
};
root.lazyload = function(images, options) {
return new LazyLoad(images, options);
};
if (root.jQuery) {
const $ = root.jQuery;
$.fn.lazyload = function (options) {
options = options || {};
options.attribute = options.attribute || "data-src";
new LazyLoad($.makeArray(this), options);
return this;
};
}
return LazyLoad;
});
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE html>
<html>
<head>
<title>测试结果汇总</title>
<style>
table,table tr th,table tr td {
border:1px solid #ccc;
border-collapse: collapse;
color: #669;
padding: 6px 8px;
font-size: 14px;
}
table caption {
font-size: 14px;
color: #039;
text-align: left;
margin-top: 10px;
margin-bottom: -10px;
margin-left: -10px;
}
.fail {
color: red;
width: 7em;
text-align: center;
}
.success {
color: green;
width: 7em;
text-align: center;
}
.details-col-elapsed {
width: 7em;
text-align: center;
}
.details-col-msg {
width: 7em;
text-align: center;
background-color:#ccc;
}
</style>
</head>
<body>
<div>
<!--<div><h2>Test Statistics</h2></div>-->
<table width="1000">
<caption><ul><li>测试概要</li></ul></caption>
<tr width="800">
<th width="400" class='details-col-msg'>用例总数</th>
<th class='details-col-msg'>成功数</th>
<th class='details-col-msg'>运行用时</th>
<th class='details-col-msg'>成功率</th>
</tr>
<tr width="800">
<td class='details-col-elapsed'>1</td>
<td class='details-col-elapsed'>1</td>
<td class='details-col-elapsed'>0分48秒</td>
<td class="details-col-elapsed">100.0%</td>
</tr>
</table>
<!--<div><h2>Test detail</h2></div>-->
<table width="1000">
<caption><ul><li>测试列表</li></ul></caption>
<tr width="800">
<th width="400" class='details-col-msg'>用例名称</th>
<th class='details-col-msg'>执行结果</th>
<th class='details-col-msg'>执行时间(秒)</th>
<th class='details-col-msg'>用例作者</th>
<th class='details-col-msg'>执行设备</th>
</tr>
<tr width="800">
<td class="details-col-elapsed"><a href='../log/demo/log.html' target='_blank'>demo</a></td>
<td class="success">成功</td>
<td class="details-col-elapsed">48.868</td>
<td class="details-col-elapsed">lihong</td>
<td class="details-col-elapsed"></td>
</tr>
</table>
<div><h2></h2></div>
</div>
</body>
</html>
\ No newline at end of file
This diff is collapsed.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment