Commit 1a0673b5 authored by 黎博's avatar 黎博

新增测试报告相关接口

parent 83703031
package cn.qg.holmes.controller.auto;
import cn.qg.holmes.common.JsonResult;
import cn.qg.holmes.entity.auto.SceneTestcaseReport;
import cn.qg.holmes.entity.auto.TestcaseReport;
import cn.qg.holmes.service.auto.SceneTestcaseReportService;
import cn.qg.holmes.service.auto.TestcaseReportService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 报告相关接口
*
* 测试报告相关接口
* @author libo
*/
@CrossOrigin
@RestController
@RequestMapping("/report")
@RequestMapping("/auto/report")
public class TestReportController {
@Autowired
......@@ -23,27 +30,95 @@ public class TestReportController {
@Autowired
SceneTestcaseReportService sceneTestcaseReportService;
@GetMapping("/testcase/batch")
public JsonResult getTestcaseReportByBatch(String batch) {
return null;
/**
* 根据namespace和模块id获取单接口用例batch列表
* @param namespace 环境
* @param moduleId 模块id
* @param pageNum 第几页
* @param pageSize 每页多少个
* @return
*/
@GetMapping("/testcase/batch/list")
public JsonResult getTestcaseReportBatchList(String namespace, Integer moduleId, Integer pageNum, Integer pageSize) {
IPage<Map<String, Object>> mapIPage = testcaseReportService.getTestcaseReportGroupByBatch(namespace, moduleId, pageNum, pageSize);
Map<String, Object> map = new HashMap<>();
map.put("total", mapIPage.getTotal());
map.put("list", mapIPage.getRecords());
return JsonResult.buildSuccessResult(map);
}
@GetMapping("/scene/batch")
public JsonResult getSceneReportByBatch() {
return null;
/**
* 根据环境和项目id获取场景batch列表
* @param namespace 环境
* @param projectId 项目id
* @param pageNum 第几页
* @param pageSize 每页多少个
* @return
*/
@GetMapping("/scene/batch/list")
public JsonResult getSceneTestcaseReportBatchList(String namespace, Integer projectId, @RequestParam Integer pageNum, @RequestParam Integer pageSize) {
IPage<Map<String, Object>> sceneTestcaseReportIPage = sceneTestcaseReportService.getSceneTestcaseReportGroupByBatch(namespace, projectId, pageNum, pageSize);
Map<String, Object> map = new HashMap<>();
map.put("total", sceneTestcaseReportIPage.getTotal());
map.put("list", sceneTestcaseReportIPage.getRecords());
return JsonResult.buildSuccessResult(map);
}
@GetMapping("/testcase/list")
public JsonResult getTestcaseReportListByNamespace(String namespace,
Integer projectId,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
return JsonResult.buildSuccessResult(testcaseReportService.getTestcaseReportByNamespace(namespace, pageNum, pageSize));
return JsonResult.buildSuccessResult(testcaseReportService.getTestcaseReportByNamespace(namespace, projectId, pageNum, pageSize));
}
@GetMapping("/scene/list")
public JsonResult getSceneTestcaseReportListByNamespace(String namespace,
Integer moduleId,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
return JsonResult.buildSuccessResult(sceneTestcaseReportService.getSceneTestcaseReportListByNamespace(namespace, pageNum, pageSize));
return JsonResult.buildSuccessResult(sceneTestcaseReportService.getSceneTestcaseReportListByNamespace(namespace, moduleId, pageNum, pageSize));
}
/**
* 获取testcase batch详情列表
* @param namespace 环境
* @param batch batch名
* @return
*/
@GetMapping("/testcase/batch/detail")
public JsonResult getTestcaseReportBatchDetail(String namespace, String batch) {
if (batch == null || batch.isEmpty()) {
return JsonResult.buildErrorStateResult("batch不能为空!", false);
}
if (namespace == null || namespace.isEmpty()) {
return JsonResult.buildErrorStateResult("namespace不能为空!", false);
}
QueryWrapper<TestcaseReport> testcaseReportQueryWrapper = new QueryWrapper<>();
testcaseReportQueryWrapper.eq("namespace", namespace);
testcaseReportQueryWrapper.eq("batch", batch);
List<TestcaseReport> testcaseReports = testcaseReportService.list(testcaseReportQueryWrapper);
return JsonResult.buildSuccessResult(testcaseReports);
}
/**
* 获取场景batch详情列表
* @param namespace 环境
* @param batch batch名
* @return
*/
@GetMapping("/scene/batch/detail")
public JsonResult getSceneReportBatchDetail(String namespace, String batch) {
if (batch == null || batch.isEmpty()) {
return JsonResult.buildErrorStateResult("batch不能为空!", false);
}
if (namespace == null || namespace.isEmpty()) {
return JsonResult.buildErrorStateResult("namespace不能为空!", false);
}
QueryWrapper<SceneTestcaseReport> sceneTestcaseReportQueryWrapper = new QueryWrapper<>();
sceneTestcaseReportQueryWrapper.eq("namespace", namespace);
sceneTestcaseReportQueryWrapper.eq("batch", batch);
List<SceneTestcaseReport> sceneTestcaseReports = sceneTestcaseReportService.list(sceneTestcaseReportQueryWrapper);
return JsonResult.buildSuccessResult(sceneTestcaseReports);
}
}
......@@ -2,6 +2,10 @@ package cn.qg.holmes.mapper.auto;
import cn.qg.holmes.entity.auto.SceneTestcaseReport;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.Map;
public interface SceneTestcaseReportMapper extends BaseMapper<SceneTestcaseReport> {
IPage<Map<String, Object>> getSceneTestcaseReportGroupByBatch(String namespace, Integer projectId, IPage<Map<String, Object>> page);
}
......@@ -2,6 +2,11 @@ package cn.qg.holmes.mapper.auto;
import cn.qg.holmes.entity.auto.TestcaseReport;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.Map;
public interface TestcaseReportMapper extends BaseMapper<TestcaseReport> {
IPage<Map<String, Object>> getTestcaseReportGroupByBatch(String namespace, Integer moduleId, IPage<Map<String, Object>> page);
}
package cn.qg.holmes.service.auto;
import cn.qg.holmes.entity.auto.SceneTestcaseReport;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Map;
public interface SceneTestcaseReportService extends IService<SceneTestcaseReport> {
Map<String, Object> getSceneTestcaseReportListByNamespace(String namespace, Integer pageNum, Integer pageSize);
Map<String, Object> getSceneTestcaseReportListByNamespace(String namespace, Integer moduleId, Integer pageNum, Integer pageSize);
IPage<Map<String, Object>> getSceneTestcaseReportGroupByBatch(String namespace, Integer projectId, Integer pageNum, Integer pageSize);
}
package cn.qg.holmes.service.auto;
import cn.qg.holmes.entity.auto.TestcaseReport;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Map;
public interface TestcaseReportService extends IService<TestcaseReport> {
Map<String, Object> getTestcaseReportByNamespace(String namespace, Integer pageNum, Integer pageSize);
Map<String, Object> getTestcaseReportByNamespace(String namespace, Integer projectId, Integer pageNum, Integer pageSize);
IPage<Map<String, Object>> getTestcaseReportGroupByBatch(String namespace, Integer moduleId, Integer pageNum, Integer pageSize);
}
......@@ -20,11 +20,14 @@ public class SceneTestcaseReportServiceImpl extends ServiceImpl<SceneTestcaseRep
SceneTestcaseReportMapper sceneTestcaseReportMapper;
@Override
public Map<String, Object> getSceneTestcaseReportListByNamespace(String namespace, Integer pageNum, Integer pageSize) {
public Map<String, Object> getSceneTestcaseReportListByNamespace(String namespace, Integer moduleId, Integer pageNum, Integer pageSize) {
QueryWrapper<SceneTestcaseReport> queryWrapper = new QueryWrapper<>();
if (namespace != null && !namespace.isEmpty()) {
queryWrapper.eq("namespace", namespace);
}
if (moduleId != null) {
queryWrapper.eq("module_id", moduleId);
}
queryWrapper.orderByDesc("id");
Page<SceneTestcaseReport> page = new Page<>(pageNum, pageSize);
......@@ -35,4 +38,10 @@ public class SceneTestcaseReportServiceImpl extends ServiceImpl<SceneTestcaseRep
map.put("list", iPage.getRecords());
return map;
}
@Override
public IPage<Map<String, Object>> getSceneTestcaseReportGroupByBatch(String namespace, Integer projectId, Integer pageNum, Integer pageSize) {
IPage<Map<String, Object>> page = new Page<>(pageNum, pageSize);
return sceneTestcaseReportMapper.getSceneTestcaseReportGroupByBatch(namespace, projectId, page);
}
}
......@@ -20,19 +20,28 @@ public class TestcaseReportServiceImpl extends ServiceImpl<TestcaseReportMapper,
TestcaseReportMapper testcaseReportMapper;
@Override
public Map<String, Object> getTestcaseReportByNamespace(String namespace, Integer pageNum, Integer pageSize) {
QueryWrapper<TestcaseReport> queryWrapper = new QueryWrapper<>();
public Map<String, Object> getTestcaseReportByNamespace(String namespace, Integer projectId, Integer pageNum, Integer pageSize) {
QueryWrapper<TestcaseReport> testcaseReportQueryWrapper = new QueryWrapper<>();
if (namespace != null && !namespace.isEmpty()) {
queryWrapper.eq("namespace", namespace);
testcaseReportQueryWrapper.eq("namespace", namespace);
}
queryWrapper.orderByDesc("id");
if (projectId != null) {
testcaseReportQueryWrapper.eq("project_id", projectId);
}
testcaseReportQueryWrapper.orderByDesc("id");
Page<TestcaseReport> page = new Page<>(pageNum, pageSize);
IPage<TestcaseReport> iPage = testcaseReportMapper.selectPage(page, queryWrapper);
IPage<TestcaseReport> iPage = testcaseReportMapper.selectPage(page, testcaseReportQueryWrapper);
Map<String, Object> map = new HashMap<>();
map.put("total", iPage.getTotal());
map.put("list", iPage.getRecords());
return map;
}
@Override
public IPage<Map<String, Object>> getTestcaseReportGroupByBatch(String namespace, Integer moduleId, Integer pageNum, Integer pageSize) {
IPage<Map<String, Object>> page = new Page<>(pageNum, pageSize);
return testcaseReportMapper.getTestcaseReportGroupByBatch(namespace, moduleId, page);
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.qg.holmes.mapper.auto.SceneTestcaseReportMapper">
<select id="getSceneTestcaseReportGroupByBatch" resultType="java.util.Map">
SELECT st.`scene_id`, st.`batch`, st.`namespace`, st.`project_id`, pro.`name`, st.`create_time` from `scene_testcase_report` st
left join `project` pro on st.`project_id` = pro.`id` WHERE 1=1
<if test="projectId != null and projectId !=''">
AND st.`project_id` = #{projectId}
</if>
<if test="namespace != null and namespace != ''">
AND st.`namespace` = #{namespace}
</if>
GROUP BY st.`batch`
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.qg.holmes.mapper.auto.TestcaseReportMapper">
<select id="getTestcaseReportGroupByBatch" resultType="java.util.Map">
SELECT tr.`batch`,tr.`module_id`, tr.`namespace`, tr.`create_time`, am.`name` FROM `testcase_report` as tr
LEFT JOIN `auto_module` as am
ON tr.`module_id` = am.`id` WHERE 1=1
<if test="namespace != null and namespace != ''">
AND tr.`namespace` = #{namespace}
</if>
<if test="moduleId != null and moduleId != ''">
AND tr.`module_id` = #{moduleId}
</if>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
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