Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
kt-keystone
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
kt-keystone
Commits
edf256f5
提交
edf256f5
authored
2月 22, 2022
作者:
mry
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(base/web): 修改了entity,以及testng
上级
ff6d8e2d
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
138 行增加
和
33 行删除
+138
-33
TestCaseData.java
...se/src/main/java/org/matrix/database/vo/TestCaseData.java
+26
-0
TestPigeon.java
kt-base/src/main/java/org/matrix/testNg/TestPigeon.java
+19
-5
MoveController.java
...n/java/org/matrix/autotest/controller/MoveController.java
+2
-2
TestCaseController.java
...va/org/matrix/autotest/controller/TestCaseController.java
+91
-26
没有找到文件。
kt-base/src/main/java/org/matrix/database/vo/TestCaseData.java
0 → 100644
浏览文件 @
edf256f5
package
org
.
matrix
.
database
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
org.matrix.database.entity.TestCase
;
import
org.matrix.database.entity.TestData
;
import
java.util.List
;
/**
* @author mry
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Accessors
(
chain
=
true
)
public
class
TestCaseData
{
private
TestCase
testCase
;
private
List
<
TestData
>
testData
;
}
kt-base/src/main/java/org/matrix/testNg/TestPigeon.java
浏览文件 @
edf256f5
package
org
.
matrix
.
testNg
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
org.matrix.BaseBootApplication
;
import
org.matrix.actuators.checkpoint.CheckPointActuator
;
import
org.matrix.actuators.checkpoint.CheckPointResult
;
...
...
@@ -7,7 +8,10 @@ import org.matrix.actuators.httpclient.HttpClientActuator;
import
org.matrix.actuators.usecase.CaseActuator
;
import
org.matrix.actuators.usecase.TestCaseExecuteResult
;
import
org.matrix.database.entity.TestCase
;
import
org.matrix.database.entity.TestCaseBTO
;
import
org.matrix.database.entity.TestData
;
import
org.matrix.database.service.ITestCaseService
;
import
org.matrix.database.service.ITestDataService
;
import
org.matrix.exception.GlobalException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -19,6 +23,7 @@ import org.testng.Reporter;
import
org.testng.annotations.*
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -47,6 +52,9 @@ public class TestPigeon extends AbstractTestNGSpringContextTests {
@Autowired
private
ITestCaseService
caseService
;
@Autowired
private
ITestDataService
dataService
;
@Autowired
private
CheckPointActuator
checkPointActuator
;
...
...
@@ -69,17 +77,23 @@ public class TestPigeon extends AbstractTestNGSpringContextTests {
return
new
DataProviderForDb
(
driver
,
url
,
username
,
password
,
sql
);
}
@Test
(
dataProvider
=
"testData"
)
public
void
test
(
Map
<
String
,
String
>
data
)
{
long
caseId
=
Long
.
parseLong
(
data
.
get
(
"id"
));
CaseActuator
caseActuator
=
new
CaseActuator
(
checkPointActuator
,
httpClientActuator
);
TestCase
testCase
=
java
.
util
.
Optional
.
of
(
caseService
.
getById
(
caseId
))
.
orElseThrow
(()
->
new
GlobalException
(
String
.
format
(
"没有找到id = %d 的TestCase"
,
caseId
)));
//todo 苗润雨 将这个NULL填一下,里面放testData
TestCaseExecuteResult
testCaseExecuteResult
=
caseActuator
.
executeTestCase
(
null
,
envId
,
projectId
);
CheckPointResult
checkPointResult
=
testCaseExecuteResult
.
getCheckPointResult
();
Reporter
.
log
(
checkPointResult
.
toString
());
List
<
TestData
>
testDataList
=
java
.
util
.
Optional
.
of
(
dataService
.
list
(
Wrappers
.
lambdaQuery
(
TestData
.
class
)
.
eq
(
TestData:
:
getTestCaseId
,
caseId
)))
.
orElseThrow
(()->
new
GlobalException
(
String
.
format
(
"没有找到testCaseId = %d 的TestData"
,
caseId
)));
TestCaseBTO
testCaseBTO
=
new
TestCaseBTO
();
testCaseBTO
.
setTestCase
(
testCase
);
for
(
TestData
testData
:
testDataList
){
testCaseBTO
.
setTestData
(
testData
);
TestCaseExecuteResult
testCaseExecuteResult
=
caseActuator
.
executeTestCase
(
testCaseBTO
,
envId
,
projectId
);
CheckPointResult
checkPointResult
=
testCaseExecuteResult
.
getCheckPointResult
();
Reporter
.
log
(
checkPointResult
.
toString
());
}
}
@AfterMethod
...
...
kt-web/src/main/java/org/matrix/autotest/controller/MoveController.java
浏览文件 @
edf256f5
...
...
@@ -126,7 +126,7 @@ public class MoveController {
@ApiOperation
(
value
=
"修改行为以及动作"
)
@PutMapping
public
ResponseEntity
<
CommonResultObj
<
MoveAction
>>
updateMoveAction
(
@RequestBody
MoveAction
moveAction
)
{
Boolean
moveBoolean
=
Optional
.
of
(
moveService
.
updateById
(
moveAction
.
getMove
()))
Boolean
update
=
Optional
.
of
(
moveService
.
updateById
(
moveAction
.
getMove
()))
.
orElseThrow
(
GlobalException:
:
new
);
Boolean
delete
=
Optional
.
of
(
actionService
.
remove
(
Wrappers
.
lambdaQuery
(
Action
.
class
)
.
eq
(
Action:
:
getMoveId
,
moveAction
.
getMove
().
getId
())))
...
...
@@ -137,7 +137,7 @@ public class MoveController {
);
Boolean
saveOrUpdate
=
Optional
.
of
(
actionService
.
saveOrUpdateBatch
(
moveAction
.
getAction
()))
.
orElseThrow
(()
->
new
GlobalException
(
"修改失败"
));
return
moveBoolean
&&
saveOrUpdate
&&
delete
return
update
&&
saveOrUpdate
&&
delete
?
CommonResult
.
success
(
moveAction
,
"修改成功"
)
:
CommonResult
.
failed
(
moveAction
,
"修改失败"
);
}
...
...
kt-web/src/main/java/org/matrix/autotest/controller/TestCaseController.java
浏览文件 @
edf256f5
...
...
@@ -5,15 +5,24 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.matrix.database.entity.TestCase
;
import
org.matrix.database.entity.TestData
;
import
org.matrix.database.service.ITestCaseService
;
import
org.matrix.database.service.ITestDataService
;
import
org.matrix.database.vo.CommonResult
;
import
org.matrix.database.vo.CommonResultObj
;
import
org.matrix.database.vo.MoveAction
;
import
org.matrix.database.vo.TestCaseData
;
import
org.matrix.exception.GlobalException
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
import
static
java
.
util
.
Optional
.
ofNullable
;
/**
* <p>
* 前端控制器
...
...
@@ -28,18 +37,21 @@ import java.util.Optional;
@Api
(
tags
=
"对用例test_case的基本操作"
)
public
class
TestCaseController
{
private
final
ITestDataService
testDataService
;
private
final
ITestCaseService
testCaseService
;
public
TestCaseController
(
ITestCaseService
testCaseService
)
{
public
TestCaseController
(
ITestCaseService
testCaseService
,
ITestDataService
testDataService
)
{
this
.
testCaseService
=
testCaseService
;
this
.
testDataService
=
testDataService
;
}
/**
* 分页查询所有用例
*
* @param pageSize 每页多少条数据
* @param pageNum 当前第几页
* @param name
用例
名称
* @param pageSize
每页多少条数据
* @param pageNum
当前第几页
* @param name
行为
名称
* @param projectId 项目id
* @return 分页查询的结果, 用例
*/
...
...
@@ -59,42 +71,95 @@ public class TestCaseController {
}
/**
* 添加用例
* 输入用例主键id,查询出用例以及用例下包含的所有数据组
*
* @param testCaseId 用例id
* @return {@link TestCaseData}
*/
@ApiOperation
(
value
=
"根据用例id查,用例以及,用例下的数据组"
)
@GetMapping
(
"/testCase/{testCaseId}"
)
public
ResponseEntity
<
CommonResultObj
<
TestCaseData
>>
findByIdMoveAction
(
@PathVariable
Long
testCaseId
)
{
TestCase
byId
=
testCaseService
.
getById
(
testCaseId
);
if
(
byId
==
null
)
{
throw
new
GlobalException
(
"不存在用例"
);
}
TestCase
testCase
=
ofNullable
(
testCaseService
.
getById
(
testCaseId
))
.
orElseThrow
(()
->
new
GlobalException
(
String
.
format
(
"没有查到指定的用例,你提供的行为id是%d"
,
testCaseId
)));
List
<
TestData
>
testDataList
=
ofNullable
(
testDataService
.
list
(
Wrappers
.
lambdaQuery
(
TestData
.
class
)
.
eq
(
TestData:
:
getTestCaseId
,
testCaseId
)))
.
orElse
(
new
ArrayList
<>());
TestCaseData
ma
=
new
TestCaseData
(
testCase
,
testDataList
);
return
CommonResult
.
success
(
ma
,
"查询成功"
);
}
/**
* 添加用例和数据组(可以单独添加用例)
*
* @param testCase
用例对象
* @return 添加的用例, 以及是否添加成功的提示信息
* @param testCase
Data 用例以及用例下的数据组
* @return 添加的用例
和数据组
, 以及是否添加成功的提示信息
*/
@ApiOperation
(
value
=
"添加用例"
)
@ApiOperation
(
value
=
"添加用例
和数据组
"
)
@PostMapping
public
ResponseEntity
<
CommonResultObj
<
TestCase
>>
insertTestCase
(
@RequestBody
TestCase
testCase
)
{
return
CommonResult
.
pred
(
testCaseService:
:
save
,
testCase
,
"添加成功"
,
"添加失败"
);
public
ResponseEntity
<
CommonResultObj
<
TestCaseData
>>
insertMoveAction
(
@RequestBody
TestCaseData
testCaseData
)
{
Boolean
testCaseBoolean
=
Optional
.
of
(
testCaseService
.
save
(
testCaseData
.
getTestCase
()))
.
orElseThrow
(
GlobalException:
:
new
);
Long
id
=
testCaseData
.
getTestCase
().
getId
();
if
(
testCaseData
.
getTestData
().
size
()
!=
0
)
{
for
(
TestData
testData
:
testCaseData
.
getTestData
())
{
testData
.
setTestCaseId
(
id
);
}
}
boolean
testDataBoolean
=
testDataService
.
saveBatch
(
testCaseData
.
getTestData
());
if
(
testCaseData
.
getTestData
().
size
()
==
0
)
{
testDataBoolean
=
true
;
}
return
testCaseBoolean
&&
testDataBoolean
?
CommonResult
.
success
(
testCaseData
,
"添加成功"
)
:
CommonResult
.
failed
(
"添加失败"
);
}
/**
* 修改用例
* 修改用例
,根据用例id修改数据组
*
* @param testCase
用例对象
* @return
修改后的用例, 以及是否修改成功的提示信息
* @param testCase
Data 用例以及用例下的数据组
* @return
{@link TestCaseData}
*/
@ApiOperation
(
value
=
"修改用例"
)
@ApiOperation
(
value
=
"修改用例
以及数据组
"
)
@PutMapping
public
ResponseEntity
<
CommonResultObj
<
TestCase
>>
updateTestCase
(
@RequestBody
TestCase
testCase
)
{
return
CommonResult
.
pred
(
testCaseService:
:
updateById
,
testCase
,
"修改成功"
,
"修改失败"
);
public
ResponseEntity
<
CommonResultObj
<
TestCaseData
>>
updateMoveAction
(
@RequestBody
TestCaseData
testCaseData
)
{
Boolean
update
=
Optional
.
of
(
testCaseService
.
updateById
(
testCaseData
.
getTestCase
()))
.
orElseThrow
(
GlobalException:
:
new
);
Boolean
delete
=
Optional
.
of
(
testDataService
.
remove
(
Wrappers
.
lambdaQuery
(
TestData
.
class
)
.
eq
(
TestData:
:
getTestCaseId
,
testCaseData
.
getTestCase
().
getId
())))
.
orElseThrow
(()
->
new
GlobalException
(
"删除失败"
));
Long
id
=
testCaseData
.
getTestCase
().
getId
();
testCaseData
.
getTestData
().
forEach
(
action
->
action
.
setTestCaseId
(
id
)
);
Boolean
saveOrUpdate
=
Optional
.
of
(
testDataService
.
saveOrUpdateBatch
(
testCaseData
.
getTestData
()))
.
orElseThrow
(()
->
new
GlobalException
(
"修改失败"
));
return
update
&&
saveOrUpdate
&&
delete
?
CommonResult
.
success
(
testCaseData
,
"修改成功"
)
:
CommonResult
.
failed
(
testCaseData
,
"修改失败"
);
}
/**
* 删除用例
* 删除用例
和数据组
*
* @param
i
d 用例id
* @return
删除的用例id, 以及是否删除成功的提示信息
* @param
testCaseI
d 用例id
* @return
是否删除成功
*/
@ApiOperation
(
value
=
"根据主键id删除用例"
)
@DeleteMapping
(
"/{id}"
)
public
ResponseEntity
<
CommonResultObj
<
Long
>>
deleteTestCase
(
@PathVariable
Long
id
)
{
return
CommonResult
.
pred
(
testCaseService:
:
removeById
,
id
,
"删除成功"
,
"删除失败或id不存在"
);
@ApiOperation
(
value
=
"删除行用例和数据组"
)
@DeleteMapping
(
"/{testCaseId}"
)
public
ResponseEntity
<
CommonResultObj
<
MoveAction
>>
deleteMoveAction
(
@PathVariable
Long
testCaseId
)
{
Boolean
testCaseBoolean
=
Optional
.
of
(
testCaseService
.
removeById
(
testCaseId
))
.
orElseThrow
(()
->
new
GlobalException
(
String
.
format
(
"没有查到指定的用例,你提供的用例id是%d"
,
testCaseId
)));
Boolean
testDataBoolean
=
Optional
.
of
(
testDataService
.
remove
(
Wrappers
.
lambdaQuery
(
TestData
.
class
)
.
eq
(
TestData:
:
getTestCaseId
,
testCaseId
)))
.
orElseThrow
(()
->
new
GlobalException
(
String
.
format
(
"没有查到指定的用例,你提供的用例id是%id"
,
testCaseId
)));
return
testCaseBoolean
&&
testDataBoolean
?
CommonResult
.
success
(
"删除成功"
)
:
CommonResult
.
failed
(
"删除失败或不存在"
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论