|
5 | 5 |
|
6 | 6 | import com.microsoft.hydralab.agent.command.DeviceScriptCommand; |
7 | 7 | import com.microsoft.hydralab.agent.runner.TestRunDeviceOrchestrator; |
| 8 | +import com.microsoft.hydralab.agent.runner.TestRunnerManager; |
| 9 | +import com.microsoft.hydralab.agent.runner.analysis.scanner.APKScanner; |
8 | 10 | import com.microsoft.hydralab.agent.runner.appium.AppiumCrossRunner; |
9 | 11 | import com.microsoft.hydralab.agent.runner.appium.AppiumRunner; |
10 | 12 | import com.microsoft.hydralab.agent.runner.espresso.EspressoRunner; |
|
18 | 20 | import com.microsoft.hydralab.agent.runner.xctest.XCTestRunner; |
19 | 21 | import com.microsoft.hydralab.agent.service.TestTaskEngineService; |
20 | 22 | import com.microsoft.hydralab.common.entity.agent.LLMProperties; |
21 | | -import com.microsoft.hydralab.common.entity.common.TestTask; |
| 23 | +import com.microsoft.hydralab.common.entity.common.Task; |
22 | 24 | import com.microsoft.hydralab.common.management.AgentManagementService; |
23 | 25 | import com.microsoft.hydralab.common.util.ADBOperateUtil; |
24 | 26 | import com.microsoft.hydralab.performance.PerformanceTestManagementService; |
|
29 | 31 |
|
30 | 32 | import java.util.ArrayList; |
31 | 33 | import java.util.List; |
32 | | -import java.util.Map; |
33 | 34 |
|
34 | 35 | @Configuration |
35 | 36 | public class TestRunnerConfig { |
36 | 37 | @Value("${app.registry.name}") |
37 | 38 | String agentName; |
38 | | - @SuppressWarnings("visibilitymodifier") |
39 | | - public static Map<String, String> testRunnerMap = Map.of( |
40 | | - TestTask.TestRunningType.INSTRUMENTATION, "espressoRunner", |
41 | | - TestTask.TestRunningType.APPIUM, "appiumRunner", |
42 | | - TestTask.TestRunningType.APPIUM_CROSS, "appiumCrossRunner", |
43 | | - TestTask.TestRunningType.SMART_TEST, "smartRunner", |
44 | | - TestTask.TestRunningType.MONKEY_TEST, "adbMonkeyRunner", |
45 | | - TestTask.TestRunningType.APPIUM_MONKEY_TEST, "appiumMonkeyRunner", |
46 | | - TestTask.TestRunningType.T2C_JSON_TEST, "t2cRunner", |
47 | | - TestTask.TestRunningType.XCTEST, "xctestRunner", |
48 | | - TestTask.TestRunningType.MAESTRO, "maestroRunner", |
49 | | - TestTask.TestRunningType.PYTHON, "pythonRunner" |
50 | | - ); |
51 | 39 |
|
52 | | - @Bean |
53 | | - public PerformanceTestManagementService performanceTestManagementService() { |
54 | | - PerformanceTestManagementService performanceTestManagementService = new PerformanceTestManagementService(); |
55 | | - performanceTestManagementService.initialize(); |
56 | | - return performanceTestManagementService; |
57 | | - } |
| 40 | + @Value("${app.runner.analysis.enabled:false}") |
| 41 | + boolean isAnalysisEnabled; |
58 | 42 |
|
59 | 43 | @Bean |
60 | | - public EspressoRunner espressoRunner(AgentManagementService agentManagementService, |
61 | | - TestTaskEngineService testTaskEngineService, |
62 | | - TestRunDeviceOrchestrator testRunDeviceOrchestrator, |
63 | | - PerformanceTestManagementService performanceTestManagementService, |
64 | | - ADBOperateUtil adbOperateUtil) { |
65 | | - return new EspressoRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService, |
66 | | - adbOperateUtil); |
67 | | - } |
| 44 | + public TestRunnerManager testRunnerManager(AgentManagementService agentManagementService, |
| 45 | + TestTaskEngineService testTaskEngineService, |
| 46 | + TestRunDeviceOrchestrator testRunDeviceOrchestrator, |
| 47 | + PerformanceTestManagementService performanceTestManagementService, |
| 48 | + ADBOperateUtil adbOperateUtil, |
| 49 | + SmartTestUtil smartTestUtil, |
| 50 | + LLMProperties llmProperties) { |
68 | 51 |
|
69 | | - @Bean |
70 | | - public AdbMonkeyRunner adbMonkeyRunner(AgentManagementService agentManagementService, |
71 | | - TestTaskEngineService testTaskEngineService, |
72 | | - TestRunDeviceOrchestrator testRunDeviceOrchestrator, |
73 | | - PerformanceTestManagementService performanceTestManagementService, |
74 | | - ADBOperateUtil adbOperateUtil) { |
75 | | - return new AdbMonkeyRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService, |
76 | | - adbOperateUtil); |
77 | | - } |
| 52 | + TestRunnerManager testRunnerManager = new TestRunnerManager(); |
78 | 53 |
|
79 | | - @Bean |
80 | | - public AppiumMonkeyRunner appiumMonkeyRunner(AgentManagementService agentManagementService, |
81 | | - TestTaskEngineService testTaskEngineService, |
82 | | - TestRunDeviceOrchestrator testRunDeviceOrchestrator, |
83 | | - PerformanceTestManagementService performanceTestManagementService) { |
84 | | - return new AppiumMonkeyRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, |
85 | | - performanceTestManagementService); |
86 | | - } |
| 54 | + EspressoRunner espressoRunner = new EspressoRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService, |
| 55 | + adbOperateUtil); |
| 56 | + testRunnerManager.addRunEngine(Task.RunnerType.INSTRUMENTATION, espressoRunner); |
87 | 57 |
|
88 | | - @Bean |
89 | | - public AppiumRunner appiumRunner(AgentManagementService agentManagementService, |
90 | | - TestTaskEngineService testTaskEngineService, |
91 | | - TestRunDeviceOrchestrator testRunDeviceOrchestrator, |
92 | | - PerformanceTestManagementService performanceTestManagementService) { |
93 | | - return new AppiumRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService); |
94 | | - } |
| 58 | + AppiumRunner appiumRunner = new AppiumRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService); |
| 59 | + testRunnerManager.addRunEngine(Task.RunnerType.APPIUM, appiumRunner); |
95 | 60 |
|
96 | | - @Bean |
97 | | - public AppiumCrossRunner appiumCrossRunner(AgentManagementService agentManagementService, |
98 | | - TestTaskEngineService testTaskEngineService, |
99 | | - TestRunDeviceOrchestrator testRunDeviceOrchestrator, |
100 | | - PerformanceTestManagementService performanceTestManagementService) { |
101 | | - return new AppiumCrossRunner(agentManagementService, testTaskEngineService, |
| 61 | + AppiumCrossRunner appiumCrossRunner = new AppiumCrossRunner(agentManagementService, testTaskEngineService, |
102 | 62 | testRunDeviceOrchestrator, performanceTestManagementService, |
103 | 63 | agentName); |
104 | | - } |
| 64 | + testRunnerManager.addRunEngine(Task.RunnerType.APPIUM_CROSS, appiumCrossRunner); |
105 | 65 |
|
106 | | - @Bean |
107 | | - public SmartRunner smartRunner(AgentManagementService agentManagementService, |
108 | | - TestTaskEngineService testTaskEngineService, |
109 | | - TestRunDeviceOrchestrator testRunDeviceOrchestrator, |
110 | | - PerformanceTestManagementService performanceTestManagementService, |
111 | | - SmartTestUtil smartTestUtil, LLMProperties llmProperties) { |
112 | | - return new SmartRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService, |
| 66 | + SmartRunner smartRunner = new SmartRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService, |
113 | 67 | smartTestUtil, llmProperties); |
114 | | - } |
| 68 | + testRunnerManager.addRunEngine(Task.RunnerType.SMART, smartRunner); |
115 | 69 |
|
116 | | - @Bean |
117 | | - public T2CRunner t2cRunner(AgentManagementService agentManagementService, |
118 | | - TestTaskEngineService testTaskEngineService, |
119 | | - TestRunDeviceOrchestrator testRunDeviceOrchestrator, |
120 | | - PerformanceTestManagementService performanceTestManagementService) { |
121 | | - return new T2CRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService,
7D5A
td> |
| 70 | + AdbMonkeyRunner adbMonkeyRunner = new AdbMonkeyRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService, |
| 71 | + adbOperateUtil); |
| 72 | + testRunnerManager.addRunEngine(Task.RunnerType.MONKEY, adbMonkeyRunner); |
| 73 | + |
| 74 | + AppiumMonkeyRunner appiumMonkeyRunner = new AppiumMonkeyRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, |
| 75 | + performanceTestManagementService); |
| 76 | + testRunnerManager.addRunEngine(Task.RunnerType.APPIUM_MONKEY, appiumMonkeyRunner); |
| 77 | + |
| 78 | + T2CRunner t2cRunner = new T2CRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService, |
122 | 79 | agentName); |
123 | | - } |
| 80 | + testRunnerManager.addRunEngine(Task.RunnerType.T2C_JSON, t2cRunner); |
124 | 81 |
|
125 | | - @Bean |
126 | | - public XCTestRunner xctestRunner(AgentManagementService agentManagementService, |
127 | | - TestTaskEngineService testTaskEngineService, |
128 | | - TestRunDeviceOrchestrator testRunDeviceOrchestrator, |
129 | | - PerformanceTestManagementService performanceTestManagementService) { |
130 | | - return new XCTestRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService); |
131 | | - } |
| 82 | + XCTestRunner
8E66
xctestRunner = new XCTestRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService); |
| 83 | + testRunnerManager.addRunEngine(Task.RunnerType.XCTEST, xctestRunner); |
132 | 84 |
|
133 | | - @Bean |
134 | | - public MaestroRunner maestroRunner(AgentManagementService agentManagementService, |
135 | | - TestTaskEngineService testTaskEngineService, |
136 | | - TestRunDeviceOrchestrator testRunDeviceOrchestrator, |
137 | | - PerformanceTestManagementService performanceTestManagementService) { |
138 | | - return new MaestroRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService); |
| 85 | + MaestroRunner maestroRunner = new MaestroRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService); |
| 86 | + testRunnerManager.addRunEngine(Task.RunnerType.MAESTRO, maestroRunner); |
| 87 | + |
| 88 | + PythonRunner pythonRunner = new PythonRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService); |
| 89 | + testRunnerManager.addRunEngine(Task.RunnerType.PYTHON, pythonRunner); |
| 90 | + |
| 91 | + APKScanner apkScanner = new APKScanner(agentManagementService, testTaskEngineService, isAnalysisEnabled); |
| 92 | + testRunnerManager.addRunEngine(Task.RunnerType.APK_SCANNER, apkScanner); |
| 93 | + |
| 94 | + return testRunnerManager; |
139 | 95 | } |
140 | 96 |
|
141 | 97 | @Bean |
142 | | - public PythonRunner pythonRunner(AgentManagementService agentManagementService, |
143 | | - TestTaskEngineService testTaskEngineService, |
144 | | - TestRunDeviceOrchestrator testRunDeviceOrchestrator, |
145 | | - PerformanceTestManagementService performanceTestManagementService) { |
146 | | - return new PythonRunner(agentManagementService, testTaskEngineService, testRunDeviceOrchestrator, performanceTestManagementService); |
| 98 | + public PerformanceTestManagementService performanceTestManagementService() { |
| 99 | + PerformanceTestManagementService performanceTestManagementService = new PerformanceTestManagementService(); |
| 100 | + performanceTestManagementService.initialize(); |
| 101 | + return performanceTestManagementService; |
147 | 102 | } |
148 | 103 |
|
149 | 104 | @ConfigurationProperties(prefix = "app.device-script.commands") |
|
0 commit comments