Commit 45636c51 authored by Captain.B's avatar Captain.B Committed by 刘瑞斌
Browse files

refactor: 接口自动化执行发送通知修改

parent 83b4264a
dev dev-workstation feat_api_custom_field feat_custom_field feat_custom_function feat_environment_group feat_environment_group_copy feat_remove_organization feat_timing_clean feat_vc feat_vc_testtrack fix_lyh_v1.17 master pr@dev@feat@四种协议test、case页面优化 pr@dev@feat_add_issueremark pr@dev@feat_sync pr@dev@feat_工作空间多项目环境组合 pr@dev@feat_性能测试版本对比页面修改_自动执行 pr@dev@feat_接口测试_文档结构断言 pr@dev@feat_测试计划用例自定义排序 pr@dev@feat_用例支持自定义排序 pr@dev@feat_脑图保存临时节点 pr@dev@feat_脑图用例没保存提示 pr@dev@fix pr@dev@fix_scenario_load_test pr@dev@fix_sql版本冲突 pr@dev@fix_sql错误 pr@dev@fix_xmind格式导入优化标签 pr@dev@fix_从公共用例库移除_再编辑用例发现无法加到公共用例库了 pr@dev@fix_代码扫描图标不显示 pr@dev@fix_修复条件控制器变量值中有换行导致判断失败问题 pr@dev@fix_修复环境设置中编辑下模块和路径匹配时模块和路径允许为空的缺陷 pr@dev@fix_修改db版本号 pr@dev@fix_功能用例版本切换 pr@dev@fix_场景导入按钮失效 pr@dev@fix_应用管理没有自动保存 pr@dev@fix_接口case优化 pr@dev@fix_接口定义_用例批量 pr@dev@fix_接口定义导入order字段为空 pr@dev@fix_接口测试_复制接口 pr@dev@fix_接口测试_安全漏洞 pr@dev@fix_接口测试_引用问题 pr@dev@fix_接口用例在定义后面 pr@dev@fix_接口详情-变更历史无变更详情日志 pr@dev@fix_操作日志_增删改查除系统设置中的操作均无法跳转 pr@dev@fix_新增测试阶段字段在筛选列表中未更新 pr@dev@fix_测试计划实际结果无法编辑 pr@dev@fix_测试计划性能测试sql pr@dev@fix_测试跟踪_功能用例_公共用例库_选择修改用例责任人后,新的责任人仍不可编辑和删除该用例 pr@dev@fix_用例评审_测试计划_关注人支持多选 pr@dev@fix_被引用的数据删除显示重复 pr@dev@refactor_menu_pos pr@dev@refactor_swagger导入body参数的顺序不变 pr@dev@refactor_升级Jython版本 pr@dev@refactor_获取场景报告接口效率优化 pr@dev@refactor_请求头加描述 pr@dev@内置函数构造器优化增加mock数据说明示例及场景变量 pr@master@fix_代码扫描图标不显示 pr@v1.14@fix_接口测试_复制接口 pr@v1.14@fix_用例评审_测试计划_关注人支持多选 pr@v1.15@fix_sync pr@v1.16@fix_scenario_load pr@v1.16@fix_接口测试_安全漏洞 pr@v1.16@fix_接口测试_引用问题 pr@v1.16@fix_接口详情-变更历史无变更详情日志 pr@v1.16@fix_测试跟踪_功能用例_公共用例库_选择修改用例责任人后,新的责任人仍不可编辑和删除该用例 pr@v1.16@refactor_获取场景报告接口效率优化 pr@v1.17@feat_我的工作台加版本筛选 pr@v1.17@fix pr@v1.17@fix_功能用例版本切换 pr@v1.17@fix_新增测试阶段字段在筛选列表中未更新 pr@v1.18@fix_修复环境设置中编辑下模块和路径匹配时模块和路径允许为空的缺陷 refactor_environment_group refactor_project_setting refactor_ws_notice_template repr@dev_master_v1.16@ repr@dev_v1.10@9dc0f51ea06584447020dcd946d291115362a1b1@feat_脑图用例没保存提示 repr@dev_v1.14@@fix_【接口定义】-添加mock函数时值生成优化+页面翻译“return” repr@dev_v1.14@f7409212@fix_接口测试_CSV优化 repr@dev_v1.14_v1.16@fc598de402cffa8744ee656948f715c31e7d58a2@refactor_场景资源池执行添加日志打印 repr@dev_v1.16@1abe60fc@fix_接口测试_循环控制器 repr@dev_v1.16@22a21ac3@fix_接口测试_自动化步骤 repr@dev_v1.16@5d8ba4eb@fix_接口详情-变更历史无变更详情日志 repr@dev_v1.16@6de996ff@fix_接口定义_开启过多时环境与接口名称重叠 repr@dev_v1.16@a009bb38@fix_接口测试_场景执行 repr@dev_v1.16@e15672af3dc95618192ee81aedbefffdfd377b8a@fix_代码扫描图标不显示 repr@dev_v1.16@e43c11a7@fix_应用管理没有保存 repr@dev_v1.16@e43c11a7@fix_应用管理没有自动保存 repr@dev_v1.16_v1.17@430a1864ffe9800240f4fbd9b0c92991305c0baa@fix_脑图创建的用例导出状态和责任人为空 repr@dev_v1.16_v1.17@91c1b2a7@fix_接口测试_插件步骤 repr@dev_v1.17@0d05cd92d9a1b005aac8c07594625f3cda8319080d05cd92d9a1b005aac8c07594625f3cda831908@feat_测试跟踪用例版本相关 repr@dev_v1.17@0d05cd92d9a1b005aac8c07594625f3cda831908@fix_功能用例版本管理回收站 repr@dev_v1.18@abc86b09@fix_lyh_dev repr@devev_v1.16@31e9453dccbf5b363f72b9a2c4d6b1f40d9e92f5@fix_tapd不显示图片 repr@v1.16@fix_JSONPATH断言等有200个字符限制 repr@v1.16_dev@09a4129d@fix_接口测试_调试状态 repr@v1.16_dev@11eb4bc6@feat_error_report repr@v1.16_dev@6a89622f@fix_接口测试_JSON校验处理 repr@v1.16_dev@d5cf72dc@fix_接口测试_场景报告 repr@v1.16_dev@e2e90011@fix_testplan_用例执行 repr@v1.16_dev@ef78a7eb@fix_xpack_code repr@v1.16_v1.17_dev@bfb01376@fix_bugs_import_api repr@v1.16_v1.17_dev@dd1880fa@fix_bugs_0118 seleniumdocker获取报告图表 ui v1.13 v1.14 v1.15 v1.16 v1.17 v1.18 工作空间多项目环境组合 v1.18.2-rc2 v1.18.2-rc1 v1.18.2-rc0 v1.18.2-arm64 v1.18.1 v1.18.0 v1.17.3 v1.17.2 v1.17.1 v1.17.0 v1.16.6 v1.16.5 v1.16.4 v1.16.3 v1.16.2 v1.16.1 v1.16.0 v1.15.4 v1.15.3 v1.15.2 v1.15.1 v1.15.0 v1.14.7 v1.14.6 v1.14.5 v1.14.4 v1.14.3 v1.14.2 v1.14.1 v1.14.0 v1.14.0-rc3 v1.14.0-rc2 v1.14.0-rc1 v1.13.2 v1.13.1 v1.13.0
No related merge requests found
Showing with 19 additions and 11 deletions
+19 -11
......@@ -26,11 +26,13 @@ import io.metersphere.base.mapper.ApiScenarioReportMapper;
import io.metersphere.base.mapper.TestPlanApiScenarioMapper;
import io.metersphere.base.mapper.ext.ExtApiScenarioReportDetailMapper;
import io.metersphere.base.mapper.ext.ExtApiScenarioReportMapper;
import io.metersphere.base.mapper.ext.ExtProjectMapper;
import io.metersphere.commons.constants.*;
import io.metersphere.commons.exception.MSException;
import io.metersphere.commons.utils.*;
import io.metersphere.dto.ApiReportCountDTO;
import io.metersphere.dto.NodeDTO;
import io.metersphere.dto.UserDTO;
import io.metersphere.i18n.Translator;
import io.metersphere.log.utils.ReflexObjectUtil;
import io.metersphere.log.vo.DetailColumn;
......@@ -38,6 +40,7 @@ import io.metersphere.log.vo.OperatingLogDetails;
import io.metersphere.log.vo.api.ModuleReference;
import io.metersphere.notice.sender.NoticeModel;
import io.metersphere.notice.service.NoticeSendService;
import io.metersphere.service.UserService;
import io.metersphere.track.service.TestPlanReportService;
import org.apache.commons.beanutils.BeanMap;
import org.apache.commons.collections4.CollectionUtils;
......@@ -79,6 +82,10 @@ public class ApiScenarioReportService {
SqlSessionFactory sqlSessionFactory;
@Resource
private NoticeSendService noticeSendService;
@Resource
private UserService userService;
@Resource
private ExtProjectMapper extProjectMapper;
public ApiScenarioReport complete(TestResult result, String runMode) {
// 更新场景
......@@ -596,7 +603,7 @@ public class ApiScenarioReportService {
apiScenarioMapper.updateByPrimaryKey(scenario);
// 发送通知
sendNotice(scenario);
sendNotice(scenario, report);
}
lastReport = report;
if (report.getExecuteType().equals(ExecuteType.Marge.name())) {
......@@ -615,28 +622,29 @@ public class ApiScenarioReportService {
}
private void sendNotice(ApiScenario result) {
private void sendNotice(ApiScenario scenario, ApiScenarioReport result) {
BeanMap beanMap = new BeanMap(result);
BeanMap beanMap = new BeanMap(scenario);
String event;
String status;
if (StringUtils.equals(result.getLastResult(), "Success")) {
if (StringUtils.equals(scenario.getLastResult(), "Success")) {
event = NoticeConstants.Event.EXECUTE_SUCCESSFUL;
status = "成功";
} else {
event = NoticeConstants.Event.EXECUTE_FAILED;
status = "失败";
}
String userId = result.getCreateUser();
UserDTO userDTO = userService.getUserDTO(userId);
Map paramMap = new HashMap<>(beanMap);
if (SessionUtils.getUser() != null) {
paramMap.put("operator", SessionUtils.getUser().getName());
}
paramMap.put("status", result.getLastResult());
paramMap.put("operator", userDTO.getName());
paramMap.put("status", scenario.getLastResult());
String context = "${operator}执行接口自动化" + status + ": ${name}";
NoticeModel noticeModel = NoticeModel.builder()
.operator(SessionUtils.getUserId())
.operator(userId)
.context(context)
.subject("接口自动化通知")
.successMailTemplate("api/ScenarioResult")
......@@ -645,8 +653,8 @@ public class ApiScenarioReportService {
.event(event)
.build();
String taskType = NoticeConstants.TaskType.API_AUTOMATION_TASK;
noticeSendService.send(taskType, noticeModel);
Organization organization = extProjectMapper.getOrganizationByProjectId(scenario.getProjectId());
noticeSendService.send(organization, NoticeConstants.TaskType.API_AUTOMATION_TASK, noticeModel);
}
public String update(APIScenarioReportResult test) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment