704 lines
28 KiB
HTML
704 lines
28 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|||
|
<head>
|
|||
|
<title>自动化测试报告</title>
|
|||
|
<meta name="generator" content="HTMLTestRunner"/>
|
|||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|||
|
<meta name="viewport" content="width=device-width,initial-scale=1.0"/>
|
|||
|
<link rel="stylesheet" href="https://www.fanscloud.net/res/bootstrap/3.0.3/css/bootstrap.min.css">
|
|||
|
<script src="https://www.fanscloud.net/res/jquery/2.0.0/jquery.min.js"></script>
|
|||
|
<script src="https://www.fanscloud.net/res/bootstrap/3.0.3/js/bootstrap.min.js"></script>
|
|||
|
<script src="https://img.hcharts.cn/highcharts/highcharts.js"></script>
|
|||
|
<script src="https://img.hcharts.cn/highcharts/modules/exporting.js"></script>
|
|||
|
|
|||
|
<style type="text/css" media="screen">
|
|||
|
body { font-family: Microsoft YaHei;padding: 20px; font-size: 100%; }
|
|||
|
table { font-size: 100%; }
|
|||
|
.table tbody tr td{
|
|||
|
vertical-align: middle;
|
|||
|
}
|
|||
|
|
|||
|
/* -- header ---------------------------------------------------------------------- */
|
|||
|
.header .description, .attribute {
|
|||
|
clear: both;
|
|||
|
}
|
|||
|
|
|||
|
/* --- 失败和错误合集样式 -- Gelomen --- */
|
|||
|
.failCollection, .errorCollection {
|
|||
|
width: auto;
|
|||
|
float: left;
|
|||
|
}
|
|||
|
#failedCaseOl li {
|
|||
|
color: red
|
|||
|
}
|
|||
|
#errorsCaseOl li {
|
|||
|
color: orange
|
|||
|
}
|
|||
|
|
|||
|
/* --- 打开截图特效样式 -- Gelomen --- */
|
|||
|
.data-img{
|
|||
|
cursor:pointer
|
|||
|
}
|
|||
|
|
|||
|
.pic_looper{
|
|||
|
width:100%;
|
|||
|
height:100%;
|
|||
|
position: fixed;
|
|||
|
left: 0;
|
|||
|
top:0;
|
|||
|
opacity: 0.6;
|
|||
|
background: #000;
|
|||
|
display: none;
|
|||
|
z-index: 100;
|
|||
|
}
|
|||
|
|
|||
|
.pic_show{
|
|||
|
width:100%;
|
|||
|
position:fixed;
|
|||
|
left:0;
|
|||
|
top:0;
|
|||
|
right:0;
|
|||
|
bottom:0;
|
|||
|
margin:auto;
|
|||
|
text-align: center;
|
|||
|
display: none;
|
|||
|
z-index: 100;
|
|||
|
}
|
|||
|
|
|||
|
.pic_box{
|
|||
|
padding:10px;
|
|||
|
width:90%;
|
|||
|
height:90%;
|
|||
|
margin:40px auto;
|
|||
|
text-align: center;
|
|||
|
overflow: hidden;
|
|||
|
}
|
|||
|
|
|||
|
.pic_box img{
|
|||
|
max-width: 100%;
|
|||
|
max-height: 100%;
|
|||
|
width: auto;
|
|||
|
height: auto;
|
|||
|
-moz-box-shadow: 0px 0px 20px 0px #000;
|
|||
|
-webkit-box-shadow: 0px 0px 20px 0px #000;
|
|||
|
box-shadow: 0px 0px 20px 0px #000;
|
|||
|
}
|
|||
|
|
|||
|
/* --- 饼状图样式 */
|
|||
|
#container {
|
|||
|
max-width: 100%;
|
|||
|
width: 450px;
|
|||
|
height: 350px;
|
|||
|
float: left;
|
|||
|
}
|
|||
|
#container_extend {
|
|||
|
max-width: 100%;
|
|||
|
width: 550px;
|
|||
|
height: 400px;
|
|||
|
float: left;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/* -- report ------------------------------------------------------------------------ */
|
|||
|
#total_row { font-weight: bold; }
|
|||
|
.passedCase { color: #3FB83F; font-family: Menlo,Monaco,Consolas,"Courier New",monospace; font-size: 14px; font-weight: bold; }
|
|||
|
.failedCase { color: #D9433F; font-family: Menlo,Monaco,Consolas,"Courier New",monospace; font-size: 14px; font-weight: bold; }
|
|||
|
.errorsCase { color: #F0A02F; font-family: Menlo,Monaco,Consolas,"Courier New",monospace; font-size: 14px; font-weight: bold; }
|
|||
|
.hiddenRow { display: none; }
|
|||
|
.testcase { margin-left: 1em; word-break: break-all; white-space: pre-wrap; }
|
|||
|
.screenshot:link { text-decoration: none;color: deeppink; }
|
|||
|
.screenshot:visited { text-decoration: none;color: deeppink; }
|
|||
|
.screenshot:hover { text-decoration: none;color: darkcyan; }
|
|||
|
.screenshot:active { text-decoration: none;color: deeppink; }
|
|||
|
</style>
|
|||
|
|
|||
|
</head>
|
|||
|
<body >
|
|||
|
<script language="javascript" type="text/javascript">
|
|||
|
|
|||
|
$(function(){
|
|||
|
// 修改 失败 和 错误 用例里对应按钮的颜色ClassName为动态加载 -- Gelomen
|
|||
|
$("button").each(function () {
|
|||
|
var text = $(this).text();
|
|||
|
if(text == "失败"){
|
|||
|
$(this).addClass("btn-danger")
|
|||
|
}else if(text == "错误") {
|
|||
|
$(this).addClass("btn-warning")
|
|||
|
}else if(text == "通过") {
|
|||
|
$(this).addClass("btn-success")
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
// 给失败和错误合集加样式 -- Gelomen
|
|||
|
var p_attribute = $("p.attribute");
|
|||
|
p_attribute.eq(4).addClass("failCollection");
|
|||
|
p_attribute.eq(5).addClass("errorCollection");
|
|||
|
|
|||
|
// 打开截图,放大,点击任何位置可以关闭图片
|
|||
|
$(".screenshot").click(function(){
|
|||
|
var img = $(this).attr("img");
|
|||
|
$('.pic_show img').attr('src', img);
|
|||
|
$('.pic_looper').fadeIn(200);
|
|||
|
$('.pic_show').fadeIn(200);
|
|||
|
|
|||
|
var browserHeight = $(window).height();
|
|||
|
var pic_boxHeight = $(".pic_box").height();
|
|||
|
var top = (browserHeight - pic_boxHeight)/2;
|
|||
|
$('.pic_box').css("margin-top", top + "px")
|
|||
|
|
|||
|
});
|
|||
|
$('.pic_looper, .pic_show').click(function(){
|
|||
|
$('.pic_looper').fadeOut(200);
|
|||
|
$('.pic_show').fadeOut(200)
|
|||
|
});
|
|||
|
|
|||
|
var resize_action = function(){
|
|||
|
// 改变窗口大小时,自动改变图表边距
|
|||
|
var browserWidth = $(window).width();
|
|||
|
var margin_left = browserWidth - 360 - 450 - 550 - 40;
|
|||
|
if(margin_left <= 0){
|
|||
|
$("#container").css("width", "100%");
|
|||
|
$("#container_extend").css("width", "100%");
|
|||
|
$("#testinfo").css("width", "100%");
|
|||
|
$("#container").css("margin-left", "0px");
|
|||
|
}else {
|
|||
|
$("#container").css("width", "450px");
|
|||
|
$("#container_extend").css("width", "550px");
|
|||
|
$("#testinfo").css("width", "25%");
|
|||
|
$("#container").css("margin-left", (margin_left - 1) + "px");
|
|||
|
}
|
|||
|
}
|
|||
|
resize_action();
|
|||
|
|
|||
|
$(window).resize(function(){
|
|||
|
// 改变窗口大小时,自动改变图片与顶部的距离
|
|||
|
var browserHeight = $(window).height();
|
|||
|
var pic_boxHeight = $(".pic_box").height();
|
|||
|
var top = (browserHeight - pic_boxHeight)/2;
|
|||
|
$('.pic_box').css("margin-top", top + "px");
|
|||
|
resize_action();
|
|||
|
});
|
|||
|
// 超过浏览器高度时,回到顶部按钮出现
|
|||
|
$(window).scroll(function(){
|
|||
|
var browserHeight = $(window).height();
|
|||
|
var top = $(window).scrollTop();
|
|||
|
if(top >= browserHeight){
|
|||
|
$("#toTop").css("display", "block")
|
|||
|
}else {
|
|||
|
$("#toTop").css("display", "none")
|
|||
|
}
|
|||
|
})
|
|||
|
// 增加回到顶部过程动画
|
|||
|
$("#toTop").click(function() {
|
|||
|
$("html,body").animate({"scrollTop":0}, 500)
|
|||
|
})
|
|||
|
// 增加条形图
|
|||
|
$('#container_extend').highcharts({
|
|||
|
chart: {
|
|||
|
type: 'bar'
|
|||
|
},
|
|||
|
credits: {
|
|||
|
enabled: false
|
|||
|
},
|
|||
|
navigation: {
|
|||
|
buttonOptions: {
|
|||
|
enabled: false
|
|||
|
}
|
|||
|
},
|
|||
|
title: {
|
|||
|
text: '用例集合情况'
|
|||
|
},
|
|||
|
xAxis: {
|
|||
|
categories: ["TestDemo", "测试用例"]
|
|||
|
},
|
|||
|
yAxis: {
|
|||
|
min: 0,
|
|||
|
title: {
|
|||
|
text: '用例数量'
|
|||
|
},
|
|||
|
reversedStacks: false
|
|||
|
},
|
|||
|
legend: {
|
|||
|
reversed: false
|
|||
|
},
|
|||
|
plotOptions: {
|
|||
|
series: {
|
|||
|
stacking: 'normal'
|
|||
|
}
|
|||
|
},
|
|||
|
series: [{
|
|||
|
name: '通过',
|
|||
|
color: '#64bb64',
|
|||
|
data: [1, 0]
|
|||
|
}, {
|
|||
|
name: '失败',
|
|||
|
color: '#f16d7e',
|
|||
|
data: [1, 0]
|
|||
|
}, {
|
|||
|
name: '错误',
|
|||
|
color: '#fdc68c',
|
|||
|
data: [3, 1]
|
|||
|
}]
|
|||
|
})
|
|||
|
// 增加饼状图
|
|||
|
$('#container').highcharts({
|
|||
|
chart: {
|
|||
|
plotBackgroundColor: null,
|
|||
|
plotBorderWidth: null,
|
|||
|
plotShadow: false,
|
|||
|
spacing : [0, 0, 0, 0]
|
|||
|
},
|
|||
|
credits: {
|
|||
|
enabled: false
|
|||
|
},
|
|||
|
navigation: {
|
|||
|
buttonOptions: {
|
|||
|
enabled: false
|
|||
|
}
|
|||
|
},
|
|||
|
title: {
|
|||
|
floating: true,
|
|||
|
text: '测试结果占比'
|
|||
|
},
|
|||
|
tooltip: {
|
|||
|
pointFormat: '<text style="font-size:10px">{series.name}: {point.percentage:.1f}%</text>'
|
|||
|
},
|
|||
|
plotOptions: {
|
|||
|
pie: {
|
|||
|
allowPointSelect: true,
|
|||
|
cursor: 'pointer',
|
|||
|
colors: ['#64bb64', '#f16d7e', '#fdc68c'],
|
|||
|
dataLabels: {
|
|||
|
enabled: true,
|
|||
|
format: '<b>{point.name}</b>: {point.percentage:.1f} %',
|
|||
|
style: {
|
|||
|
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
|
|||
|
}
|
|||
|
},
|
|||
|
point: {
|
|||
|
events: {
|
|||
|
mouseOver: function(e) { // 鼠标滑过时动态更新标题
|
|||
|
chart.setTitle({
|
|||
|
text: e.target.name+ '\t'+ e.target.y + ' 个'
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
series: [{
|
|||
|
type: 'pie',
|
|||
|
innerSize: '80%',
|
|||
|
name: '比例',
|
|||
|
data: [
|
|||
|
['通过', 1], ['失败', 1], ['错误', 4]
|
|||
|
]
|
|||
|
}]
|
|||
|
}, function(c) {
|
|||
|
// 环形圆心
|
|||
|
var centerY = c.series[0].center[1],
|
|||
|
titleHeight = parseInt(c.title.styles.fontSize);
|
|||
|
c.setTitle({
|
|||
|
x:0,
|
|||
|
y:centerY + titleHeight/2
|
|||
|
});
|
|||
|
chart = c;
|
|||
|
});
|
|||
|
|
|||
|
// 查看 失败 和 错误 合集链接文字切换 -- Gelomen
|
|||
|
$(".showDetail").click(function () {
|
|||
|
if($(this).html() == "点击查看"){
|
|||
|
$(this).html("点击收起")
|
|||
|
}else {
|
|||
|
$(this).html("点击查看")
|
|||
|
}
|
|||
|
})
|
|||
|
});
|
|||
|
|
|||
|
|
|||
|
output_list = Array();
|
|||
|
|
|||
|
/*level 调整增加只显示通过用例的分类 --Findyou / 修复筛选显示bug --Gelomen
|
|||
|
0:Summary //all hiddenRow
|
|||
|
1:Failed //pt&et hiddenRow, ft none
|
|||
|
2:Passed //pt none, ft&et hiddenRow
|
|||
|
3:Errors //pt&ft hiddenRow, et none
|
|||
|
4:All //all none
|
|||
|
*/
|
|||
|
function showCase(level) {
|
|||
|
trs = document.getElementsByTagName("tr");
|
|||
|
for (var i = 0; i < trs.length; i++) {
|
|||
|
tr = trs[i];
|
|||
|
id = tr.id;
|
|||
|
if (id.substr(0,2) == 'ft') {
|
|||
|
if (level == 2 || level == 0 || level == 3) {
|
|||
|
tr.className = 'hiddenRow';
|
|||
|
}
|
|||
|
else {
|
|||
|
tr.className = '';
|
|||
|
// 切换筛选时只显示预览 -- Gelomen
|
|||
|
// 失败
|
|||
|
$("div[id^='div_ft']").attr("class", "collapse");
|
|||
|
$("div[id^='div_et']").attr("class", "collapse");
|
|||
|
$("div[id^='div_pt']").attr("class", "collapse");
|
|||
|
}
|
|||
|
}
|
|||
|
if (id.substr(0,2) == 'pt') {
|
|||
|
if (level == 1 || level == 0 || level == 3) {
|
|||
|
tr.className = 'hiddenRow';
|
|||
|
}
|
|||
|
else {
|
|||
|
tr.className = '';
|
|||
|
// 切换筛选时只显示预览 -- Gelomen
|
|||
|
// 通过
|
|||
|
$("div[id^='div_ft']").attr("class", "collapse");
|
|||
|
$("div[id^='div_et']").attr("class", "collapse");
|
|||
|
$("div[id^='div_pt']").attr("class", "collapse");
|
|||
|
}
|
|||
|
}
|
|||
|
if (id.substr(0,2) == 'et') {
|
|||
|
if (level == 1 || level == 0 || level == 2) {
|
|||
|
tr.className = 'hiddenRow';
|
|||
|
}
|
|||
|
else {
|
|||
|
tr.className = '';
|
|||
|
// 切换筛选时只显示预览 -- Gelomen
|
|||
|
// 错误
|
|||
|
$("div[id^='div_ft']").attr("class", "collapse");
|
|||
|
$("div[id^='div_et']").attr("class", "collapse");
|
|||
|
$("div[id^='div_pt']").attr("class", "collapse");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//加入详细切换文字变化
|
|||
|
detail_class=document.getElementsByClassName('detail');
|
|||
|
if (level == 4) {
|
|||
|
for (var i = 0; i < detail_class.length; i++){
|
|||
|
detail_class[i].innerHTML="收起"
|
|||
|
}
|
|||
|
}
|
|||
|
else{
|
|||
|
for (var i = 0; i < detail_class.length; i++){
|
|||
|
detail_class[i].innerHTML="详细"
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function showClassDetail(cid, count) {
|
|||
|
var id_list = Array(count);
|
|||
|
var toHide = 1;
|
|||
|
for (var i = 0; i < count; i++) {
|
|||
|
//ID修改.为_
|
|||
|
tid0 = 't' + cid.substr(1) + '_' + (i+1);
|
|||
|
tid = 'f' + tid0;
|
|||
|
tr = document.getElementById(tid);
|
|||
|
if (!tr) {
|
|||
|
tid = 'p' + tid0;
|
|||
|
tr = document.getElementById(tid);
|
|||
|
if (!tr) {
|
|||
|
tid = 'e' + tid0;
|
|||
|
tr = document.getElementById(tid);
|
|||
|
}
|
|||
|
}
|
|||
|
id_list[i] = tid;
|
|||
|
if (tr.className) {
|
|||
|
toHide = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
for (var i = 0; i < count; i++) {
|
|||
|
tid = id_list[i];
|
|||
|
//修改点击无法收起的BUG,加入【详细】切换文字变化 --Findyou
|
|||
|
if (toHide) {
|
|||
|
document.getElementById(tid).className = 'hiddenRow';
|
|||
|
document.getElementById(cid).innerText = "详细"
|
|||
|
}
|
|||
|
else {
|
|||
|
document.getElementById(tid).className = '';
|
|||
|
document.getElementById(cid).innerText = "收起"
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function html_escape(s) {
|
|||
|
s = s.replace(/&/g,'&');
|
|||
|
s = s.replace(/</g,'<');
|
|||
|
s = s.replace(/>/g,'>');
|
|||
|
return s;
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<div class='pic_looper'></div>
|
|||
|
<div class='pic_show'>
|
|||
|
<div class='pic_box'>
|
|||
|
<img src=''/>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class='header'>
|
|||
|
<div id="testinfo" style="max-width: 360px; width: auto; float: left;">
|
|||
|
<h1 style="margin: 5px 0px 10px 0px; font-family: Microsoft YaHei;">自动化测试报告</h1>
|
|||
|
|
|||
|
<p class='attribute'><strong>开始时间 : </strong> 2022-07-28 00:36:41</p>
|
|||
|
|
|||
|
<p class='attribute'><strong>合计耗时 : </strong> 00:00:02</p>
|
|||
|
|
|||
|
<p class='attribute'><strong>测试结果 : </strong> 总共 6,通过 1,失败 1,错误 4,通过率 16.67%</p>
|
|||
|
|
|||
|
<p class='attribute'><strong>失败用例 : </strong> <a class='showDetail' data-toggle='collapse' href='#failedCaseOl' style='text-decoration: none;'>点击查看</a><ol id='failedCaseOl' class='collapse' style='float: left; font-family: Menlo,Monaco,Consolas,monospace;'><li>test_case.TestDemo.test_two22</li></ol></p>
|
|||
|
|
|||
|
<p class='attribute'><strong>错误用例 : </strong> <a class='showDetail' data-toggle='collapse' href='#errorsCaseOl' style='text-decoration: none;'>点击查看</a><ol id='errorsCaseOl' class='collapse' style='float: left; font-family: Menlo,Monaco,Consolas,monospace;'><li>test_case.TestDemo.test_tre333</li><li>test_case.TestDemo.test_fou444</li><li>main.测试用例.test_demo1</li><li>test_case.TestDemo.test_0123456789ABC</li></ol></p>
|
|||
|
|
|||
|
<p class='description'>描述</p>
|
|||
|
</div>
|
|||
|
<div id="container"></div>
|
|||
|
<div id="container_extend"></div>
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
<div style="width: auto; clear: both;">
|
|||
|
<p id='show_detail_line'>
|
|||
|
<a class="btn btn-primary" href='javascript:showCase(0)'>概要 16.67%</a>
|
|||
|
<a class="btn btn-success" href='javascript:showCase(2)'>通过 1</a>
|
|||
|
<a class="btn btn-danger" href='javascript:showCase(1)'>失败 1</a>
|
|||
|
<a class="btn btn-warning" href='javascript:showCase(3)'>错误 4</a>
|
|||
|
<a class="btn btn-info" href='javascript:showCase(4)'>全部 6</a>
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
<table id='result_table' class="table table-condensed table-bordered table-hover">
|
|||
|
<colgroup>
|
|||
|
<col align='left' style="width: 300px;"/>
|
|||
|
<col align='right' style="width: 285px;"/>
|
|||
|
<col align='right' />
|
|||
|
<col align='right' />
|
|||
|
<col align='right' />
|
|||
|
<col align='right' />
|
|||
|
<col align='right' />
|
|||
|
<col align='right' style="width: 120px;"/>
|
|||
|
</colgroup>
|
|||
|
<tr id='header_row' class="text-center success" style="font-weight: bold;font-size: 14px;">
|
|||
|
<td>测试用例</td>
|
|||
|
<td>说明</td>
|
|||
|
<td>总计</td>
|
|||
|
<td>通过</td>
|
|||
|
<td>失败</td>
|
|||
|
<td>错误</td>
|
|||
|
<td>耗时</td>
|
|||
|
<td>详细</td>
|
|||
|
</tr>
|
|||
|
|
|||
|
<tr class='errorClass warning'>
|
|||
|
<td>TestDemo</td>
|
|||
|
<td></td>
|
|||
|
<td class="text-center">5</td>
|
|||
|
<td class="text-center">1</td>
|
|||
|
<td class="text-center">1</td>
|
|||
|
<td class="text-center">3</td>
|
|||
|
<td class="text-center">2.091秒</td>
|
|||
|
<td class="text-center"><a href="javascript:showClassDetail('c1',5)" class="detail" id='c1'>查看全部</a></td>
|
|||
|
</tr>
|
|||
|
|
|||
|
<tr id='pt1_1' class='hiddenRow'>
|
|||
|
<td class='passedCase' style="vertical-align: middle"><div class='testcase'>test_one1</div></td>
|
|||
|
<td style="vertical-align: middle"></td>
|
|||
|
<td colspan='5' align='center'>
|
|||
|
<button id='btn_pt1_1' type="button" class="btn btn-xs" data-toggle="collapse" data-target='#div_pt1_1'>通过</button>
|
|||
|
<div id='div_pt1_1' class="collapse in">
|
|||
|
<pre style="text-align:left;font-size:12px;color:#e52000">pt1_1:
|
|||
|
STDOUT
|
|||
|
STDERR
|
|||
|
</pre>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td class='passedCase' style="vertical-align: middle"></td>
|
|||
|
</tr>
|
|||
|
|
|||
|
<tr id='ft1_2' class='none'>
|
|||
|
<td class='failedCase' style="vertical-align: middle"><div class='testcase'>test_two22</div></td>
|
|||
|
<td style="vertical-align: middle"></td>
|
|||
|
<td colspan='5' align='center'>
|
|||
|
<button id='btn_ft1_2' type="button" class="btn btn-xs" data-toggle="collapse" data-target='#div_ft1_2'>失败</button>
|
|||
|
<div id='div_ft1_2' class="collapse in">
|
|||
|
<pre style="text-align:left;font-size:12px;color:#e52000">ft1_2:
|
|||
|
2022-07-28 00:36:41,298 - E: 错误啦!!!
|
|||
|
Traceback (most recent call last):
|
|||
|
File "D:\Project\AutoFramework\test_case.py", line 31, in test_two22
|
|||
|
assert 'A' in 'Hello!', '断言失败'
|
|||
|
AssertionError: 断言失败
|
|||
|
</pre>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td class='failedCase' style="vertical-align: middle"></td>
|
|||
|
</tr>
|
|||
|
|
|||
|
<tr id='et1_3' class='none'>
|
|||
|
<td class='errorsCase' style="vertical-align: middle"><div class='testcase'>test_tre333</div></td>
|
|||
|
<td style="vertical-align: middle"></td>
|
|||
|
<td colspan='5' align='center'>
|
|||
|
<button id='btn_et1_3' type="button" class="btn btn-xs" data-toggle="collapse" data-target='#div_et1_3,#div_et1_3_screenshot'>错误</button>
|
|||
|
<div id='div_et1_3' class="collapse in">
|
|||
|
<pre style="text-align:left;font-size:12px;color:#e52000">et1_3:
|
|||
|
Traceback (most recent call last):
|
|||
|
File "D:\Project\AutoFramework\test_case.py", line 35, in test_tre333
|
|||
|
a(1)
|
|||
|
NameError: name 'a' is not defined
|
|||
|
</pre>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td class="text-center" style="vertical-align: middle">
|
|||
|
<div style='width:auto;height:auto;border:1px solid #b5b5b5;color:#202020font-weight:bold;text-align:center'>截图信息</div>
|
|||
|
<div id='div_et1_3_screenshot' style="text-align: left" class="collapse in">
|
|||
|
<a style="font-family:Consolas,monospace;color:#e52000;text-decoration:underline;" class="screenshot" href="javascript:void(0)" img="./01.png">01.png</a></br>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
|
|||
|
<tr id='et1_4' class='none'>
|
|||
|
<td class='errorsCase' style="vertical-align: middle"><div class='testcase'>test_fou444</div></td>
|
|||
|
<td style="vertical-align: middle"></td>
|
|||
|
<td colspan='5' align='center'>
|
|||
|
<button id='btn_et1_4' type="button" class="btn btn-xs" data-toggle="collapse" data-target='#div_et1_4,#div_et1_4_screenshot'>错误</button>
|
|||
|
<div id='div_et1_4' class="collapse in">
|
|||
|
<pre style="text-align:left;font-size:12px;color:#e52000">et1_4:
|
|||
|
Traceback (most recent call last):
|
|||
|
File "D:\Project\AutoFramework\test_case.py", line 43, in test_fou444
|
|||
|
raise Exception('Errors')
|
|||
|
Exception: Errors
|
|||
|
</pre>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td class="text-center" style="vertical-align: middle">
|
|||
|
<div style='width:auto;height:auto;border:1px solid #b5b5b5;color:#202020font-weight:bold;text-align:center'>截图信息</div>
|
|||
|
<div id='div_et1_4_screenshot' style="text-align: left" class="collapse in">
|
|||
|
<a style="font-family:Consolas,monospace;color:#e52000;text-decoration:underline;" class="screenshot" href="javascript:void(0)" img="./01.png">01.png</a></br><a style="font-family:Consolas,monospace;color:#e52000;text-decoration:underline;" class="screenshot" href="javascript:void(0)" img="./2022072523501942.png">2022072523501942.png</a></br><a style="font-family:Consolas,monospace;color:#e52000;text-decoration:underline;" class="screenshot" href="javascript:void(0)" img="./2022072523501235.png">2022072523501235.png</a></br>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
|
|||
|
<tr id='et1_5' class='none'>
|
|||
|
<td class='errorsCase' style="vertical-align: middle"><div class='testcase'>test_0123456789ABC</div></td>
|
|||
|
<td style="vertical-align: middle"></td>
|
|||
|
<td colspan='5' align='center'>
|
|||
|
<button id='btn_et1_5' type="button" class="btn btn-xs" data-toggle="collapse" data-target='#div_et1_5'>错误</button>
|
|||
|
<div id='div_et1_5' class="collapse in">
|
|||
|
<pre style="text-align:left;font-size:12px;color:#e52000">et1_5:
|
|||
|
Traceback (most recent call last):
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\urllib3\connection.py", line 174, in _new_conn
|
|||
|
conn = connection.create_connection(
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\urllib3\util\connection.py", line 95, in create_connection
|
|||
|
raise err
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\urllib3\util\connection.py", line 85, in create_connection
|
|||
|
sock.connect(sa)
|
|||
|
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
|
|||
|
|
|||
|
During handling of the above exception, another exception occurred:
|
|||
|
|
|||
|
Traceback (most recent call last):
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\urllib3\connectionpool.py", line 703, in urlopen
|
|||
|
httplib_response = self._make_request(
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\urllib3\connectionpool.py", line 398, in _make_request
|
|||
|
conn.request(method, url, **httplib_request_kw)
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\urllib3\connection.py", line 239, in request
|
|||
|
super(HTTPConnection, self).request(method, url, body=body, headers=headers)
|
|||
|
File "C:\Program Files\Python310\lib\http\client.py", line 1282, in request
|
|||
|
self._send_request(method, url, body, headers, encode_chunked)
|
|||
|
File "C:\Program Files\Python310\lib\http\client.py", line 1328, in _send_request
|
|||
|
self.endheaders(body, encode_chunked=encode_chunked)
|
|||
|
File "C:\Program Files\Python310\lib\http\client.py", line 1277, in endheaders
|
|||
|
self._send_output(message_body, encode_chunked=encode_chunked)
|
|||
|
File "C:\Program Files\Python310\lib\http\client.py", line 1037, in _send_output
|
|||
|
self.send(msg)
|
|||
|
File "C:\Program Files\Python310\lib\http\client.py", line 975, in send
|
|||
|
self.connect()
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\urllib3\connection.py", line 205, in connect
|
|||
|
conn = self._new_conn()
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\urllib3\connection.py", line 186, in _new_conn
|
|||
|
raise NewConnectionError(
|
|||
|
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x00000272B0967280>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
|
|||
|
|
|||
|
During handling of the above exception, another exception occurred:
|
|||
|
|
|||
|
Traceback (most recent call last):
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\requests\adapters.py", line 489, in send
|
|||
|
resp = conn.urlopen(
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\urllib3\connectionpool.py", line 785, in urlopen
|
|||
|
retries = retries.increment(
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\urllib3\util\retry.py", line 592, in increment
|
|||
|
raise MaxRetryError(_pool, url, error or ResponseError(cause))
|
|||
|
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=8888): Max retries exceeded with url: http://more-md.fanscloud.net/iplookup (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000272B0967280>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。')))
|
|||
|
|
|||
|
During handling of the above exception, another exception occurred:
|
|||
|
|
|||
|
Traceback (most recent call last):
|
|||
|
File "D:\Project\AutoFramework\test_case.py", line 53, in test_0123456789ABC
|
|||
|
Request().http('GET',"http://more-md.fanscloud.net/iplookup", proxy="http://127.0.0.1:8888")
|
|||
|
File "D:\Project\AutoFramework\Base\Class\Http.py", line 75, in http
|
|||
|
self.__response_object__ = self.__http__.request(
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\requests\api.py", line 59, in request
|
|||
|
return session.request(method=method, url=url, **kwargs)
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\requests\sessions.py", line 587, in request
|
|||
|
resp = self.send(prep, **send_kwargs)
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\requests\sessions.py", line 701, in send
|
|||
|
r = adapter.send(request, **kwargs)
|
|||
|
File "D:\Project\AutoFramework\venv\lib\site-packages\requests\adapters.py", line 559, in send
|
|||
|
raise ProxyError(e, request=request)
|
|||
|
requests.exceptions.ProxyError: HTTPConnectionPool(host='127.0.0.1', port=8888): Max retries exceeded with url: http://more-md.fanscloud.net/iplookup (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000272B0967280>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。')))
|
|||
|
</pre>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td class='errorsCase' style="vertical-align: middle"></td>
|
|||
|
</tr>
|
|||
|
|
|||
|
<tr class='errorClass warning'>
|
|||
|
<td>测试用例</td>
|
|||
|
<td>Doc</td>
|
|||
|
<td class="text-center">1</td>
|
|||
|
<td class="text-center">0</td>
|
|||
|
<td class="text-center">0</td>
|
|||
|
<td class="text-center">1</td>
|
|||
|
<td class="text-center">0.000秒</td>
|
|||
|
<td class="text-center"><a href="javascript:showClassDetail('c2',1)" class="detail" id='c2'>查看全部</a></td>
|
|||
|
</tr>
|
|||
|
|
|||
|
<tr id='et2_1' class='none'>
|
|||
|
<td class='errorsCase' style="vertical-align: middle"><div class='testcase'>test_demo1</div></td>
|
|||
|
<td style="vertical-align: middle">这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;</td>
|
|||
|
<td colspan='5' align='center'>
|
|||
|
<button id='btn_et2_1' type="button" class="btn btn-xs" data-toggle="collapse" data-target='#div_et2_1'>错误</button>
|
|||
|
<div id='div_et2_1' class="collapse in">
|
|||
|
<pre style="text-align:left;font-size:12px;color:#e52000">et2_1:
|
|||
|
Traceback (most recent call last):
|
|||
|
File "", line 1, in foo
|
|||
|
NameError: name 'a' is not defined
|
|||
|
</pre>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td class='errorsCase' style="vertical-align: middle"></td>
|
|||
|
</tr>
|
|||
|
|
|||
|
<tr id='total_row' class="text-center active">
|
|||
|
<td colspan='2'>总计</td>
|
|||
|
<td>6</td>
|
|||
|
<td>1</td>
|
|||
|
<td>1</td>
|
|||
|
<td>4</td>
|
|||
|
<td>2.091秒</td>
|
|||
|
<td>通过:16.67%</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
|
|||
|
|
|||
|
<div id='footer'> </div>
|
|||
|
<div id="toTop" style="position:fixed;right:50px; bottom:30px; width:20px; height:20px;cursor:pointer; display: none">
|
|||
|
<a>
|
|||
|
<span class="glyphicon glyphicon-eject" style = "font-size:28px;color:#b0b0b0" aria-hidden="true">
|
|||
|
</span>
|
|||
|
</a>
|
|||
|
</div>
|
|||
|
|
|||
|
<div style='width: auto; height: auto; border: 1px solid #e3e3e3; text-align: center; color: #505050; padding: 4px 0px 4px 0px;'>
|
|||
|
<img src='' style='width: auto; height: auto; max-height: 40px;'>
|
|||
|
<a href='#' style='font-size: 14px; color: #505050; text-align: center|bottom;'></a>
|
|||
|
</div>
|
|||
|
</body>
|
|||
|
</html>
|