fix: 增加对 HarmonyOS 脚本的支持

hz_1122
陈剑峰 2025-05-16 10:32:09 +08:00
parent 974ef9cf1a
commit b539f46899
8 changed files with 37 additions and 13 deletions

View File

@ -499,6 +499,7 @@ public class AtuPlanInfoApiServiceImpl extends AbstractExcelService<AtuPlanInfo>
idList.add(one.getScriptId());
if (one.getScriptType().equals(PlanConstant.SCRIPT_TYPE_ANDROID) ||
one.getScriptType().equals(PlanConstant.SCRIPT_TYPE_IOS) ||
one.getScriptType().equals(PlanConstant.SCRIPT_TYPE_HARMONY) ||
one.getScriptType().equals(PlanConstant.SCRIPT_TYPE_SCENE)){
isMobile.set(true);
}

View File

@ -205,7 +205,8 @@ public class AtuPlanSceneCaseTaskApiServiceImpl implements AtuPlanSceneCaseTaskA
// 记录性能数据
if (PlanConstant.SCRIPT_TYPE_ANDROID.equals(planSceneCaseTask.getNodeType())
|| PlanConstant.SCRIPT_TYPE_IOS.equals(planSceneCaseTask.getNodeType())) {
|| PlanConstant.SCRIPT_TYPE_IOS.equals(planSceneCaseTask.getNodeType())
|| PlanConstant.SCRIPT_TYPE_HARMONY.equals(planSceneCaseTask.getNodeType())) {
logger.debug("处理场景移动端性能文件数据");
planSceneCaseTask.setPerDataPath(parseMobilePerformanceFile(taskExecResult));
}

View File

@ -564,6 +564,7 @@ public class AtuPlanTaskApiServiceImpl extends AbstractExcelService<AtuPlanTask>
break;
case PlanConstant.SCRIPT_TYPE_ANDROID:
case PlanConstant.SCRIPT_TYPE_IOS:
case PlanConstant.SCRIPT_TYPE_HARMONY:
batchDeviceLink.setDeviceType(PlanConstant.DEVICE_TYPE_MOBILE);
break;
}

View File

@ -148,7 +148,8 @@ public class TaskExecResultConsumer {
}
if (PlanConstant.SCRIPT_TYPE_ANDROID.equals(planTask.getCaseType())
|| PlanConstant.SCRIPT_TYPE_IOS.equals(planTask.getCaseType())) {
|| PlanConstant.SCRIPT_TYPE_IOS.equals(planTask.getCaseType())
|| PlanConstant.SCRIPT_TYPE_HARMONY.equals(planTask.getCaseType())) {
logger.debug("处理移动端性能文件数据");
planTask.setPerDataPath(sceneCaseTaskApiService.parseMobilePerformanceFile(taskExecResult));
}

View File

@ -267,7 +267,9 @@ public class AtuScriptInfoApiServiceImpl extends AbstractExcelService<AtuScriptI
}
String scriptType = script.getScriptType();
FileBusinessTypeEnum businessCode = null;
if (scriptType.equals(SCRIPT_TYPE_ANDROID) || scriptType.equals(SCRIPT_TYPE_IOS)) {
if (scriptType.equals(SCRIPT_TYPE_ANDROID)
|| scriptType.equals(SCRIPT_TYPE_IOS)
|| scriptType.equals(SCRIPT_TYPE_HARMONY) ) {
businessCode = FileBusinessTypeEnum.MOBILE_RECORD_SCREENSHOT;
} else if (scriptType.equals(SCRIPT_TYPE_BS) || scriptType.equals(SCRIPT_TYPE_CS)) {
businessCode = FileBusinessTypeEnum.PC_RECORD_SCREENSHOT;
@ -386,7 +388,9 @@ public class AtuScriptInfoApiServiceImpl extends AbstractExcelService<AtuScriptI
// 关联截图文件
String scriptType = script.getScriptType();
FileBusinessTypeEnum businessCode = null;
if (scriptType.equals(SCRIPT_TYPE_ANDROID) || scriptType.equals(SCRIPT_TYPE_IOS)) {
if (scriptType.equals(SCRIPT_TYPE_ANDROID)
|| scriptType.equals(SCRIPT_TYPE_IOS)
|| scriptType.equals(SCRIPT_TYPE_HARMONY)) {
businessCode = FileBusinessTypeEnum.MOBILE_RECORD_SCREENSHOT;
} else if (scriptType.equals(SCRIPT_TYPE_BS) || scriptType.equals(SCRIPT_TYPE_CS)) {
businessCode = FileBusinessTypeEnum.PC_RECORD_SCREENSHOT;
@ -546,7 +550,9 @@ public class AtuScriptInfoApiServiceImpl extends AbstractExcelService<AtuScriptI
script.setUpdatedBy(NKSecurityContext.getUserId());
String scriptType = script.getScriptType();
FileBusinessTypeEnum businessCode = null;
if (scriptType.equals(SCRIPT_TYPE_ANDROID) || scriptType.equals(SCRIPT_TYPE_IOS)) {
if (scriptType.equals(SCRIPT_TYPE_ANDROID)
|| scriptType.equals(SCRIPT_TYPE_IOS)
|| scriptType.equals(SCRIPT_TYPE_HARMONY)) {
businessCode = FileBusinessTypeEnum.MOBILE_RECORD_SCREENSHOT;
} else if (scriptType.equals(SCRIPT_TYPE_BS) || scriptType.equals(SCRIPT_TYPE_CS)) {
businessCode = FileBusinessTypeEnum.PC_RECORD_SCREENSHOT;
@ -669,7 +675,9 @@ public class AtuScriptInfoApiServiceImpl extends AbstractExcelService<AtuScriptI
// 关联截图文件
String scriptType = script.getScriptType();
FileBusinessTypeEnum businessCode = null;
if (scriptType.equals(SCRIPT_TYPE_ANDROID) || scriptType.equals(SCRIPT_TYPE_IOS)) {
if (scriptType.equals(SCRIPT_TYPE_ANDROID)
|| scriptType.equals(SCRIPT_TYPE_IOS)
|| scriptType.equals(SCRIPT_TYPE_HARMONY)) {
businessCode = FileBusinessTypeEnum.MOBILE_RECORD_SCREENSHOT;
} else if (scriptType.equals(SCRIPT_TYPE_BS) || scriptType.equals(SCRIPT_TYPE_CS)) {
businessCode = FileBusinessTypeEnum.PC_RECORD_SCREENSHOT;
@ -1063,7 +1071,9 @@ public class AtuScriptInfoApiServiceImpl extends AbstractExcelService<AtuScriptI
AtuScriptVersion newVersion = generateScriptVersion(newScript);
String scriptType = script.getScriptType();
FileBusinessTypeEnum businessCode = null;
if (scriptType.equals(SCRIPT_TYPE_ANDROID) || scriptType.equals(SCRIPT_TYPE_IOS)) {
if (scriptType.equals(SCRIPT_TYPE_ANDROID)
|| scriptType.equals(SCRIPT_TYPE_IOS)
|| scriptType.equals(SCRIPT_TYPE_HARMONY)) {
businessCode = FileBusinessTypeEnum.MOBILE_RECORD_SCREENSHOT;
} else if (scriptType.equals(SCRIPT_TYPE_BS) || scriptType.equals(SCRIPT_TYPE_CS)) {
businessCode = FileBusinessTypeEnum.PC_RECORD_SCREENSHOT;
@ -1743,7 +1753,9 @@ public class AtuScriptInfoApiServiceImpl extends AbstractExcelService<AtuScriptI
JSONObject jsonObject = JSON.parseObject(copyScriptStr, JSONObject.class);
String scriptType = autoScript.getScriptType();
FileBusinessTypeEnum businessCode = null;
if (scriptType.equals(SCRIPT_TYPE_ANDROID) || scriptType.equals(SCRIPT_TYPE_IOS)) {
if (scriptType.equals(SCRIPT_TYPE_ANDROID)
|| scriptType.equals(SCRIPT_TYPE_IOS)
|| scriptType.equals(SCRIPT_TYPE_HARMONY)) {
businessCode = FileBusinessTypeEnum.MOBILE_RECORD_SCREENSHOT;
} else if (scriptType.equals(SCRIPT_TYPE_BS) || scriptType.equals(SCRIPT_TYPE_CS)) {
businessCode = FileBusinessTypeEnum.PC_RECORD_SCREENSHOT;

View File

@ -710,7 +710,8 @@ public class AtuCaseDataSetApiServiceImpl extends AbstractExcelService<AtuCaseDa
//场景脚本
sceneList.add(one.getScriptId());
} else if (one.getScriptType().equals(ScriptConstant.SCRIPT_TYPE_ANDROID)
|| one.getScriptType().equals(ScriptConstant.SCRIPT_TYPE_IOS)) {
|| one.getScriptType().equals(ScriptConstant.SCRIPT_TYPE_IOS)
|| one.getScriptType().equals(ScriptConstant.SCRIPT_TYPE_HARMONY)) {
//安卓 IOS脚本
scriptSet.add(one.getScriptId());
}

View File

@ -169,7 +169,8 @@ public class SceneCoordinatorService {
reqNodeInfoDto.nodeInfo.setCaseParam(CaseParamMap);
reqNodeInfoDto.nodeInfo.setNodeType(convertNodeType(nextNode.get().getNodeType()));
if (ScriptConstant.NODE_TYPE_ANDROID.equals(nextNode.get().getNodeType()) ||
ScriptConstant.NODE_TYPE_IOS.equals(nextNode.get().getNodeType())) {
ScriptConstant.NODE_TYPE_IOS.equals(nextNode.get().getNodeType()) ||
ScriptConstant.NODE_TYPE_HARMONY.equals(nextNode.get().getNodeType())) {
SceneNodeInfoDto dto = GetOneNodeInfo(nextNode.get());
if (dto != null) {
reqNodeInfoDto.nodeInfo.setAppPackage(dto.getAppPackage());
@ -275,7 +276,8 @@ public class SceneCoordinatorService {
return ScriptConstant.SCRIPT_TYPE_ANDROID;
else if (ScriptConstant.NODE_TYPE_IOS.equals(nodeType))
return ScriptConstant.SCRIPT_TYPE_IOS;
else if (ScriptConstant.NODE_TYPE_HARMONY.equals(nodeType))
return ScriptConstant.SCRIPT_TYPE_HARMONY;
logger.debug("无效的节点类型nodeType=" + nodeType);
return "";
}
@ -596,7 +598,9 @@ public class SceneCoordinatorService {
reqNodeInfoDto.nodeInfo.setCaseParam(CaseParamMap);
reqNodeInfoDto.nodeInfo.setNodeType(convertNodeType(nextNode.getNodeType()));
if (ScriptConstant.NODE_TYPE_ANDROID.equals(nextNode.getNodeType()) || ScriptConstant.NODE_TYPE_IOS.equals(nextNode.getNodeType())) {
if (ScriptConstant.NODE_TYPE_ANDROID.equals(nextNode.getNodeType())
|| ScriptConstant.NODE_TYPE_IOS.equals(nextNode.getNodeType())
|| ScriptConstant.NODE_TYPE_HARMONY.equals(nextNode.getNodeType())) {
SceneNodeInfoDto dto = GetOneNodeInfo(nextNode);
if (dto != null) {
reqNodeInfoDto.nodeInfo.setPlatformType(dto.getPlatform());
@ -690,7 +694,9 @@ public class SceneCoordinatorService {
dto.setAppPackage("");
dto.setPlatform("");
logger.debug("场景脚本节点信息 SceneNodeInfoDto:{}, scriptId:{}", dto, n.getScriptId());
if (ScriptConstant.NODE_TYPE_ANDROID.equals(n.getNodeType()) || ScriptConstant.NODE_TYPE_IOS.equals(n.getNodeType())) {
if (ScriptConstant.NODE_TYPE_ANDROID.equals(n.getNodeType())
|| ScriptConstant.NODE_TYPE_IOS.equals(n.getNodeType())
|| ScriptConstant.NODE_TYPE_HARMONY.equals(n.getNodeType())) {
AtuScriptInfo appScriptInfo = atuScriptInfoService.findByPrimaryKey(n.getScriptId());
if (appScriptInfo == null) {
logger.error("查询移动端脚本不存在.脚本Id:{}, 脚本名:{}", n.getScriptId(), n.getScriptName());

View File

@ -353,5 +353,6 @@ public class ScriptConstant {
public static final String NODE_TYPE_PCCS = "pccs";
public static final String NODE_TYPE_ANDROID = "andrio";
public static final String NODE_TYPE_IOS = "ios";
public static final String NODE_TYPE_HARMONY = "harmony";
}