Merge branch 'master' of https://github.com/metersphere/server
This commit is contained in:
commit
1f39b8fe4a
|
@ -1,6 +1,6 @@
|
||||||
package io.metersphere.commons.constants;
|
package io.metersphere.commons.constants;
|
||||||
|
|
||||||
public enum ReportKeys {
|
public enum ReportKeys {
|
||||||
LoadChart, ResponseTimeChart, Errors, ErrorsTop5, RequestStatistics, Overview, TimeInfo
|
LoadChart, ResponseTimeChart, Errors, ErrorsTop5, RequestStatistics, Overview, TimeInfo, ResultStatus
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,10 +5,7 @@ import io.metersphere.base.mapper.*;
|
||||||
import io.metersphere.base.mapper.ext.ExtLoadTestMapper;
|
import io.metersphere.base.mapper.ext.ExtLoadTestMapper;
|
||||||
import io.metersphere.base.mapper.ext.ExtLoadTestReportDetailMapper;
|
import io.metersphere.base.mapper.ext.ExtLoadTestReportDetailMapper;
|
||||||
import io.metersphere.base.mapper.ext.ExtLoadTestReportMapper;
|
import io.metersphere.base.mapper.ext.ExtLoadTestReportMapper;
|
||||||
import io.metersphere.commons.constants.APITestStatus;
|
import io.metersphere.commons.constants.*;
|
||||||
import io.metersphere.commons.constants.PerformanceTestStatus;
|
|
||||||
import io.metersphere.commons.constants.ScheduleGroup;
|
|
||||||
import io.metersphere.commons.constants.ScheduleType;
|
|
||||||
import io.metersphere.commons.exception.MSException;
|
import io.metersphere.commons.exception.MSException;
|
||||||
import io.metersphere.commons.utils.LogUtil;
|
import io.metersphere.commons.utils.LogUtil;
|
||||||
import io.metersphere.commons.utils.ServiceUtils;
|
import io.metersphere.commons.utils.ServiceUtils;
|
||||||
|
@ -281,6 +278,13 @@ public class PerformanceTestService {
|
||||||
loadTestReportDetailMapper.insertSelective(reportDetail);
|
loadTestReportDetailMapper.insertSelective(reportDetail);
|
||||||
// append \n
|
// append \n
|
||||||
extLoadTestReportDetailMapper.appendLine(testReport.getId(), "\n");
|
extLoadTestReportDetailMapper.appendLine(testReport.getId(), "\n");
|
||||||
|
// 保存一个 reportStatus
|
||||||
|
LoadTestReportResult reportResult = new LoadTestReportResult();
|
||||||
|
reportResult.setId(UUID.randomUUID().toString());
|
||||||
|
reportResult.setReportId(testReport.getId());
|
||||||
|
reportResult.setReportKey(ReportKeys.ResultStatus.name());
|
||||||
|
reportResult.setReportValue("Ready"); // 初始化一个 result_status, 这个值用在data-streaming中
|
||||||
|
loadTestReportResultMapper.insertSelective(reportResult);
|
||||||
} catch (MSException e) {
|
} catch (MSException e) {
|
||||||
LogUtil.error(e);
|
LogUtil.error(e);
|
||||||
loadTest.setStatus(PerformanceTestStatus.Error.name());
|
loadTest.setStatus(PerformanceTestStatus.Error.name());
|
||||||
|
|
|
@ -25,11 +25,10 @@ import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public class ReportService {
|
public class ReportService {
|
||||||
|
@ -154,11 +153,7 @@ public class ReportService {
|
||||||
public void checkReportStatus(String reportId) {
|
public void checkReportStatus(String reportId) {
|
||||||
LoadTestReport loadTestReport = loadTestReportMapper.selectByPrimaryKey(reportId);
|
LoadTestReport loadTestReport = loadTestReportMapper.selectByPrimaryKey(reportId);
|
||||||
String reportStatus = loadTestReport.getStatus();
|
String reportStatus = loadTestReport.getStatus();
|
||||||
if (StringUtils.equals(PerformanceTestStatus.Running.name(), reportStatus)) {
|
if (StringUtils.equals(PerformanceTestStatus.Error.name(), reportStatus)) {
|
||||||
MSException.throwException("Reporting in progress...");
|
|
||||||
} else if (StringUtils.equals(PerformanceTestStatus.Reporting.name(), reportStatus)) {
|
|
||||||
MSException.throwException("Reporting in progress...");
|
|
||||||
} else if (StringUtils.equals(PerformanceTestStatus.Error.name(), reportStatus)) {
|
|
||||||
MSException.throwException("Report generation error!");
|
MSException.throwException("Report generation error!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
<el-tabs v-model="active" type="border-card" :stretch="true">
|
<el-tabs v-model="active" type="border-card" :stretch="true">
|
||||||
<el-tab-pane :label="$t('report.test_overview')">
|
<el-tab-pane :label="$t('report.test_overview')">
|
||||||
<!-- <ms-report-test-overview :id="reportId" :status="status"/>-->
|
<!-- <ms-report-test-overview :id="reportId" :status="status"/>-->
|
||||||
<ms-report-test-overview :report="report"/>
|
<ms-report-test-overview :report="report"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane :label="$t('report.test_request_statistics')">
|
<el-tab-pane :label="$t('report.test_request_statistics')">
|
||||||
|
@ -114,17 +114,17 @@
|
||||||
if (this.reportId) {
|
if (this.reportId) {
|
||||||
this.result = this.$get("/performance/report/content/report_time/" + this.reportId)
|
this.result = this.$get("/performance/report/content/report_time/" + this.reportId)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
let data = res.data.data;
|
let data = res.data.data;
|
||||||
if (data) {
|
if (data) {
|
||||||
this.startTime = data.startTime;
|
this.startTime = data.startTime;
|
||||||
this.endTime = data.endTime;
|
this.endTime = data.endTime;
|
||||||
let duration = data.duration;
|
let duration = data.duration;
|
||||||
this.minutes = Math.floor(duration / 60);
|
this.minutes = Math.floor(duration / 60);
|
||||||
this.seconds = duration % 60;
|
this.seconds = duration % 60;
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.clearData();
|
this.clearData();
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
checkReportStatus(status) {
|
checkReportStatus(status) {
|
||||||
|
@ -136,11 +136,7 @@
|
||||||
this.$warning(this.$t('report.start_status'));
|
this.$warning(this.$t('report.start_status'));
|
||||||
break;
|
break;
|
||||||
case 'Reporting':
|
case 'Reporting':
|
||||||
this.$info(this.$t('report.being_generated'));
|
|
||||||
break;
|
|
||||||
case 'Running':
|
case 'Running':
|
||||||
this.$warning(this.$t('report.run_status'));
|
|
||||||
break;
|
|
||||||
case 'Completed':
|
case 'Completed':
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -165,7 +161,7 @@
|
||||||
this.$set(this.report, "id", this.reportId);
|
this.$set(this.report, "id", this.reportId);
|
||||||
this.$set(this.report, "status", data.status);
|
this.$set(this.report, "status", data.status);
|
||||||
this.checkReportStatus(data.status);
|
this.checkReportStatus(data.status);
|
||||||
if (this.status === "Completed") {
|
if (this.status === "Completed" || this.status === "Running") {
|
||||||
this.initReportTimeInfo();
|
this.initReportTimeInfo();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -155,7 +155,7 @@
|
||||||
handler(val) {
|
handler(val) {
|
||||||
let status = val.status;
|
let status = val.status;
|
||||||
this.id = val.id;
|
this.id = val.id;
|
||||||
if (status === "Completed") {
|
if (status === "Completed" || status === "Running") {
|
||||||
this.initTableData();
|
this.initTableData();
|
||||||
} else {
|
} else {
|
||||||
this.tableData = [];
|
this.tableData = [];
|
||||||
|
|
|
@ -81,7 +81,7 @@
|
||||||
handler(val) {
|
handler(val) {
|
||||||
let status = val.status;
|
let status = val.status;
|
||||||
this.id = val.id;
|
this.id = val.id;
|
||||||
if (status === "Completed") {
|
if (status === "Completed" || status === "Running") {
|
||||||
this.getResource();
|
this.getResource();
|
||||||
} else {
|
} else {
|
||||||
this.resource = [];
|
this.resource = [];
|
||||||
|
|
|
@ -161,7 +161,7 @@
|
||||||
handler(val){
|
handler(val){
|
||||||
let status = val.status;
|
let status = val.status;
|
||||||
this.id = val.id;
|
this.id = val.id;
|
||||||
if (status === "Completed") {
|
if (status === "Completed" || status === "Running") {
|
||||||
this.initTableData();
|
this.initTableData();
|
||||||
} else {
|
} else {
|
||||||
this.tableData = [];
|
this.tableData = [];
|
||||||
|
|
|
@ -324,10 +324,10 @@
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
report: {
|
report: {
|
||||||
handler(val){
|
handler(val) {
|
||||||
let status = val.status;
|
let status = val.status;
|
||||||
this.id = val.id;
|
this.id = val.id;
|
||||||
if (status === "Completed") {
|
if (status === "Completed" || status === "Running") {
|
||||||
this.initTableData();
|
this.initTableData();
|
||||||
} else {
|
} else {
|
||||||
this.maxUsers = '0';
|
this.maxUsers = '0';
|
||||||
|
@ -340,7 +340,7 @@
|
||||||
this.resOption = {};
|
this.resOption = {};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
deep:true
|
deep: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: ['report']
|
props: ['report']
|
||||||
|
|
|
@ -151,11 +151,7 @@
|
||||||
this.$warning(this.$t('report.start_status'));
|
this.$warning(this.$t('report.start_status'));
|
||||||
break;
|
break;
|
||||||
case 'Reporting':
|
case 'Reporting':
|
||||||
this.$info(this.$t('report.being_generated'));
|
|
||||||
break;
|
|
||||||
case 'Running':
|
case 'Running':
|
||||||
this.$warning(this.$t('report.run_status'));
|
|
||||||
break;
|
|
||||||
case 'Completed':
|
case 'Completed':
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue