From 53d5ccf49ff4c5c39ee3878bd404121cde95bfd6 Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Wed, 9 Nov 2022 13:04:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B5=84=E6=BA=90=E6=B1=A0=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E4=B8=8D=E6=9B=B4=E6=96=B0=E9=80=9A=E8=BF=87=E7=8E=87=E7=9A=84?= =?UTF-8?q?=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/metersphere/api/jmeter/utils/ReportStatusUtil.java | 8 +++++--- .../main/java/io/metersphere/commons/utils/JSONUtil.java | 8 ++++++++ .../service/scenario/ApiScenarioReportService.java | 1 - 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/api-test/backend/src/main/java/io/metersphere/api/jmeter/utils/ReportStatusUtil.java b/api-test/backend/src/main/java/io/metersphere/api/jmeter/utils/ReportStatusUtil.java index f9dabcc15d..1069b02f35 100644 --- a/api-test/backend/src/main/java/io/metersphere/api/jmeter/utils/ReportStatusUtil.java +++ b/api-test/backend/src/main/java/io/metersphere/api/jmeter/utils/ReportStatusUtil.java @@ -2,6 +2,7 @@ package io.metersphere.api.jmeter.utils; import io.metersphere.commons.constants.CommonConstants; import io.metersphere.commons.enums.ApiReportStatus; +import io.metersphere.commons.utils.JSONUtil; import io.metersphere.commons.vo.ResultVO; import io.metersphere.dto.RequestResult; import io.metersphere.dto.ResultDTO; @@ -51,7 +52,8 @@ public class ReportStatusUtil { } if (MapUtils.isNotEmpty(dto.getArbitraryData()) && dto.getArbitraryData().containsKey(CommonConstants.REPORT_STATUS)) { // 资源池执行整体传输失败,单条传输内容,获取资源池执行统计的状态 - resultVO.setStatus(String.valueOf(dto.getArbitraryData().get(CommonConstants.REPORT_STATUS))); + ResultVO o = (ResultVO) dto.getArbitraryData().get(CommonConstants.REPORT_STATUS); + resultVO.setStatus(o.getStatus()); } // 过滤掉重试结果后进行统计 List requestResults = filterRetryResults(dto.getRequestResults()); @@ -84,12 +86,12 @@ public class ReportStatusUtil { ResultVO result = new ResultVO(); if (MapUtils.isNotEmpty(dto.getArbitraryData()) && dto.getArbitraryData().containsKey(CommonConstants.LOCAL_STATUS_KEY)) { // 本地执行状态 - result = (ResultVO) dto.getArbitraryData().get(CommonConstants.LOCAL_STATUS_KEY); + result = JSONUtil.convertValue(dto.getArbitraryData().get(CommonConstants.LOCAL_STATUS_KEY), ResultVO.class); return result; } if (MapUtils.isNotEmpty(dto.getArbitraryData()) && dto.getArbitraryData().containsKey(CommonConstants.REPORT_STATUS)) { // 资源池执行整体传输失败,单条传输内容,获取资源池执行统计的状态 - result = (ResultVO) dto.getArbitraryData().get(CommonConstants.REPORT_STATUS); + result = JSONUtil.convertValue(dto.getArbitraryData().get(CommonConstants.REPORT_STATUS), ResultVO.class); return result; } return getStatus(dto, result); diff --git a/api-test/backend/src/main/java/io/metersphere/commons/utils/JSONUtil.java b/api-test/backend/src/main/java/io/metersphere/commons/utils/JSONUtil.java index e2e43bf7cf..7246e1a101 100644 --- a/api-test/backend/src/main/java/io/metersphere/commons/utils/JSONUtil.java +++ b/api-test/backend/src/main/java/io/metersphere/commons/utils/JSONUtil.java @@ -41,6 +41,14 @@ public class JSONUtil { } } + public static T convertValue(Object content, Class valueType) { + try { + return objectMapper.convertValue(content, valueType); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + public static String toJSONString(Object value) { try { return objectMapper.writeValueAsString(value); diff --git a/api-test/backend/src/main/java/io/metersphere/service/scenario/ApiScenarioReportService.java b/api-test/backend/src/main/java/io/metersphere/service/scenario/ApiScenarioReportService.java index 4fc21e7bad..63d31ce64e 100644 --- a/api-test/backend/src/main/java/io/metersphere/service/scenario/ApiScenarioReportService.java +++ b/api-test/backend/src/main/java/io/metersphere/service/scenario/ApiScenarioReportService.java @@ -426,7 +426,6 @@ public class ApiScenarioReportService { if (scenario != null) { scenario.setLastResult(resultVO.getStatus()); scenario.setPassRate(resultVO.computerPassRate()); - scenario.setPassRate(resultVO.computerPassRate()); scenario.setReportId(dto.getReportId()); int executeTimes = 0; if (scenario.getExecuteTimes() != null) {