fix:添加保存
This commit is contained in:
parent
c0a9dc003d
commit
167dd8d0e8
|
@ -3,16 +3,20 @@ package io.metersphere.api.jmeter;
|
||||||
import io.metersphere.api.service.APIReportService;
|
import io.metersphere.api.service.APIReportService;
|
||||||
import io.metersphere.api.service.APITestService;
|
import io.metersphere.api.service.APITestService;
|
||||||
import io.metersphere.base.domain.ApiTestReport;
|
import io.metersphere.base.domain.ApiTestReport;
|
||||||
|
import io.metersphere.base.domain.Notice;
|
||||||
import io.metersphere.commons.constants.APITestStatus;
|
import io.metersphere.commons.constants.APITestStatus;
|
||||||
import io.metersphere.commons.constants.ApiRunMode;
|
import io.metersphere.commons.constants.ApiRunMode;
|
||||||
import io.metersphere.commons.utils.CommonBeanFactory;
|
import io.metersphere.commons.utils.CommonBeanFactory;
|
||||||
import io.metersphere.commons.utils.LogUtil;
|
import io.metersphere.commons.utils.LogUtil;
|
||||||
|
import io.metersphere.notice.service.MailService;
|
||||||
|
import io.metersphere.notice.service.NoticeService;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.jmeter.assertions.AssertionResult;
|
import org.apache.jmeter.assertions.AssertionResult;
|
||||||
import org.apache.jmeter.samplers.SampleResult;
|
import org.apache.jmeter.samplers.SampleResult;
|
||||||
import org.apache.jmeter.visualizers.backend.AbstractBackendListenerClient;
|
import org.apache.jmeter.visualizers.backend.AbstractBackendListenerClient;
|
||||||
import org.apache.jmeter.visualizers.backend.BackendListenerContext;
|
import org.apache.jmeter.visualizers.backend.BackendListenerContext;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@ -113,9 +117,12 @@ public class APIBackendListenerClient extends AbstractBackendListenerClient impl
|
||||||
report = apiReportService.getRunningReport(testResult.getTestId());
|
report = apiReportService.getRunningReport(testResult.getTestId());
|
||||||
}
|
}
|
||||||
apiReportService.complete(testResult, report);
|
apiReportService.complete(testResult, report);
|
||||||
|
|
||||||
queue.clear();
|
queue.clear();
|
||||||
super.teardownTest(context);
|
super.teardownTest(context);
|
||||||
|
NoticeService noticeService = CommonBeanFactory.getBean(NoticeService.class);
|
||||||
|
List<Notice> notice = noticeService.queryNotice(testResult.getTestId());
|
||||||
|
MailService mailService = CommonBeanFactory.getBean(MailService.class);
|
||||||
|
mailService.sendHtml(report.getId(), notice, report.getStatus(), "api");
|
||||||
}
|
}
|
||||||
|
|
||||||
private RequestResult getRequestResult(SampleResult result) {
|
private RequestResult getRequestResult(SampleResult result) {
|
||||||
|
|
|
@ -223,10 +223,10 @@ public class APITestService {
|
||||||
apiTest.setUserId(request.getUserId());
|
apiTest.setUserId(request.getUserId());
|
||||||
}
|
}
|
||||||
String reportId = apiReportService.create(apiTest, request.getTriggerMode());
|
String reportId = apiReportService.create(apiTest, request.getTriggerMode());
|
||||||
if (request.getTriggerMode().equals("SCHEDULE")) {
|
/*if (request.getTriggerMode().equals("SCHEDULE")) {
|
||||||
List<Notice> notice = noticeService.queryNotice(request.getId());
|
List<Notice> notice = noticeService.queryNotice(request.getId());
|
||||||
mailService.sendHtml(reportId,notice,"api");
|
mailService.sendHtml(reportId,notice,"api");
|
||||||
}
|
}*/
|
||||||
changeStatus(request.getId(), APITestStatus.Running);
|
changeStatus(request.getId(), APITestStatus.Running);
|
||||||
jMeterService.run(request.getId(), null, is);
|
jMeterService.run(request.getId(), null, is);
|
||||||
return reportId;
|
return reportId;
|
||||||
|
|
|
@ -9,6 +9,7 @@ import io.metersphere.commons.utils.LogUtil;
|
||||||
import io.metersphere.dto.LoadTestDTO;
|
import io.metersphere.dto.LoadTestDTO;
|
||||||
import io.metersphere.service.SystemParameterService;
|
import io.metersphere.service.SystemParameterService;
|
||||||
import io.metersphere.service.UserService;
|
import io.metersphere.service.UserService;
|
||||||
|
import org.springframework.mail.MailException;
|
||||||
import org.springframework.mail.javamail.JavaMailSenderImpl;
|
import org.springframework.mail.javamail.JavaMailSenderImpl;
|
||||||
import org.springframework.mail.javamail.MimeMessageHelper;
|
import org.springframework.mail.javamail.MimeMessageHelper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -30,7 +31,7 @@ public class MailService {
|
||||||
@Resource
|
@Resource
|
||||||
private SystemParameterService systemParameterService;
|
private SystemParameterService systemParameterService;
|
||||||
|
|
||||||
public void sendHtml(String id, List<Notice> notice,String type) {
|
public void sendHtml(String id, List<Notice> notice, String status, String type) {
|
||||||
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
|
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
|
||||||
List<SystemParameter> paramList = systemParameterService.getParamList(ParamConstants.Classify.MAIL.getValue());
|
List<SystemParameter> paramList = systemParameterService.getParamList(ParamConstants.Classify.MAIL.getValue());
|
||||||
javaMailSender.setDefaultEncoding("UTF-8");
|
javaMailSender.setDefaultEncoding("UTF-8");
|
||||||
|
@ -58,15 +59,12 @@ public class MailService {
|
||||||
javaMailSender.setJavaMailProperties(props);
|
javaMailSender.setJavaMailProperties(props);
|
||||||
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
|
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
|
||||||
String testName = "";
|
String testName = "";
|
||||||
String state = "";
|
|
||||||
if (type.equals("api")) {
|
if (type.equals("api")) {
|
||||||
APIReportResult reportResult = apiAndPerformanceHelper.getApi(id);
|
APIReportResult reportResult = apiAndPerformanceHelper.getApi(id);
|
||||||
testName = reportResult.getTestName();
|
testName = reportResult.getTestName();
|
||||||
state = reportResult.getStatus();
|
|
||||||
} else if (type.equals("performance")) {
|
} else if (type.equals("performance")) {
|
||||||
LoadTestDTO performanceResult = apiAndPerformanceHelper.getPerformance(id);
|
LoadTestDTO performanceResult = apiAndPerformanceHelper.getPerformance(id);
|
||||||
testName = performanceResult.getName();
|
testName = performanceResult.getName();
|
||||||
state = performanceResult.getStatus();
|
|
||||||
}
|
}
|
||||||
String html1 = "<!DOCTYPE html>\n" +
|
String html1 = "<!DOCTYPE html>\n" +
|
||||||
"<html lang=\"en\">\n" +
|
"<html lang=\"en\">\n" +
|
||||||
|
@ -115,7 +113,7 @@ public class MailService {
|
||||||
LogUtil.error("Recipient information is empty");
|
LogUtil.error("Recipient information is empty");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(state.equals("success")){
|
if (status.equals("Success")) {
|
||||||
users = successEmailList.toArray(new String[successEmailList.size()]);
|
users = successEmailList.toArray(new String[successEmailList.size()]);
|
||||||
helper.setText(html2, true);
|
helper.setText(html2, true);
|
||||||
} else {
|
} else {
|
||||||
|
@ -124,11 +122,15 @@ public class MailService {
|
||||||
|
|
||||||
}
|
}
|
||||||
helper.setTo(users);
|
helper.setTo(users);
|
||||||
javaMailSender.send(mimeMessage);
|
|
||||||
|
|
||||||
} catch (MessagingException e) {
|
} catch (MessagingException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
javaMailSender.send(mimeMessage);
|
||||||
|
} catch (MailException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,30 +16,54 @@ import java.util.List;
|
||||||
public class NoticeService {
|
public class NoticeService {
|
||||||
@Resource
|
@Resource
|
||||||
private NoticeMapper noticeMapper;
|
private NoticeMapper noticeMapper;
|
||||||
|
|
||||||
public void saveNotice(NoticeRequest noticeRequest) {
|
public void saveNotice(NoticeRequest noticeRequest) {
|
||||||
|
Notice notice = new Notice();
|
||||||
NoticeExample example = new NoticeExample();
|
NoticeExample example = new NoticeExample();
|
||||||
example.createCriteria().andTestIdEqualTo(noticeRequest.getTestId());
|
example.createCriteria().andTestIdEqualTo(noticeRequest.getTestId());
|
||||||
List<Notice> notices = noticeMapper.selectByExample(example);
|
List<Notice> notices = noticeMapper.selectByExample(example);
|
||||||
if (notices != null) {
|
if (notices.size() > 0) {
|
||||||
noticeMapper.deleteByExample(example);
|
noticeMapper.deleteByExample(example);
|
||||||
noticeRequest.getNotices().forEach(notice -> {
|
noticeRequest.getNotices().forEach(n -> {
|
||||||
for(String x:notice.getNames()){
|
if (n.getNames().length > 0) {
|
||||||
notice.setEvent(notice.getEvent());
|
for (String x : n.getNames()) {
|
||||||
notice.setEmail(notice.getEmail());
|
notice.setEvent(n.getEvent());
|
||||||
notice.setEnable(notice.getEnable());
|
notice.setEmail(n.getEmail());
|
||||||
|
notice.setEnable(n.getEnable());
|
||||||
notice.setTestId(noticeRequest.getTestId());
|
notice.setTestId(noticeRequest.getTestId());
|
||||||
notice.setName(x);
|
notice.setName(x);
|
||||||
noticeMapper.insert(notice);
|
noticeMapper.insert(notice);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
notice.setEvent(n.getEvent());
|
||||||
|
notice.setEmail(n.getEmail());
|
||||||
|
notice.setEnable(n.getEnable());
|
||||||
|
notice.setTestId(noticeRequest.getTestId());
|
||||||
|
notice.setName("");
|
||||||
|
noticeMapper.insert(notice);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
noticeRequest.getNotices().forEach(notice -> {
|
noticeRequest.getNotices().forEach(n -> {
|
||||||
notice.setEvent(noticeRequest.getEvent());
|
if (n.getNames().length > 0) {
|
||||||
|
for (String x : n.getNames()) {
|
||||||
|
notice.setEvent(n.getEvent());
|
||||||
|
notice.setEmail(n.getEmail());
|
||||||
|
notice.setEnable(n.getEnable());
|
||||||
notice.setTestId(noticeRequest.getTestId());
|
notice.setTestId(noticeRequest.getTestId());
|
||||||
|
notice.setName(x);
|
||||||
noticeMapper.insert(notice);
|
noticeMapper.insert(notice);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
notice.setEvent(n.getEvent());
|
||||||
|
notice.setEmail(n.getEmail());
|
||||||
|
notice.setEnable(n.getEnable());
|
||||||
|
notice.setTestId(noticeRequest.getTestId());
|
||||||
|
notice.setName("");
|
||||||
|
noticeMapper.insert(notice);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Notice> queryNotice(String id) {
|
public List<Notice> queryNotice(String id) {
|
||||||
|
|
|
@ -239,7 +239,7 @@ public class PerformanceTestService {
|
||||||
startEngine(loadTest, engine, request.getTriggerMode());
|
startEngine(loadTest, engine, request.getTriggerMode());
|
||||||
if (request.getTriggerMode().equals("SCHEDULE")) {
|
if (request.getTriggerMode().equals("SCHEDULE")) {
|
||||||
List<Notice> notice = noticeService.queryNotice(request.getId());
|
List<Notice> notice = noticeService.queryNotice(request.getId());
|
||||||
mailService.sendHtml(engine.getReportId(),notice,"performance");
|
mailService.sendHtml(engine.getReportId(), notice, "success", "performance");
|
||||||
}
|
}
|
||||||
return engine.getReportId();
|
return engine.getReportId();
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,6 +71,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
<el-button type="primary" @click="saveNotice">{{$t('commons.save')}}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
@ -206,9 +207,11 @@
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
saveNotice(){
|
||||||
let param = this.buildParam();
|
let param = this.buildParam();
|
||||||
this.result = this.$post("notice/save", param, () => {
|
this.result = this.$post("notice/save", param, () => {
|
||||||
|
this.$success(this.$t('commons.save_success'));
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
|
|
Loading…
Reference in New Issue