Преглед изворни кода

添加参数,是否在自动化测试结束后执行众包分析

LiHaoyu пре 5 година
родитељ
комит
1623019e6e

+ 1 - 0
src/main/java/net/mooctest/www/android_auto_test/services/Impl/AutoTestServiceImpl.java

@@ -126,6 +126,7 @@ public class AutoTestServiceImpl implements AutoTestService {
             TraceDaemon traceDaemon = new TraceDaemon(traceId,timeout, oneTraceTasks,
                     true,
                     traceInfo.getReportType());
+            traceDaemon.setNeedCrowdSourcedAnalysis(traceInfo.isNeedCrowdSourcedAnalysis());
             traceDaemon.setName(Consts.DAEMON_THREAD_NAME_PREFIX + traceId);
             traceDaemon.start();
         }

+ 22 - 2
src/main/java/net/mooctest/www/android_auto_test/utils/TraceDaemon.java

@@ -39,6 +39,7 @@ public class TraceDaemon extends Thread{
     private boolean stopImmediately = false;
     private boolean needGenerateReport;
     private String reportType;
+    private boolean needCrowdSourcedAnalysis = false;
 
     public TraceDaemon(String traceId, int minutes, List<CoverageTest> deviceThreads,
                        boolean needGenerateReport,  String reportType){
@@ -52,6 +53,10 @@ public class TraceDaemon extends Thread{
         apkService = (ApkService) BeanFactory.getBean(ApkService.class);
     }
 
+    public void setNeedCrowdSourcedAnalysis(boolean i){
+        needCrowdSourcedAnalysis = i;
+    }
+
     @Override
     public void run() {
         boolean allTaskEnd = false;
@@ -106,6 +111,17 @@ public class TraceDaemon extends Thread{
         }
     }
 
+    private void crowdSourcedAnalysis(){
+        try {
+            PrintUtil.print("Generate crowd sourced report by bb2h.jar.", TAG);
+            String command = String.format("java -jar tasks/bb2h.jar %s", traceId);
+            String result = OsUtil.runCommand(command);
+            PrintUtil.print(result, TAG);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
     private void generateReport(){
         traceService.updateTraceStatue(traceId, TraceStatus.GEN_REPORT);
         // 上传截图到OSS
@@ -128,8 +144,12 @@ public class TraceDaemon extends Thread{
             String command = String.format("java -jar tasks/%s.jar %s", reportType, traceId);
             String result = OsUtil.runCommand(command);
             PrintUtil.print(result, TAG);
-        } catch (Exception ignored) {
-        }
+
+            // 如果需要众包分析,那么就调用bb2h工具,改写BugReport.json
+            if (needCrowdSourcedAnalysis){
+                crowdSourcedAnalysis();
+            }
+        } catch (Exception ignored) { }
         PrintUtil.print(String.format("Upload %s report json file", reportType), TAG);
         // 上传data.json文件
         File data = new File(AddressUtil.getDataJsonPath(traceId));

+ 1 - 0
src/main/java/net/mooctest/www/android_auto_test/vo/TraceMetaInfo.java

@@ -15,4 +15,5 @@ public class TraceMetaInfo {
     private List<String> selectDevices;
     private boolean needGenerateReport = false;
     private String reportType = "BugReport";
+    private boolean needCrowdSourcedAnalysis = false;
 }