android UiAutomator讓運行失敗的用例重新運行

本人在使用android UiAutomator做測試的時候,發現經常會因爲頁面加載太慢或者網絡延遲比較大又或者出現意外情況導致用例失敗,但是在檢查的時候又能運行成功,提出了一個讓失敗的用例重新運行的需求,經過嘗試終於成功了,使用excel作爲測試報告的類型,html的類似,下面分享一下運行的代碼,供大家參考。

List<String[]> firstsheet = new ArrayList<String[]>();//新建list,用於存放每個測試用例的測試結果
        String[] title = {"編號", "用例名", "運行狀態", "錯誤信息", "錯誤行Library", "錯誤行Special", "錯誤行Case", "開始時間", "結束時間"};
        firstsheet.add(title);//把標題行先加入表信息
        new RunHelper(jarname, "1");//新編譯jar包並push到手機上
        setMobileInputMethodToUtf();//設置手機輸入法爲UTF-7
        for(int i = 0;i < MethodList.size(); i++){//遍歷運行所有方法  
        	String[] result = execCmdAndReturnResult(jarname, "student.Case", MethodList.get(i), i);//運行測試用例  
        	firstsheet.add(result);//將此次用例的測試結果放入list中  
            }
        List<String[]> secondsheet = new ArrayList<String[]>();//新建list,用於存放第二次的測試結果
        secondsheet.add(title);//把標題加入表中
        //遍歷第一遍測試結果
        for(int s =0;s < firstsheet.size();s++){
        	String[] result = firstsheet.get(s);//遍歷每一個用例的運行結果
        	if (!result[2].equals("運行成功")) {//獲取運行未成功的用例集
				String[] second = execCmdAndReturnResult(jarname, "student.Case", result[1], s);//重新運行未成功用例
				secondsheet.add(second);//把第二次運行的結果加入了第二張表中
			}
        }
        Map<Integer, List<String[]>> report = new HashMap<Integer, List<String[]>>();//新建map,用於存放多張表格數據
        report.put(1, firstsheet);//把第一個表格的測試數據放入要寫入到map裏 
        report.put(2, secondsheet);//把第二個表格的測試數據放入要寫入的map裏
        Excel.writeXlsx(report);//把測試報告寫入excel表格中

這次的註釋寫得有點亂,大家將就看看,希望能對你有所幫助。
發佈了102 篇原創文章 · 獲贊 40 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章