场景执行bug修改

This commit is contained in:
2025-05-12 10:11:05 +08:00
parent c99f639976
commit 78cb16fd19

View File

@@ -94,9 +94,12 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
//创建报告步骤表 //创建报告步骤表
createSceneStepsReport(orderNumber, step, reportId); createSceneStepsReport(orderNumber, step, reportId);
} }
System.setProperty("webdriver.chrome.driver", chromeDriverPath);
WebDriver driver = new ChromeDriver();
SeleniumUtils seleniumUtils = new SeleniumUtils(driver);
try { try {
// 3. 执行所有步骤 // 3. 执行所有步骤
executeAllSteps(steps, reportId); executeAllSteps(steps, reportId,seleniumUtils);
log.info("场景执行成功: {}", automationId); log.info("场景执行成功: {}", automationId);
uiReport.setConsoleStr("OK"); uiReport.setConsoleStr("OK");
uiReport.setStatus(3); uiReport.setStatus(3);
@@ -136,7 +139,8 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
try { try {
List<AssertionReportVO> assertions = gson.fromJson( List<AssertionReportVO> assertions = gson.fromJson(
assertionJson, assertionJson,
new TypeToken<List<AssertionReportVO>>(){}.getType() new TypeToken<List<AssertionReportVO>>() {
}.getType()
); );
int stepAssertionCount = assertions.size(); int stepAssertionCount = assertions.size();
int stepSuccessCount = (int) assertions.stream() int stepSuccessCount = (int) assertions.stream()
@@ -171,6 +175,9 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
); );
if (1 == uiReport.getStatus()){
uiReport.setStatus(4);
}
uiReportService.updateUiReport(uiReport); uiReportService.updateUiReport(uiReport);
//修改ui_automation //修改ui_automation
@@ -184,6 +191,9 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
uiAutomation1.setPassRate(stepsSucceedNumber == 0 ? "0%" : uiAutomation1.setPassRate(stepsSucceedNumber == 0 ? "0%" :
String.format("%.2f%%", (double) stepsSucceedNumber / steps.size() * 100)); String.format("%.2f%%", (double) stepsSucceedNumber / steps.size() * 100));
uiAutomationMapper.updateUiAutomation(uiAutomation1); uiAutomationMapper.updateUiAutomation(uiAutomation1);
//关闭浏览器
seleniumUtils.quit();
} }
return result; return result;
} }
@@ -196,7 +206,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
*/ */
private List<UiSceneSteps> validateAndGetSteps(Long automationId) { private List<UiSceneSteps> validateAndGetSteps(Long automationId) {
List<UiSceneSteps> steps = uiSceneStepsMapper.selectUiSceneStepsById(automationId); List<UiSceneSteps> steps = uiSceneStepsMapper.selectUiSceneStepsById(automationId);
steps = steps.stream().filter(e -> e.getIsDisabled() == 0).collect(Collectors.toList()); steps = steps.stream().filter(e -> 0 == e.getIsDisabled() ).collect(Collectors.toList());
if (CollectionUtils.isEmpty(steps)) { if (CollectionUtils.isEmpty(steps)) {
throw new IllegalArgumentException("步骤不能为空"); throw new IllegalArgumentException("步骤不能为空");
} }
@@ -230,10 +240,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
* *
* @param steps * @param steps
*/ */
private void executeAllSteps(List<UiSceneSteps> steps, Long reportId) { private void executeAllSteps(List<UiSceneSteps> steps, Long reportId,SeleniumUtils seleniumUtils) {
System.setProperty("webdriver.chrome.driver", chromeDriverPath);
WebDriver driver = new ChromeDriver();
SeleniumUtils seleniumUtils = new SeleniumUtils(driver);
Integer orderNumber = 0; Integer orderNumber = 0;
UiSceneStepsReport uiSceneStepsReport = new UiSceneStepsReport(); UiSceneStepsReport uiSceneStepsReport = new UiSceneStepsReport();
uiSceneStepsReport.setReportId(reportId); uiSceneStepsReport.setReportId(reportId);
@@ -249,7 +256,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
executeSingleStep(step, seleniumUtils, uiSceneStepsReports.get(0).getId(), uiHighSettingVOList); executeSingleStep(step, seleniumUtils, uiSceneStepsReports.get(0).getId(), uiHighSettingVOList);
} }
//关闭浏览器 //关闭浏览器
seleniumUtils.quit(); // seleniumUtils.quit();
} }
private void executeSingleStep(UiSceneSteps step, SeleniumUtils seleniumUtils, private void executeSingleStep(UiSceneSteps step, SeleniumUtils seleniumUtils,
@@ -300,7 +307,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
execution, uiHighSettingVOList); execution, uiHighSettingVOList);
if (!shouldContinue) { if (!shouldContinue) {
//关闭浏览器 //关闭浏览器
seleniumUtils.quit(); // seleniumUtils.quit();
throw new IllegalArgumentException("步骤执行失败,根据设置终止场景执行"); throw new IllegalArgumentException("步骤执行失败,根据设置终止场景执行");
} }
} }
@@ -433,8 +440,6 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
} }
/** /**
* 提取前置操作 * 提取前置操作
* *
@@ -443,12 +448,13 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
*/ */
private List<UiHighSettingVO> extractbeforeSetting(List<UiHighSettingVO> settings) { private List<UiHighSettingVO> extractbeforeSetting(List<UiHighSettingVO> settings) {
return settings.stream() return settings.stream()
.filter(e -> "1".equals(e.getSettingType()) && e.getIsDisabled() == 0) .filter(e -> "1".equals(e.getSettingType()) && 0 == e.getIsDisabled() )
.collect(Collectors.toList()); // 返回默认设置 .collect(Collectors.toList()); // 返回默认设置
} }
/** /**
* 断言 * 断言
*
* @param settingList * @param settingList
* @param seleniumUtils * @param seleniumUtils
* @return * @return
@@ -565,6 +571,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
/** /**
* 处理元素断言 * 处理元素断言
*
* @param assertionQO 断言配置 * @param assertionQO 断言配置
* @param seleniumUtils Selenium工具类 * @param seleniumUtils Selenium工具类
* @param report 断言报告 * @param report 断言报告
@@ -728,6 +735,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
/** /**
* 处理下拉框断言 * 处理下拉框断言
*
* @param assertionQO 断言配置 * @param assertionQO 断言配置
* @param seleniumUtils Selenium工具类 * @param seleniumUtils Selenium工具类
* @param report 断言报告 * @param report 断言报告
@@ -826,6 +834,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
/** /**
* 处理网页标题断言 * 处理网页标题断言
*
* @param assertionQO 断言配置 * @param assertionQO 断言配置
* @param seleniumUtils Selenium工具类 * @param seleniumUtils Selenium工具类
* @param report 断言报告 * @param report 断言报告
@@ -859,6 +868,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
/** /**
* 获取数据提取集合 * 获取数据提取集合
*
* @param settingList * @param settingList
* @return * @return
*/ */
@@ -900,6 +910,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
/** /**
* 获取数据提取集合具体实现 * 获取数据提取集合具体实现
*
* @param extraction * @param extraction
* @param seleniumUtils * @param seleniumUtils
* @return * @return
@@ -945,7 +956,6 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
} }
/** /**
* 获取(前置//后置)等待时间 * 获取(前置//后置)等待时间
* *
@@ -978,7 +988,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
*/ */
private List<UiHighSettingVO> extractafterSetting(List<UiHighSettingVO> settings) { private List<UiHighSettingVO> extractafterSetting(List<UiHighSettingVO> settings) {
return settings.stream() return settings.stream()
.filter(e -> "2".equals(e.getSettingType()) && e.getIsDisabled() == 0) .filter(e -> "2".equals(e.getSettingType()) &&0 == e.getIsDisabled())
.collect(Collectors.toList()); // 返回默认设置 .collect(Collectors.toList()); // 返回默认设置
} }
@@ -990,7 +1000,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
*/ */
private UiHighSettingVO extractErrorSetting(List<UiHighSettingVO> settings) { private UiHighSettingVO extractErrorSetting(List<UiHighSettingVO> settings) {
return settings.stream() return settings.stream()
.filter(e -> "3".equals(e.getSettingType()) && e.getIsDisabled() == 0) .filter(e -> "3".equals(e.getSettingType()))
.findFirst() .findFirst()
.orElse(new UiHighSettingVO()); // 返回默认设置 .orElse(new UiHighSettingVO()); // 返回默认设置
} }
@@ -1004,7 +1014,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
*/ */
private UiHighSettingVO extractOtherSetting(List<UiHighSettingVO> settings) { private UiHighSettingVO extractOtherSetting(List<UiHighSettingVO> settings) {
return settings.stream() return settings.stream()
.filter(e -> "4".equals(e.getSettingType()) && e.getIsDisabled() == 0) .filter(e -> "4".equals(e.getSettingType()))
.findFirst() .findFirst()
.orElse(new UiHighSettingVO()); // 返回默认设置 .orElse(new UiHighSettingVO()); // 返回默认设置
} }
@@ -1020,7 +1030,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
*/ */
private void openWebPage(UiSceneSteps step, SeleniumUtils seleniumUtils) { private void openWebPage(UiSceneSteps step, SeleniumUtils seleniumUtils) {
//追加页面在新的页面打开url不勾选覆盖当前url 0不追加 1追加 //追加页面在新的页面打开url不勾选覆盖当前url 0不追加 1追加
Integer isAppendPage = step.getIsAppendPage(); // 0=当前页1=新标签页 Integer isAppendPage = step.getIsAppendPage() == null ? 0 : step.getIsAppendPage(); // 0=当前页1=新标签页
String url = step.getUrl(); String url = step.getUrl();
log.info("打开网页:{}, 模式:{}", url, isAppendPage == 1 ? "新标签页" : "当前页"); log.info("打开网页:{}, 模式:{}", url, isAppendPage == 1 ? "新标签页" : "当前页");
if (isAppendPage != null && isAppendPage == 1) { if (isAppendPage != null && isAppendPage == 1) {
@@ -1494,6 +1504,4 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
} }
} }