android UiAutomator利用快速調試生成excel文檔測試報告

本人在使用UiAutomator做測試的時候,更偏向於使用快速調試類來進行,方便好用,但是生成報告一直是個心病,昨天想到一個方案,今天終於成功,通過快速調試類,先進行編譯和push,然後通過執行cmd命令逐個執行測試用。對控制檯輸出的信息進行處理,分類存儲,執行完用例,一起寫在一個excel文檔。這個辦法還有一個優點,就是可以隨意運行任意兩個或者更多的測試用例,相比UiAutomatorHelper只能運行單個用例,也算是一點點提高。

這裏還可以利用list集合儲存的信息將錯誤的用例再運行一次,另存一個sheet裏面,變成第二次執行錯誤用例的測試報告。由於時間緊湊,我就沒寫這塊的代碼,哪位寫好了,可以發我一下。

先發一下生成用例的效果圖:



看起來還不錯,下面分享一下自己的代碼。

package teststudent;  
  
import java.io.IOException;
import java.util.ArrayList;  
import java.util.HashMap;  
import java.util.List;  
import java.util.Map;

public class ClassReport extends Library{
    public static void main(String[] args) throws IOException{
    	String jarname = "Demo";//設置生成jar包的名字
    	boolean key = false;//爲true時生成excel測試報告,爲false生成html測試報告
        //這裏把所有的測試方法放到了一個list集合中,可以靈活控制需要運行的用例  
        List<String> MethodList = new ArrayList<String>();  
        MethodList.add("test001LearnCornerAddPost");  
        MethodList.add("test002RechargeByWechat");  
        MethodList.add("test003RechargeByAlipay");  
        MethodList.add("test004BuyCourseByWechat");  
        MethodList.add("test005AddAndDeleteAdress");  
        MethodList.add("test006Chatroom");  
        MethodList.add("test007ShareCourseToWechat");  
        MethodList.add("test008ShareCourseToFriendCircle");  
        MethodList.add("test009ShareCourseToQQ");  
        MethodList.add("test010ShareCourseToQzone");  
        MethodList.add("test011AlterPassword");  
        MethodList.add("test012AlterUserName");  
        MethodList.add("test013BuyCourseByAlipay");  
        List<String[]> sheet = new ArrayList<String[]>();//新建list,用於存放每個測試用例的測試結果
        if (key) {
        	String[] title = {"編號", "用例名", "運行狀態", "錯誤信息", "錯誤行Library", "錯誤行Special", "錯誤行Case", "開始時間", "結束時間"};  
             sheet.add(title);//把標題行先加入表信息
             }
        new RunHelper(jarname, "1");//新編譯jar包並push到手機上
        setMobileInputMethodToUtf();//設置手機輸入法爲UTF-7
        for(int i = 0;i < MethodList.size(); i++){//遍歷運行所有方法  
        	String[] result = execCmdAndReturnResult(jarname, "teststudent.Case", MethodList.get(i), i);//運行測試用例  
            sheet.add(result);//將此次用例的測試結果放入list中  
            }
        if (key) {
        	Map<Integer, List<String[]>> report = new HashMap<Integer, List<String[]>>();//新建map,用於存放多張表格數據
        	 report.put(1, sheet);//把第一個表格的測試數據放入要寫入到map裏  
        	 Excel.writeXlsx(report);//把測試報告寫入excel表格中
        	 } else {
        		 WriteHtml.createWebReport(sheet);
        		 }
        setMobileInputMethodToQQ();//設置手機輸入法爲QQ輸入法  
        }
}  


runhelper類只是在UiAutomatorhelper基礎上註釋掉運行用例的方法即可。

發佈了102 篇原創文章 · 獲贊 40 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章