Merge branch 'master' of https://github.com/metersphere/metersphere
This commit is contained in:
commit
dcc8e2c609
|
@ -88,6 +88,12 @@ public class ApiDefinitionExecResultService {
|
||||||
* @param type
|
* @param type
|
||||||
*/
|
*/
|
||||||
public void saveApiResultByScheduleTask(TestResult result, String type) {
|
public void saveApiResultByScheduleTask(TestResult result, String type) {
|
||||||
|
String saveResultType = type;
|
||||||
|
if(StringUtils.equalsAny(ApiRunMode.SCHEDULE_API_PLAN.name(),saveResultType)){
|
||||||
|
saveResultType = ApiRunMode.API_PLAN.name();
|
||||||
|
}
|
||||||
|
|
||||||
|
String finalSaveResultType = saveResultType;
|
||||||
result.getScenarios().get(0).getRequestResults().forEach(item -> {
|
result.getScenarios().get(0).getRequestResults().forEach(item -> {
|
||||||
ApiDefinitionExecResult saveResult = new ApiDefinitionExecResult();
|
ApiDefinitionExecResult saveResult = new ApiDefinitionExecResult();
|
||||||
saveResult.setId(UUID.randomUUID().toString());
|
saveResult.setId(UUID.randomUUID().toString());
|
||||||
|
@ -98,7 +104,7 @@ public class ApiDefinitionExecResultService {
|
||||||
saveResult.setStartTime(item.getStartTime());
|
saveResult.setStartTime(item.getStartTime());
|
||||||
String status = item.isSuccess() ? "success" : "error";
|
String status = item.isSuccess() ? "success" : "error";
|
||||||
saveResult.setEndTime(item.getResponseResult().getResponseTime());
|
saveResult.setEndTime(item.getResponseResult().getResponseTime());
|
||||||
saveResult.setType(type);
|
saveResult.setType(finalSaveResultType);
|
||||||
saveResult.setStatus(status);
|
saveResult.setStatus(status);
|
||||||
|
|
||||||
String userID = null;
|
String userID = null;
|
||||||
|
@ -107,6 +113,7 @@ public class ApiDefinitionExecResultService {
|
||||||
String scheduleCreateUser = testPlanService.findScheduleCreateUserById(apiCase.getTestPlanId());
|
String scheduleCreateUser = testPlanService.findScheduleCreateUserById(apiCase.getTestPlanId());
|
||||||
userID = scheduleCreateUser;
|
userID = scheduleCreateUser;
|
||||||
apiCase.setStatus(status);
|
apiCase.setStatus(status);
|
||||||
|
apiCase.setUpdateTime(System.currentTimeMillis());
|
||||||
testPlanApiCaseService.updateByPrimaryKeySelective(apiCase);
|
testPlanApiCaseService.updateByPrimaryKeySelective(apiCase);
|
||||||
} else {
|
} else {
|
||||||
userID = Objects.requireNonNull(SessionUtils.getUser()).getId();
|
userID = Objects.requireNonNull(SessionUtils.getUser()).getId();
|
||||||
|
|
|
@ -27,25 +27,23 @@ import java.util.*;
|
||||||
*/
|
*/
|
||||||
public class TestPlanTestJob extends MsScheduleJob {
|
public class TestPlanTestJob extends MsScheduleJob {
|
||||||
private String projectID;
|
private String projectID;
|
||||||
private Map<String,String> planScenarioIdMap;
|
|
||||||
private Map<String,String> apiTestCaseIdMap;
|
|
||||||
private Map<String,String> performanceIdMap;
|
|
||||||
|
|
||||||
private PerformanceTestService performanceTestService;
|
|
||||||
private TestPlanScenarioCaseService testPlanScenarioCaseService;
|
// private PerformanceTestService performanceTestService;
|
||||||
private TestPlanApiCaseService testPlanApiCaseService;
|
// private TestPlanScenarioCaseService testPlanScenarioCaseService;
|
||||||
private ApiTestCaseService apiTestCaseService;
|
// private TestPlanApiCaseService testPlanApiCaseService;
|
||||||
private TestPlanReportService testPlanReportService;
|
// private ApiTestCaseService apiTestCaseService;
|
||||||
private TestPlanLoadCaseService testPlanLoadCaseService;
|
// private TestPlanReportService testPlanReportService;
|
||||||
|
// private TestPlanLoadCaseService testPlanLoadCaseService;
|
||||||
private TestPlanService testPlanService;
|
private TestPlanService testPlanService;
|
||||||
|
|
||||||
public TestPlanTestJob() {
|
public TestPlanTestJob() {
|
||||||
this.performanceTestService = CommonBeanFactory.getBean(PerformanceTestService.class);
|
// this.performanceTestService = CommonBeanFactory.getBean(PerformanceTestService.class);
|
||||||
this.testPlanScenarioCaseService = CommonBeanFactory.getBean(TestPlanScenarioCaseService.class);
|
// this.testPlanScenarioCaseService = CommonBeanFactory.getBean(TestPlanScenarioCaseService.class);
|
||||||
this.testPlanApiCaseService = CommonBeanFactory.getBean(TestPlanApiCaseService.class);
|
// this.testPlanApiCaseService = CommonBeanFactory.getBean(TestPlanApiCaseService.class);
|
||||||
this.apiTestCaseService = CommonBeanFactory.getBean(ApiTestCaseService.class);
|
// this.apiTestCaseService = CommonBeanFactory.getBean(ApiTestCaseService.class);
|
||||||
this.testPlanReportService = CommonBeanFactory.getBean(TestPlanReportService.class);
|
// this.testPlanReportService = CommonBeanFactory.getBean(TestPlanReportService.class);
|
||||||
this.testPlanLoadCaseService = CommonBeanFactory.getBean(TestPlanLoadCaseService.class);
|
// this.testPlanLoadCaseService = CommonBeanFactory.getBean(TestPlanLoadCaseService.class);
|
||||||
this.testPlanService = CommonBeanFactory.getBean(TestPlanService.class);
|
this.testPlanService = CommonBeanFactory.getBean(TestPlanService.class);
|
||||||
|
|
||||||
|
|
||||||
|
@ -67,100 +65,14 @@ public class TestPlanTestJob extends MsScheduleJob {
|
||||||
this.expression = jobDataMap.getString("expression");
|
this.expression = jobDataMap.getString("expression");
|
||||||
this.projectID = jobDataMap.getString("projectId");
|
this.projectID = jobDataMap.getString("projectId");
|
||||||
|
|
||||||
planScenarioIdMap = new LinkedHashMap<>();
|
|
||||||
apiTestCaseIdMap = new LinkedHashMap<>();
|
|
||||||
performanceIdMap = new LinkedHashMap<>();
|
|
||||||
|
|
||||||
List<TestPlanApiScenario> testPlanApiScenarioList = testPlanScenarioCaseService.getCasesByPlanId(this.resourceId);
|
|
||||||
for (TestPlanApiScenario model :testPlanApiScenarioList) {
|
|
||||||
planScenarioIdMap.put(model.getApiScenarioId(),model.getId());
|
|
||||||
}
|
|
||||||
List<TestPlanApiCase> testPlanApiCaseList = testPlanApiCaseService.getCasesByPlanId(this.resourceId);
|
|
||||||
for (TestPlanApiCase model :
|
|
||||||
testPlanApiCaseList) {
|
|
||||||
apiTestCaseIdMap.put(model.getApiCaseId(),model.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
LoadCaseRequest loadCaseRequest = new LoadCaseRequest();
|
|
||||||
loadCaseRequest.setTestPlanId(this.resourceId);
|
|
||||||
loadCaseRequest.setProjectId(this.projectID);
|
|
||||||
List<TestPlanLoadCaseDTO> testPlanLoadCaseDTOList = testPlanLoadCaseService.list(loadCaseRequest);
|
|
||||||
for (TestPlanLoadCaseDTO dto : testPlanLoadCaseDTOList) {
|
|
||||||
performanceIdMap.put(dto.getId(),dto.getLoadCaseId());
|
|
||||||
}
|
|
||||||
|
|
||||||
businessExecute(context);
|
businessExecute(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void businessExecute(JobExecutionContext context) {
|
void businessExecute(JobExecutionContext context) {
|
||||||
LogUtil.info("-------------- start testplan schedule ----------");
|
testPlanService.run(this.resourceId,this.projectID,this.userId,ReportTriggerMode.SCHEDULE.name());
|
||||||
//首先创建testPlanReport,然后返回的ID重新赋值为resourceID,作为后续的参数
|
|
||||||
TestPlanReport testPlanReport = testPlanReportService.genTestPlanReport(this.resourceId,this.userId,ReportTriggerMode.SCHEDULE.name());
|
|
||||||
//执行接口案例任务
|
|
||||||
for (Map.Entry<String,String> entry: this.apiTestCaseIdMap.entrySet()) {
|
|
||||||
String apiCaseID = entry.getKey();
|
|
||||||
String planCaseID = entry.getValue();
|
|
||||||
ApiTestCaseWithBLOBs blobs = apiTestCaseService.get(apiCaseID);
|
|
||||||
//需要更新这里来保证PlanCase的状态能正常更改
|
|
||||||
apiTestCaseService.run(blobs,UUID.randomUUID().toString(),testPlanReport.getId(),this.resourceId,ApiRunMode.SCHEDULE_API_PLAN.name());
|
|
||||||
}
|
|
||||||
|
|
||||||
//执行场景执行任务
|
|
||||||
if(!planScenarioIdMap.isEmpty()){
|
|
||||||
LogUtil.info("-------------- testplan schedule ---------- api case over -----------------");
|
|
||||||
SchedulePlanScenarioExecuteRequest scenarioRequest = new SchedulePlanScenarioExecuteRequest();
|
|
||||||
String senarionReportID = UUID.randomUUID().toString();
|
|
||||||
scenarioRequest.setId(senarionReportID);
|
|
||||||
scenarioRequest.setReportId(senarionReportID);
|
|
||||||
scenarioRequest.setProjectId(projectID);
|
|
||||||
scenarioRequest.setTriggerMode(ReportTriggerMode.SCHEDULE.name());
|
|
||||||
scenarioRequest.setExecuteType(ExecuteType.Saved.name());
|
|
||||||
Map<String, Map<String,String>> testPlanScenarioIdMap = new HashMap<>();
|
|
||||||
testPlanScenarioIdMap.put(resourceId, this.planScenarioIdMap);
|
|
||||||
scenarioRequest.setTestPlanScenarioIDMap(testPlanScenarioIdMap);
|
|
||||||
scenarioRequest.setReportUserID(this.userId);
|
|
||||||
scenarioRequest.setTestPlanID(this.resourceId);
|
|
||||||
scenarioRequest.setRunMode(ApiRunMode.SCHEDULE_SCENARIO_PLAN.name());
|
|
||||||
scenarioRequest.setTestPlanReportId(testPlanReport.getId());
|
|
||||||
testPlanService.runScenarioCase(scenarioRequest);
|
|
||||||
LogUtil.info("-------------- testplan schedule ---------- scenario case over -----------------");
|
|
||||||
}
|
|
||||||
//执行性能测试任务
|
|
||||||
List<String> performaneReportIDList = new ArrayList<>();
|
|
||||||
for (Map.Entry<String,String> entry: this.performanceIdMap.entrySet()) {
|
|
||||||
String id = entry.getKey();
|
|
||||||
String caseID = entry.getValue();
|
|
||||||
RunTestPlanRequest performanceRequest = new RunTestPlanRequest();
|
|
||||||
performanceRequest.setId(caseID);
|
|
||||||
performanceRequest.setTestPlanLoadId(caseID);
|
|
||||||
performanceRequest.setTriggerMode(ReportTriggerMode.TEST_PLAN_SCHEDULE.name());
|
|
||||||
String reportId = null;
|
|
||||||
try {
|
|
||||||
reportId = performanceTestService.run(performanceRequest);
|
|
||||||
if(reportId!=null){
|
|
||||||
performaneReportIDList.add(reportId);
|
|
||||||
|
|
||||||
TestPlanLoadCase testPlanLoadCase = new TestPlanLoadCase();
|
|
||||||
testPlanLoadCase.setId(performanceRequest.getTestPlanLoadId());
|
|
||||||
testPlanLoadCase.setLoadReportId(reportId);
|
|
||||||
testPlanLoadCaseService.update(testPlanLoadCase);
|
|
||||||
}
|
|
||||||
}catch (Exception e){
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
//更新关联处的报告
|
|
||||||
TestPlanLoadCase loadCase = new TestPlanLoadCaseDTO();
|
|
||||||
loadCase.setId(id);
|
|
||||||
loadCase.setLoadReportId(reportId);
|
|
||||||
testPlanLoadCaseService.update(loadCase);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!performaneReportIDList.isEmpty()){
|
|
||||||
//性能测试时保存性能测试报告ID,在结果返回时用于捕捉并进行
|
|
||||||
testPlanReportService.updatePerformanceInfo(testPlanReport,performaneReportIDList,ReportTriggerMode.SCHEDULE.name());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static JobKey getJobKey(String testId) {
|
public static JobKey getJobKey(String testId) {
|
||||||
|
|
|
@ -362,8 +362,12 @@ public class TestPlanReportService {
|
||||||
testPlan.setStatus(TestPlanStatus.Completed.name());
|
testPlan.setStatus(TestPlanStatus.Completed.name());
|
||||||
testPlanMapper.updateByPrimaryKeySelective(testPlan);
|
testPlanMapper.updateByPrimaryKeySelective(testPlan);
|
||||||
}
|
}
|
||||||
//发送通知
|
|
||||||
sendMessage(report);
|
if(StringUtils.equalsAny(report.getTriggerMode(),ReportTriggerMode.SCHEDULE.name())){
|
||||||
|
//发送通知
|
||||||
|
sendMessage(report);
|
||||||
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -401,11 +405,20 @@ public class TestPlanReportService {
|
||||||
paramMap.put("type", "testPlan");
|
paramMap.put("type", "testPlan");
|
||||||
paramMap.put("url", url);
|
paramMap.put("url", url);
|
||||||
paramMap.put("status", testPlanReport.getStatus());
|
paramMap.put("status", testPlanReport.getStatus());
|
||||||
|
|
||||||
|
String successfulMailTemplate = "";
|
||||||
|
String errfoMailTemplate = "";
|
||||||
|
|
||||||
|
if(StringUtils.equals(testPlanReport.getTriggerMode(),ReportTriggerMode.SCHEDULE.name())){
|
||||||
|
successfulMailTemplate = "TestPlanSuccessfulNotification";
|
||||||
|
errfoMailTemplate = "TestPlanFailedNotification";
|
||||||
|
}
|
||||||
|
|
||||||
NoticeModel noticeModel = NoticeModel.builder()
|
NoticeModel noticeModel = NoticeModel.builder()
|
||||||
.successContext(successContext)
|
.successContext(successContext)
|
||||||
.successMailTemplate("TestPlanSuccessfulNotification")
|
.successMailTemplate(successfulMailTemplate)
|
||||||
.failedContext(failedContext)
|
.failedContext(failedContext)
|
||||||
.failedMailTemplate("TestPlanFailedNotification")
|
.failedMailTemplate(errfoMailTemplate)
|
||||||
.testId(testPlan.getId())
|
.testId(testPlan.getId())
|
||||||
.status(testPlanReport.getStatus())
|
.status(testPlanReport.getStatus())
|
||||||
.event(event)
|
.event(event)
|
||||||
|
|
|
@ -7,16 +7,14 @@ import com.alibaba.fastjson.JSONObject;
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.metersphere.api.dto.automation.ApiScenarioDTO;
|
import io.metersphere.api.dto.automation.*;
|
||||||
import io.metersphere.api.dto.automation.ScenarioStatus;
|
|
||||||
import io.metersphere.api.dto.automation.SchedulePlanScenarioExecuteRequest;
|
|
||||||
import io.metersphere.api.dto.automation.TestPlanScenarioRequest;
|
|
||||||
import io.metersphere.api.dto.definition.ApiTestCaseRequest;
|
import io.metersphere.api.dto.definition.ApiTestCaseRequest;
|
||||||
import io.metersphere.api.dto.definition.TestPlanApiCaseDTO;
|
import io.metersphere.api.dto.definition.TestPlanApiCaseDTO;
|
||||||
import io.metersphere.api.dto.definition.request.*;
|
import io.metersphere.api.dto.definition.request.*;
|
||||||
import io.metersphere.api.dto.definition.request.variable.ScenarioVariable;
|
import io.metersphere.api.dto.definition.request.variable.ScenarioVariable;
|
||||||
import io.metersphere.api.jmeter.JMeterService;
|
import io.metersphere.api.jmeter.JMeterService;
|
||||||
import io.metersphere.api.service.ApiAutomationService;
|
import io.metersphere.api.service.ApiAutomationService;
|
||||||
|
import io.metersphere.api.service.ApiTestCaseService;
|
||||||
import io.metersphere.base.domain.*;
|
import io.metersphere.base.domain.*;
|
||||||
import io.metersphere.base.mapper.*;
|
import io.metersphere.base.mapper.*;
|
||||||
import io.metersphere.base.mapper.ext.*;
|
import io.metersphere.base.mapper.ext.*;
|
||||||
|
@ -28,6 +26,7 @@ import io.metersphere.dto.BaseSystemConfigDTO;
|
||||||
import io.metersphere.i18n.Translator;
|
import io.metersphere.i18n.Translator;
|
||||||
import io.metersphere.notice.sender.NoticeModel;
|
import io.metersphere.notice.sender.NoticeModel;
|
||||||
import io.metersphere.notice.service.NoticeSendService;
|
import io.metersphere.notice.service.NoticeSendService;
|
||||||
|
import io.metersphere.performance.service.PerformanceTestService;
|
||||||
import io.metersphere.service.ScheduleService;
|
import io.metersphere.service.ScheduleService;
|
||||||
import io.metersphere.service.SystemParameterService;
|
import io.metersphere.service.SystemParameterService;
|
||||||
import io.metersphere.track.Factory.ReportComponentFactory;
|
import io.metersphere.track.Factory.ReportComponentFactory;
|
||||||
|
@ -37,6 +36,7 @@ import io.metersphere.track.request.testcase.PlanCaseRelevanceRequest;
|
||||||
import io.metersphere.track.request.testcase.QueryTestPlanRequest;
|
import io.metersphere.track.request.testcase.QueryTestPlanRequest;
|
||||||
import io.metersphere.track.request.testplan.AddTestPlanRequest;
|
import io.metersphere.track.request.testplan.AddTestPlanRequest;
|
||||||
import io.metersphere.track.request.testplan.LoadCaseRequest;
|
import io.metersphere.track.request.testplan.LoadCaseRequest;
|
||||||
|
import io.metersphere.track.request.testplan.RunTestPlanRequest;
|
||||||
import io.metersphere.track.request.testplancase.QueryTestPlanCaseRequest;
|
import io.metersphere.track.request.testplancase.QueryTestPlanCaseRequest;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
@ -109,6 +109,10 @@ public class TestPlanService {
|
||||||
private ExtTestPlanLoadCaseMapper extTestPlanLoadCaseMapper;
|
private ExtTestPlanLoadCaseMapper extTestPlanLoadCaseMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private ExtTestPlanScenarioCaseMapper extTestPlanScenarioCaseMapper;
|
private ExtTestPlanScenarioCaseMapper extTestPlanScenarioCaseMapper;
|
||||||
|
@Resource
|
||||||
|
private ApiTestCaseService apiTestCaseService;
|
||||||
|
@Resource
|
||||||
|
private PerformanceTestService performanceTestService;
|
||||||
|
|
||||||
public synchronized void addTestPlan(AddTestPlanRequest testPlan) {
|
public synchronized void addTestPlan(AddTestPlanRequest testPlan) {
|
||||||
if (getTestPlanByName(testPlan.getName()).size() > 0) {
|
if (getTestPlanByName(testPlan.getName()).size() > 0) {
|
||||||
|
@ -858,4 +862,100 @@ public class TestPlanService {
|
||||||
jMeterService.runDefinition(request.getId(), jmeterHashTree, request.getReportId(), runMode);
|
jMeterService.runDefinition(request.getId(), jmeterHashTree, request.getReportId(), runMode);
|
||||||
return request.getId();
|
return request.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void run(String testPlanID,String projectID,String userId,String triggerMode){
|
||||||
|
Map<String,String> planScenarioIdMap;
|
||||||
|
Map<String,String> apiTestCaseIdMap;
|
||||||
|
Map<String,String> performanceIdMap;
|
||||||
|
|
||||||
|
planScenarioIdMap = new LinkedHashMap<>();
|
||||||
|
apiTestCaseIdMap = new LinkedHashMap<>();
|
||||||
|
performanceIdMap = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
List<TestPlanApiScenario> testPlanApiScenarioList = testPlanScenarioCaseService.getCasesByPlanId(testPlanID);
|
||||||
|
for (TestPlanApiScenario model :testPlanApiScenarioList) {
|
||||||
|
planScenarioIdMap.put(model.getApiScenarioId(),model.getId());
|
||||||
|
}
|
||||||
|
List<TestPlanApiCase> testPlanApiCaseList = testPlanApiCaseService.getCasesByPlanId(testPlanID);
|
||||||
|
for (TestPlanApiCase model :
|
||||||
|
testPlanApiCaseList) {
|
||||||
|
apiTestCaseIdMap.put(model.getApiCaseId(),model.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
LoadCaseRequest loadCaseRequest = new LoadCaseRequest();
|
||||||
|
loadCaseRequest.setTestPlanId(testPlanID);
|
||||||
|
loadCaseRequest.setProjectId(projectID);
|
||||||
|
List<TestPlanLoadCaseDTO> testPlanLoadCaseDTOList = testPlanLoadCaseService.list(loadCaseRequest);
|
||||||
|
for (TestPlanLoadCaseDTO dto : testPlanLoadCaseDTOList) {
|
||||||
|
performanceIdMap.put(dto.getId(),dto.getLoadCaseId());
|
||||||
|
}
|
||||||
|
|
||||||
|
LogUtil.info("-------------- start testplan schedule ----------");
|
||||||
|
TestPlanReportService testPlanReportService = CommonBeanFactory.getBean(TestPlanReportService.class);
|
||||||
|
//首先创建testPlanReport,然后返回的ID重新赋值为resourceID,作为后续的参数
|
||||||
|
TestPlanReport testPlanReport = testPlanReportService.genTestPlanReport(testPlanID,userId,triggerMode);
|
||||||
|
//执行接口案例任务
|
||||||
|
for (Map.Entry<String,String> entry: apiTestCaseIdMap.entrySet()) {
|
||||||
|
String apiCaseID = entry.getKey();
|
||||||
|
String planCaseID = entry.getValue();
|
||||||
|
ApiTestCaseWithBLOBs blobs = apiTestCaseService.get(apiCaseID);
|
||||||
|
//需要更新这里来保证PlanCase的状态能正常更改
|
||||||
|
apiTestCaseService.run(blobs,UUID.randomUUID().toString(),testPlanReport.getId(),testPlanID,ApiRunMode.SCHEDULE_API_PLAN.name());
|
||||||
|
}
|
||||||
|
|
||||||
|
//执行场景执行任务
|
||||||
|
if(!planScenarioIdMap.isEmpty()){
|
||||||
|
LogUtil.info("-------------- testplan schedule ---------- api case over -----------------");
|
||||||
|
SchedulePlanScenarioExecuteRequest scenarioRequest = new SchedulePlanScenarioExecuteRequest();
|
||||||
|
String senarionReportID = UUID.randomUUID().toString();
|
||||||
|
scenarioRequest.setId(senarionReportID);
|
||||||
|
scenarioRequest.setReportId(senarionReportID);
|
||||||
|
scenarioRequest.setProjectId(projectID);
|
||||||
|
scenarioRequest.setTriggerMode(ReportTriggerMode.SCHEDULE.name());
|
||||||
|
scenarioRequest.setExecuteType(ExecuteType.Saved.name());
|
||||||
|
Map<String, Map<String,String>> testPlanScenarioIdMap = new HashMap<>();
|
||||||
|
testPlanScenarioIdMap.put(testPlanID, planScenarioIdMap);
|
||||||
|
scenarioRequest.setTestPlanScenarioIDMap(testPlanScenarioIdMap);
|
||||||
|
scenarioRequest.setReportUserID(userId);
|
||||||
|
scenarioRequest.setTestPlanID(testPlanID);
|
||||||
|
scenarioRequest.setRunMode(ApiRunMode.SCHEDULE_SCENARIO_PLAN.name());
|
||||||
|
scenarioRequest.setTestPlanReportId(testPlanReport.getId());
|
||||||
|
this.runScenarioCase(scenarioRequest);
|
||||||
|
LogUtil.info("-------------- testplan schedule ---------- scenario case over -----------------");
|
||||||
|
}
|
||||||
|
//执行性能测试任务
|
||||||
|
List<String> performaneReportIDList = new ArrayList<>();
|
||||||
|
for (Map.Entry<String,String> entry: performanceIdMap.entrySet()) {
|
||||||
|
String id = entry.getKey();
|
||||||
|
String caseID = entry.getValue();
|
||||||
|
RunTestPlanRequest performanceRequest = new RunTestPlanRequest();
|
||||||
|
performanceRequest.setId(caseID);
|
||||||
|
performanceRequest.setTestPlanLoadId(caseID);
|
||||||
|
performanceRequest.setTriggerMode(ReportTriggerMode.TEST_PLAN_SCHEDULE.name());
|
||||||
|
String reportId = null;
|
||||||
|
try {
|
||||||
|
reportId = performanceTestService.run(performanceRequest);
|
||||||
|
if(reportId!=null){
|
||||||
|
performaneReportIDList.add(reportId);
|
||||||
|
|
||||||
|
TestPlanLoadCase testPlanLoadCase = new TestPlanLoadCase();
|
||||||
|
testPlanLoadCase.setId(performanceRequest.getTestPlanLoadId());
|
||||||
|
testPlanLoadCase.setLoadReportId(reportId);
|
||||||
|
testPlanLoadCaseService.update(testPlanLoadCase);
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
//更新关联处的报告
|
||||||
|
TestPlanLoadCase loadCase = new TestPlanLoadCaseDTO();
|
||||||
|
loadCase.setId(id);
|
||||||
|
loadCase.setLoadReportId(reportId);
|
||||||
|
testPlanLoadCaseService.update(loadCase);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!performaneReportIDList.isEmpty()){
|
||||||
|
//性能测试时保存性能测试报告ID,在结果返回时用于捕捉并进行
|
||||||
|
testPlanReportService.updatePerformanceInfo(testPlanReport,performaneReportIDList,ReportTriggerMode.SCHEDULE.name());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue