首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android UiAutomator让运行失败的用例重新运行

本人在使用android UiAutomator做测试的时候,发现经常会因为页面加载太慢或者网络延迟比较大又或者出现意外情况导致用例失败,但是在检查的时候又能运行成功,提出了一个让失败的用例重新运行的需求,经过尝试终于成功了,使用excel作为测试报告的类型,html的类似,下面分享一下运行的代码,供大家参考。

代码语言:javascript
复制
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表格中

这次的注释写得有点乱,大家将就看看,希望能对你有所帮助。

下一篇
举报
领券