1. 程式人生 > >Java自動化測試框架-06 - 來給你的測試報告化個妝整個形 - (下)(詳細教程)

Java自動化測試框架-06 - 來給你的測試報告化個妝整個形 - (下)(詳細教程)

簡介

經過上一次的化妝和整形,有客戶提出需求能不能將那個普通會員的套餐再升級一下,再漂亮一點。所以這次咱們就來看看從哪裡下刀可以使它變得再漂亮一點點。

上一篇文章修改了一些基本的ReportNG資訊,連結:Java自動化測試框架-05 - 來給你的測試報告化個妝整個形 - (上),本文將繼續帶大家進行修改,重點是新增餅圖,將從普通會員升級到VIP會員。

經過上次的整容恢復的差不多了,巨集哥繼續帶領下夥伴們和同學們折騰,給reportng來個二次開刀。

第一刀

1、修改測試結果順序,修改TestResultComparator類compare方法

 2、參考程式碼

//=============================================================================
// Copyright 2006-2013 Daniel W. Dyer
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//=============================================================================
package org.uncommons.reportng;

import java.util.Comparator;
import org.testng.ITestResult;

/**
 * Comparator for sorting TestNG test results alphabetically by method name.
 * @author Daniel Dyer
 */
class TestResultComparator implements Comparator<ITestResult>
{
//    public int compare(ITestResult result1, ITestResult result2)
//    {
//        return result1.getName().compareTo(result2.getName());
//    }
    public int compare(ITestResult result1, ITestResult result2)
    {
        //按照名稱排序顯示
//         return result1.getName().compareTo(result2.getName());
        //按照執行時間排序顯示
        int longresult2 = 0; 
        if(result2.getStartMillis()<result2.getStartMillis()){
            longresult2 = -1;
        }else{
            longresult2 = 1;
        }
        return longresult2;
    }
}

第二刀

1、新增餅圖,在overview.html.vm新增

2、參考程式碼

<script src='http://www.ichartjs.com/ichart.latest.min.js'></script>

第三刀

1、繼續在overview.html.vm新增

 2、參考程式碼

<div id='ichart-render'></div>

第四刀

1、給通過總數,失敗總數和跳過總數新增id屬性<td class="passRate suite">之前新增,找到#if($totalPassed>0),為td標籤,新增id屬性,如下:

第五刀

1、新增餅圖js程式碼,新增在</body>之前即可

 2、參考程式碼

<script type='text/javascript'>
    pcount=document.getElementById("tpn").innerHTML;
    fcount=document.getElementById("tfn").innerHTML;
    scount=document.getElementById("tsn").innerHTML;
    $(function(){
    var chart = iChart.create({
    render:"ichart-render",
    width:800,
    height:400,
    background_color:"#fefefe",
    gradient:false,
    color_factor:0.2,
    border:{
    color:"BCBCBC",
    width:0
    },
    align:"center",
    offsetx:0,
    offsety:0,
    sub_option:{
    border:{
    color:"#BCBCBC",
    width:1
    },
    label:{
    fontweight:500,
    fontsize:11,
    color:"#4572a7",
    sign:"square",
    sign_size:12,
    border:{
    color:"#BCBCBC",
    width:1
    }
    }
    },
    shadow:true,
    shadow_color:"#666666",
    shadow_blur:2,
    showpercent:false,
    column_width:"70%",
    bar_height:"70%",
    radius:"90%",
    subtitle:{
    text:"",
    color:"#111111",
    fontsize:16,
    font:"微軟雅黑",
    textAlign:"center",
    height:20,
    offsetx:0,
    offsety:0
    },
    footnote:{
    text:"",
    color:"#111111",
    fontsize:12,
    font:"微軟雅黑",
    textAlign:"right",
    height:20,
    offsetx:0,
    offsety:0
    },
    legend:{
    enable:false,
    background_color:"#fefefe",
    color:"#333333",
    fontsize:12,
    border:{
    color:"#BCBCBC",
    width:1
    },
    column:1,
    align:"right",
    valign:"center",
    offsetx:0,
    offsety:0
    },
    coordinate:{
    width:"80%",
    height:"84%",
    background_color:"#ffffff",
    axis:{
    color:"#a5acb8",
    width:[1,"",1,""]
    },
    grid_color:"#d9d9d9",
    label:{
    fontweight:500,
    color:"#666666",
    fontsize:11
    }
    },
    label:{
    fontweight:500,
    color:"#666666",
    fontsize:11
    },
    type:"pie2d",
    data:[
    {
    name:"Passed",
    value:pcount,
    color:"#44aa44"
    },{
    name:"Failed",
    value:fcount,
    color:"#ff4444"
    },{
    name:"Skipped",
    value:scount,
    color:"#FFD700"
    }
    ]
    });
    chart.draw();
    });
</script>

包紮縫合

這次的包紮縫合巨集哥給你們換另一個方式通過ant來匯出jar。ant的安裝和配置在上一篇大家都可以看到的,這裡就不贅述了。

1、進入程式碼目錄,將其build.xml的jar包版本修改成1.1.8

 2、匯出jar包。成功。

 3、到哪個目錄下找到jar包。

 4、新建專案引用jar包。

 

術後恢復效果圖:

小結

1、小夥伴可能按照巨集哥的步驟操作到最後也會一臉懵逼的發現我的餅圖在哪裡,給誰吃掉了。來跟隨巨集哥看看,到底是被誰吃掉了。

(1)首先巨集哥看了一看修改的程式碼,複查了一遍沒有問題。

(2)完了巨集哥突然發現有一段引入圖示外掛的js的程式碼:<script src='http://www.ichartjs.com/ichart.latest.min.js'></script>是通過一個網址引入的就是在動第二刀的時候,然後巨集哥就試著訪問網址:http://www.ichartjs.com/ichart.latest.min.js,結果悲劇了訪問到如下:

 (3)到這裡巨集哥就確定引入的JS有問題了,所以餅圖沒有出現那麼我們網址訪問不到,那麼就下載一個到本地,在本地訪問

(4)完成以後,巨集哥就開始匯出jar包,然後引入jar包以後,仍然沒有出現餅圖。

(5)完了巨集哥就抱著試一試的心理,把js拷貝到測試報告的資料夾中,再次看測試報告。

 (6)餅圖出現了,原來是js還是沒有被引入,先前做的僅僅是將js引入jar包,而沒有引入測試報告,要想引入測試報告還的修改一個地方的程式碼,仿照上邊CSS和JS的引入,如下:

 (7)再次匯出jar包,測試報告的餅圖就出現了。

2、好了,關於這個就到這裡了。

 

有問題加入java自動化測試交流群:694280102

 

個人公眾號                                                             微信群 (微信群已滿100,可以加巨集哥的微信拉你進群,請備註:進群)          

                                                                 

您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得點波 推薦 哦!!!(點選右邊的小球即可!(^__^) 嘻嘻……)