Ver Fonte

开始接口添加指定设备ID参数

LiHaoyu há 5 anos atrás
pai
commit
b64cf9468e

+ 1 - 1
src/main/java/net/mooctest/www/android_auto_test/services/DeviceService.java

@@ -20,7 +20,7 @@ public interface DeviceService {
      * @param devices 备选设备
      * @return 根据某些算法,选择合适的设备
      */
-    List<Device> selectDeviceByApp(ApkInfo apkInfo, List<Device> devices);
+    List<Device> selectDeviceByApp(ApkInfo apkInfo, List<Device> devices, List<String> selectDevices);
 
     void updateDeviceRunningStatus(String traceId, String udid, DeviceRunningStatus deviceRunningStatus);
 

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

@@ -67,6 +67,7 @@ public class AutoTestServiceImpl implements AutoTestService {
             String traceId = traceInfo.getTraceId();
             String downloadUrl = traceInfo.getDownloadUrl();
             int timeout = traceInfo.getLimitTime();
+            List<String> selectDevices = traceInfo.getSelectDevices();
             PrintUtil.print("Start Automatic Test, TraceId: " + traceId, TAG);
             traceService.updateTraceStatue(traceId, TraceStatus.INIT);
             String filePath;
@@ -88,7 +89,7 @@ public class AutoTestServiceImpl implements AutoTestService {
             // 获取目前在线设备
             List<Device> deviceList = deviceService.getOnlineDeviceList();
             // 选择设备,后期可以修改为如果前端指定了设备or条件,则根据指定的来;目前是选择所有在线的
-            List<Device> selectedDevices = deviceService.selectDeviceByApp(apkInfo, deviceList);
+            List<Device> selectedDevices = deviceService.selectDeviceByApp(apkInfo, deviceList, selectDevices);
             if (selectedDevices == null || selectedDevices.size() == 0){
                 traceService.updateTraceStatue(traceId, TraceStatus.FAILED);
                 throw new NoFreeDeviceException("没有空闲设备");

+ 12 - 2
src/main/java/net/mooctest/www/android_auto_test/services/Impl/DeviceServiceImpl.java

@@ -47,8 +47,18 @@ public class DeviceServiceImpl implements DeviceService {
     }
 
     @Override
-    public List<Device> selectDeviceByApp(ApkInfo apkInfo, List<Device> devices) {
-        return devices;
+    public List<Device> selectDeviceByApp(ApkInfo apkInfo, List<Device> devices, List<String> selectDevices) {
+        if (selectDevices == null || selectDevices.size() == 0){
+            return devices;
+        }
+        List<Device> selected = new ArrayList<>();
+        for (Device d: devices){
+            String udid = d.getUdid();
+            if (selectDevices.contains(udid)){
+                selected.add(d);
+            }
+        }
+        return selected;
     }
 
     @Override

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

@@ -2,6 +2,8 @@ package net.mooctest.www.android_auto_test.vo;
 
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @author henrylee
  */
@@ -10,4 +12,5 @@ public class TraceMetaInfo {
     private String downloadUrl;
     private String traceId;
     private int limitTime = 20;
+    private List<String> selectDevices;
 }