Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
holmes
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QA
holmes
Commits
1a0673b5
Commit
1a0673b5
authored
Apr 14, 2021
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增测试报告相关接口
parent
83703031
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
161 additions
and
19 deletions
+161
-19
TestReportController.java
...va/cn/qg/holmes/controller/auto/TestReportController.java
+86
-11
SceneTestcaseReportMapper.java
...a/cn/qg/holmes/mapper/auto/SceneTestcaseReportMapper.java
+4
-0
TestcaseReportMapper.java
...n/java/cn/qg/holmes/mapper/auto/TestcaseReportMapper.java
+5
-0
SceneTestcaseReportService.java
...cn/qg/holmes/service/auto/SceneTestcaseReportService.java
+4
-1
TestcaseReportService.java
...java/cn/qg/holmes/service/auto/TestcaseReportService.java
+4
-1
SceneTestcaseReportServiceImpl.java
...mes/service/auto/impl/SceneTestcaseReportServiceImpl.java
+10
-1
TestcaseReportServiceImpl.java
...g/holmes/service/auto/impl/TestcaseReportServiceImpl.java
+14
-5
SceneTestcaseReportMapper.xml
src/main/resources/mapper/auto/SceneTestcaseReportMapper.xml
+17
-0
TestcaseReportMapper.xml
src/main/resources/mapper/auto/TestcaseReportMapper.xml
+17
-0
No files found.
src/main/java/cn/qg/holmes/controller/auto/TestReportController.java
View file @
1a0673b5
package
cn
.
qg
.
holmes
.
controller
.
auto
;
package
cn
.
qg
.
holmes
.
controller
.
auto
;
import
cn.qg.holmes.common.JsonResult
;
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.SceneTestcaseReportService
;
import
cn.qg.holmes.service.auto.TestcaseReportService
;
import
cn.qg.holmes.service.auto.TestcaseReportService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
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.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* 报告相关接口
* 测试报告相关接口
*
* @author libo
* @author libo
*/
*/
@CrossOrigin
@CrossOrigin
@RestController
@RestController
@RequestMapping
(
"/report"
)
@RequestMapping
(
"/
auto/
report"
)
public
class
TestReportController
{
public
class
TestReportController
{
@Autowired
@Autowired
...
@@ -23,27 +30,95 @@ public class TestReportController {
...
@@ -23,27 +30,95 @@ public class TestReportController {
@Autowired
@Autowired
SceneTestcaseReportService
sceneTestcaseReportService
;
SceneTestcaseReportService
sceneTestcaseReportService
;
@GetMapping
(
"/testcase/batch"
)
/**
public
JsonResult
getTestcaseReportByBatch
(
String
batch
)
{
* 根据namespace和模块id获取单接口用例batch列表
return
null
;
* @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
()
{
* 根据环境和项目id获取场景batch列表
return
null
;
* @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"
)
@GetMapping
(
"/testcase/list"
)
public
JsonResult
getTestcaseReportListByNamespace
(
String
namespace
,
public
JsonResult
getTestcaseReportListByNamespace
(
String
namespace
,
Integer
projectId
,
@RequestParam
(
defaultValue
=
"1"
)
Integer
pageNum
,
@RequestParam
(
defaultValue
=
"1"
)
Integer
pageNum
,
@RequestParam
(
defaultValue
=
"10"
)
Integer
pageSize
)
{
@RequestParam
(
defaultValue
=
"10"
)
Integer
pageSize
)
{
return
JsonResult
.
buildSuccessResult
(
testcaseReportService
.
getTestcaseReportByNamespace
(
namespace
,
pageNum
,
pageSize
));
return
JsonResult
.
buildSuccessResult
(
testcaseReportService
.
getTestcaseReportByNamespace
(
namespace
,
p
rojectId
,
p
ageNum
,
pageSize
));
}
}
@GetMapping
(
"/scene/list"
)
@GetMapping
(
"/scene/list"
)
public
JsonResult
getSceneTestcaseReportListByNamespace
(
String
namespace
,
public
JsonResult
getSceneTestcaseReportListByNamespace
(
String
namespace
,
Integer
moduleId
,
@RequestParam
(
defaultValue
=
"1"
)
Integer
pageNum
,
@RequestParam
(
defaultValue
=
"1"
)
Integer
pageNum
,
@RequestParam
(
defaultValue
=
"10"
)
Integer
pageSize
)
{
@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
);
}
}
}
}
src/main/java/cn/qg/holmes/mapper/auto/SceneTestcaseReportMapper.java
View file @
1a0673b5
...
@@ -2,6 +2,10 @@ package cn.qg.holmes.mapper.auto;
...
@@ -2,6 +2,10 @@ package cn.qg.holmes.mapper.auto;
import
cn.qg.holmes.entity.auto.SceneTestcaseReport
;
import
cn.qg.holmes.entity.auto.SceneTestcaseReport
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
java.util.Map
;
public
interface
SceneTestcaseReportMapper
extends
BaseMapper
<
SceneTestcaseReport
>
{
public
interface
SceneTestcaseReportMapper
extends
BaseMapper
<
SceneTestcaseReport
>
{
IPage
<
Map
<
String
,
Object
>>
getSceneTestcaseReportGroupByBatch
(
String
namespace
,
Integer
projectId
,
IPage
<
Map
<
String
,
Object
>>
page
);
}
}
src/main/java/cn/qg/holmes/mapper/auto/TestcaseReportMapper.java
View file @
1a0673b5
...
@@ -2,6 +2,11 @@ package cn.qg.holmes.mapper.auto;
...
@@ -2,6 +2,11 @@ package cn.qg.holmes.mapper.auto;
import
cn.qg.holmes.entity.auto.TestcaseReport
;
import
cn.qg.holmes.entity.auto.TestcaseReport
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
java.util.Map
;
public
interface
TestcaseReportMapper
extends
BaseMapper
<
TestcaseReport
>
{
public
interface
TestcaseReportMapper
extends
BaseMapper
<
TestcaseReport
>
{
IPage
<
Map
<
String
,
Object
>>
getTestcaseReportGroupByBatch
(
String
namespace
,
Integer
moduleId
,
IPage
<
Map
<
String
,
Object
>>
page
);
}
}
src/main/java/cn/qg/holmes/service/auto/SceneTestcaseReportService.java
View file @
1a0673b5
package
cn
.
qg
.
holmes
.
service
.
auto
;
package
cn
.
qg
.
holmes
.
service
.
auto
;
import
cn.qg.holmes.entity.auto.SceneTestcaseReport
;
import
cn.qg.holmes.entity.auto.SceneTestcaseReport
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
java.util.Map
;
import
java.util.Map
;
public
interface
SceneTestcaseReportService
extends
IService
<
SceneTestcaseReport
>
{
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
);
}
}
src/main/java/cn/qg/holmes/service/auto/TestcaseReportService.java
View file @
1a0673b5
package
cn
.
qg
.
holmes
.
service
.
auto
;
package
cn
.
qg
.
holmes
.
service
.
auto
;
import
cn.qg.holmes.entity.auto.TestcaseReport
;
import
cn.qg.holmes.entity.auto.TestcaseReport
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
java.util.Map
;
import
java.util.Map
;
public
interface
TestcaseReportService
extends
IService
<
TestcaseReport
>
{
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
);
}
}
src/main/java/cn/qg/holmes/service/auto/impl/SceneTestcaseReportServiceImpl.java
View file @
1a0673b5
...
@@ -20,11 +20,14 @@ public class SceneTestcaseReportServiceImpl extends ServiceImpl<SceneTestcaseRep
...
@@ -20,11 +20,14 @@ public class SceneTestcaseReportServiceImpl extends ServiceImpl<SceneTestcaseRep
SceneTestcaseReportMapper
sceneTestcaseReportMapper
;
SceneTestcaseReportMapper
sceneTestcaseReportMapper
;
@Override
@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
<>();
QueryWrapper
<
SceneTestcaseReport
>
queryWrapper
=
new
QueryWrapper
<>();
if
(
namespace
!=
null
&&
!
namespace
.
isEmpty
())
{
if
(
namespace
!=
null
&&
!
namespace
.
isEmpty
())
{
queryWrapper
.
eq
(
"namespace"
,
namespace
);
queryWrapper
.
eq
(
"namespace"
,
namespace
);
}
}
if
(
moduleId
!=
null
)
{
queryWrapper
.
eq
(
"module_id"
,
moduleId
);
}
queryWrapper
.
orderByDesc
(
"id"
);
queryWrapper
.
orderByDesc
(
"id"
);
Page
<
SceneTestcaseReport
>
page
=
new
Page
<>(
pageNum
,
pageSize
);
Page
<
SceneTestcaseReport
>
page
=
new
Page
<>(
pageNum
,
pageSize
);
...
@@ -35,4 +38,10 @@ public class SceneTestcaseReportServiceImpl extends ServiceImpl<SceneTestcaseRep
...
@@ -35,4 +38,10 @@ public class SceneTestcaseReportServiceImpl extends ServiceImpl<SceneTestcaseRep
map
.
put
(
"list"
,
iPage
.
getRecords
());
map
.
put
(
"list"
,
iPage
.
getRecords
());
return
map
;
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
);
}
}
}
src/main/java/cn/qg/holmes/service/auto/impl/TestcaseReportServiceImpl.java
View file @
1a0673b5
...
@@ -20,19 +20,28 @@ public class TestcaseReportServiceImpl extends ServiceImpl<TestcaseReportMapper,
...
@@ -20,19 +20,28 @@ public class TestcaseReportServiceImpl extends ServiceImpl<TestcaseReportMapper,
TestcaseReportMapper
testcaseReportMapper
;
TestcaseReportMapper
testcaseReportMapper
;
@Override
@Override
public
Map
<
String
,
Object
>
getTestcaseReportByNamespace
(
String
namespace
,
Integer
pageNum
,
Integer
pageSize
)
{
public
Map
<
String
,
Object
>
getTestcaseReportByNamespace
(
String
namespace
,
Integer
p
rojectId
,
Integer
p
ageNum
,
Integer
pageSize
)
{
QueryWrapper
<
TestcaseReport
>
q
ueryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
TestcaseReport
>
testcaseReportQ
ueryWrapper
=
new
QueryWrapper
<>();
if
(
namespace
!=
null
&&
!
namespace
.
isEmpty
())
{
if
(
namespace
!=
null
&&
!
namespace
.
isEmpty
())
{
q
ueryWrapper
.
eq
(
"namespace"
,
namespace
);
testcaseReportQ
ueryWrapper
.
eq
(
"namespace"
,
namespace
);
}
}
queryWrapper
.
orderByDesc
(
"id"
);
if
(
projectId
!=
null
)
{
testcaseReportQueryWrapper
.
eq
(
"project_id"
,
projectId
);
}
testcaseReportQueryWrapper
.
orderByDesc
(
"id"
);
Page
<
TestcaseReport
>
page
=
new
Page
<>(
pageNum
,
pageSize
);
Page
<
TestcaseReport
>
page
=
new
Page
<>(
pageNum
,
pageSize
);
IPage
<
TestcaseReport
>
iPage
=
testcaseReportMapper
.
selectPage
(
page
,
q
ueryWrapper
);
IPage
<
TestcaseReport
>
iPage
=
testcaseReportMapper
.
selectPage
(
page
,
testcaseReportQ
ueryWrapper
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"total"
,
iPage
.
getTotal
());
map
.
put
(
"total"
,
iPage
.
getTotal
());
map
.
put
(
"list"
,
iPage
.
getRecords
());
map
.
put
(
"list"
,
iPage
.
getRecords
());
return
map
;
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
);
}
}
}
src/main/resources/mapper/auto/SceneTestcaseReportMapper.xml
0 → 100644
View file @
1a0673b5
<?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
src/main/resources/mapper/auto/TestcaseReportMapper.xml
0 → 100644
View file @
1a0673b5
<?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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment