|
@@ -10,6 +10,7 @@ import net.mooctest.www.android_auto_test.common.BeanFactory;
|
|
|
import net.mooctest.www.android_auto_test.common.constant.Consts;
|
|
|
import net.mooctest.www.android_auto_test.common.constant.enums.DeviceStatus;
|
|
|
import net.mooctest.www.android_auto_test.common.constant.enums.TraceStatus;
|
|
|
+import net.mooctest.www.android_auto_test.common.exceptions.UploadReportException;
|
|
|
import net.mooctest.www.android_auto_test.services.ApkService;
|
|
|
import net.mooctest.www.android_auto_test.services.DeviceService;
|
|
|
import net.mooctest.www.android_auto_test.services.OssService;
|
|
@@ -37,16 +38,14 @@ public class TraceDaemon extends Thread{
|
|
|
private List<CoverageTest> deviceThreads;
|
|
|
private boolean stopImmediately = false;
|
|
|
private boolean needGenerateReport;
|
|
|
- private boolean needSendReport;
|
|
|
private String reportType;
|
|
|
|
|
|
public TraceDaemon(String traceId, int minutes, List<CoverageTest> deviceThreads,
|
|
|
- boolean needGenerateReport, boolean needSendReport, String reportType){
|
|
|
+ boolean needGenerateReport, String reportType){
|
|
|
this.traceId = traceId;
|
|
|
this.minutes = minutes;
|
|
|
this.deviceThreads = deviceThreads;
|
|
|
this.needGenerateReport = needGenerateReport;
|
|
|
- this.needSendReport = needSendReport;
|
|
|
this.reportType = reportType;
|
|
|
traceService = (TraceService) BeanFactory.getBean(TraceService.class);
|
|
|
ossService = (OssService) BeanFactory.getBean(OssService.class);
|
|
@@ -91,16 +90,20 @@ public class TraceDaemon extends Thread{
|
|
|
} catch (InterruptedException e) {
|
|
|
e.printStackTrace();
|
|
|
} finally {
|
|
|
- if (needGenerateReport) {
|
|
|
- generateReport();
|
|
|
- }
|
|
|
- if (needSendReport) {
|
|
|
- //TODO 生成报告之后,将报告发给企业版主站
|
|
|
- sendReport();
|
|
|
+ try {
|
|
|
+ if (needGenerateReport) {
|
|
|
+ generateReport();
|
|
|
+ }
|
|
|
+ traceService.updateTraceEndTime(traceId);
|
|
|
+ PrintUtil.print(String.format("Trace %s is done!", traceId), TAG);
|
|
|
+ traceService.updateTraceStatue(traceId, TraceStatus.FINISH);
|
|
|
+ }catch (UploadReportException e){
|
|
|
+ // 按理说不应该失败,但是还是加上
|
|
|
+ traceService.updateTraceEndTime(traceId);
|
|
|
+ PrintUtil.print(String.format("Trace %s report upload failed.", traceId), TAG);
|
|
|
+ traceService.updateTraceStatue(traceId, TraceStatus.UPLOAD_REPORT_FAILED);
|
|
|
}
|
|
|
- traceService.updateTraceEndTime(traceId);
|
|
|
- PrintUtil.print(String.format("Trace %s is done!", traceId), TAG);
|
|
|
- traceService.updateTraceStatue(traceId, TraceStatus.FINISH);
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -128,8 +131,7 @@ 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 e) {
|
|
|
- e.printStackTrace();
|
|
|
+ } catch (Exception ignored) {
|
|
|
}
|
|
|
PrintUtil.print(String.format("Upload %s report json file", reportType), TAG);
|
|
|
// 上传data.json文件
|
|
@@ -139,7 +141,7 @@ public class TraceDaemon extends Thread{
|
|
|
// 上传失败,重试5次
|
|
|
while (path == null && retryTimes < Consts.UPLOAD_OSS_MAX_ATTEMPTS){
|
|
|
try {
|
|
|
- Thread.sleep(3000);
|
|
|
+ Thread.sleep(5000);
|
|
|
path = ossService.uploadFileToTraceDir(data, traceId, Consts.REPORT_FILE_NAME);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
@@ -152,23 +154,10 @@ public class TraceDaemon extends Thread{
|
|
|
PrintUtil.print(String.format("Trace %s's data upload success.", traceId), TAG);
|
|
|
}else {
|
|
|
PrintUtil.print(String.format("Trace %s's data upload failed after tried 5 times.", traceId), TAG);
|
|
|
+ throw new UploadReportException("");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void sendReport(){
|
|
|
- System.out.println("Send report to Mooctest.");
|
|
|
-// RestTemplate rt = new RestTemplate();
|
|
|
-// HttpHeaders headers = new HttpHeaders();
|
|
|
-// headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
-// TraceStatusResult traceResult = new TraceStatusResult();
|
|
|
-// traceResult.setTraceId(traceId);
|
|
|
-// String downloadUrl = ossService.getDadaJsonDownloadPath(traceId);
|
|
|
-// traceResult.setDownloadUrl(downloadUrl);
|
|
|
-// HttpEntity<TraceStatusResult> httpEntity = new HttpEntity<>(traceResult, headers);
|
|
|
-// String url = "http://localhost:15926/api/v1/mock/TraceInfo";
|
|
|
-// rt.exchange(url, HttpMethod.POST, httpEntity, String.class);
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* @return 该trace下所有任务是否都已完成
|
|
|
*/
|