Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
kt-keystone
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
kt-keystone
Commits
26458230
提交
26458230
authored
2月 22, 2022
作者:
Matrix
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(用例执行器): 增加了TestCaseBTO对象,用来表述一条测试用例数据
上级
0a387cd5
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
100 行增加
和
8 行删除
+100
-8
SqlExpActuator.java
...rc/main/java/org/matrix/actuators/sql/SqlExpActuator.java
+7
-7
TestCaseBTO.java
...src/main/java/org/matrix/database/entity/TestCaseBTO.java
+28
-0
ITestDataService.java
...in/java/org/matrix/database/service/ITestDataService.java
+14
-0
TestDataServiceImpl.java
...org/matrix/database/service/impl/TestDataServiceImpl.java
+51
-1
没有找到文件。
kt-base/src/main/java/org/matrix/actuators/sql/SqlExpActuator.java
浏览文件 @
26458230
...
@@ -13,14 +13,13 @@ import org.matrix.actuators.httpclient.HttpRequestDetail;
...
@@ -13,14 +13,13 @@ import org.matrix.actuators.httpclient.HttpRequestDetail;
import
org.matrix.actuators.httpclient.HttpResponseDetail
;
import
org.matrix.actuators.httpclient.HttpResponseDetail
;
import
org.matrix.actuators.usecase.CaseActuator
;
import
org.matrix.actuators.usecase.CaseActuator
;
import
org.matrix.database.entity.DynamicVariable
;
import
org.matrix.database.entity.DynamicVariable
;
import
org.matrix.database.entity.TestCase
;
import
org.matrix.database.entity.TestCase
BTO
;
import
org.matrix.database.service.IConnectService
;
import
org.matrix.database.service.IConnectService
;
import
org.matrix.database.service.IDynamicVariableService
;
import
org.matrix.database.service.IDynamicVariableService
;
import
org.matrix.database.service.ITestCaseService
;
import
org.matrix.database.service.ITestCaseService
;
import
org.matrix.database.service.ITestDataService
;
import
org.matrix.enums.DynamicVarType
;
import
org.matrix.enums.DynamicVarType
;
import
org.matrix.exception.GlobalException
;
import
org.matrix.exception.GlobalException
;
import
org.matrix.socket.LogQueue
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -39,6 +38,7 @@ import static org.springframework.util.CollectionUtils.isEmpty;
...
@@ -39,6 +38,7 @@ import static org.springframework.util.CollectionUtils.isEmpty;
* @since 2022/1/7 at 5:49 PM
* @since 2022/1/7 at 5:49 PM
* Suffering is the most powerful teacher of life.
* Suffering is the most powerful teacher of life.
*/
*/
@SuppressWarnings
(
"AlibabaLowerCamelCaseVariableNaming"
)
@Slf4j
@Slf4j
@Component
@Component
@AllArgsConstructor
@AllArgsConstructor
...
@@ -63,6 +63,7 @@ public class SqlExpActuator implements Actuator {
...
@@ -63,6 +63,7 @@ public class SqlExpActuator implements Actuator {
private
final
IConnectService
connectService
;
private
final
IConnectService
connectService
;
private
final
IDataSourceService
dataSourceService
;
private
final
IDataSourceService
dataSourceService
;
private
final
ITestCaseService
caseService
;
private
final
ITestCaseService
caseService
;
private
final
ITestDataService
dataService
;
/**
/**
* 解析给定的动态变量ByName
* 解析给定的动态变量ByName
...
@@ -136,10 +137,9 @@ public class SqlExpActuator implements Actuator {
...
@@ -136,10 +137,9 @@ public class SqlExpActuator implements Actuator {
* @return 解析后的字符串
* @return 解析后的字符串
*/
*/
private
String
caseHandler
(
Long
envId
,
Long
projectId
,
DynamicVariable
dynamicVar
)
{
private
String
caseHandler
(
Long
envId
,
Long
projectId
,
DynamicVariable
dynamicVar
)
{
long
caseId
=
Long
.
parseLong
(
dynamicVar
.
getDetail
());
long
caseDataId
=
Long
.
parseLong
(
dynamicVar
.
getDetail
());
TestCase
testCase
=
Optional
.
of
(
caseService
.
getById
(
caseId
))
TestCaseBTO
caseBTO
=
dataService
.
toCaseBTO
(
caseDataId
);
.
orElseThrow
(()
->
new
GlobalException
(
String
.
format
(
"没有找到id = %d 的TestCase"
,
caseId
)));
HttpResponseDetail
responseDetail
=
(
HttpResponseDetail
)
caseActuator
.
executeTestCase
(
caseBTO
,
envId
,
projectId
)
HttpResponseDetail
responseDetail
=
(
HttpResponseDetail
)
caseActuator
.
executeTestCase
(
testCase
,
envId
,
projectId
)
.
getBaseTestCaseRequestDetail
();
.
getBaseTestCaseRequestDetail
();
return
responseDetail
.
getResponseBody
();
return
responseDetail
.
getResponseBody
();
}
}
...
...
kt-base/src/main/java/org/matrix/database/entity/TestCaseBTO.java
0 → 100644
浏览文件 @
26458230
package
org
.
matrix
.
database
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* TestCaseBTO. 单条数据的测试用例对象
*
* @author Matrix <xhyrzldf@gmail.com>
* @since 2022/2/22 at 4:39 PM
* Suffering is the most powerful teacher of life.
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
TestCaseBTO
{
/**
* 测试用例
*/
private
TestCase
testCase
;
/**
* 单条测试数据
*/
private
TestData
testData
;
}
kt-base/src/main/java/org/matrix/database/service/ITestDataService.java
浏览文件 @
26458230
package
org
.
matrix
.
database
.
service
;
package
org
.
matrix
.
database
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
org.matrix.database.entity.TestCaseBTO
;
import
org.matrix.database.entity.TestData
;
import
org.matrix.database.entity.TestData
;
/**
/**
...
@@ -10,5 +11,18 @@ import org.matrix.database.entity.TestData;
...
@@ -10,5 +11,18 @@ import org.matrix.database.entity.TestData;
* @since 2022/2/22 at 3:05 PM
* @since 2022/2/22 at 3:05 PM
* Suffering is the most powerful teacher of life.
* Suffering is the most powerful teacher of life.
*/
*/
@SuppressWarnings
(
"AlibabaLowerCamelCaseVariableNaming"
)
public
interface
ITestDataService
extends
IService
<
TestData
>
{
public
interface
ITestDataService
extends
IService
<
TestData
>
{
/**
* 根据testData主键id 转换出TestCaseBTO对象,多用于动态参数绑定中
* @param testDataId testData的主键id
* @return {@link TestCaseBTO} 特指某个单条数据的测试用例,多用于动态参数绑定中
*/
TestCaseBTO
toCaseBTO
(
Long
testDataId
);
/**
* {{@link #toCaseBTO(Long)}} 的重载方法
*/
TestCaseBTO
toCaseBTO
(
TestData
testData
);
}
}
kt-base/src/main/java/org/matrix/database/service/impl/TestDataServiceImpl.java
浏览文件 @
26458230
package
org
.
matrix
.
database
.
service
.
impl
;
package
org
.
matrix
.
database
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.matrix.database.entity.TestCase
;
import
org.matrix.database.entity.TestCaseBTO
;
import
org.matrix.database.entity.TestData
;
import
org.matrix.database.entity.TestData
;
import
org.matrix.database.mapper.TestCaseMapper
;
import
org.matrix.database.mapper.TestDataMapper
;
import
org.matrix.database.mapper.TestDataMapper
;
import
org.matrix.database.service.ITestDataService
;
import
org.matrix.database.service.ITestDataService
;
import
org.matrix.exception.GlobalException
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Optional
;
/**
/**
* ITestDataServiceImpl.
* ITestDataServiceImpl.
*
*
...
@@ -13,6 +19,50 @@ import org.springframework.stereotype.Service;
...
@@ -13,6 +19,50 @@ import org.springframework.stereotype.Service;
* @since 2022/2/22 at 3:06 PM
* @since 2022/2/22 at 3:06 PM
* Suffering is the most powerful teacher of life.
* Suffering is the most powerful teacher of life.
*/
*/
@SuppressWarnings
(
"AlibabaLowerCamelCaseVariableNaming"
)
@Service
@Service
public
class
TestDataServiceImpl
extends
ServiceImpl
<
TestDataMapper
,
TestData
>
implements
ITestDataService
{
public
class
TestDataServiceImpl
extends
ServiceImpl
<
TestDataMapper
,
TestData
>
implements
ITestDataService
{
private
final
TestDataMapper
dataMapper
;
private
final
TestCaseMapper
caseMapper
;
public
TestDataServiceImpl
(
TestDataMapper
dataMapper
,
TestCaseMapper
caseMapper
)
{
this
.
dataMapper
=
dataMapper
;
this
.
caseMapper
=
caseMapper
;
}
/**
* 根据testData主键id 转换出TestCaseBTO对象,多用于动态参数绑定中
*
* @param testDataId testData的主键id
* @return {@link TestCaseBTO} 特指某个单条数据的测试用例,多用于动态参数绑定中
*/
@Override
public
TestCaseBTO
toCaseBTO
(
Long
testDataId
)
{
TestData
testData
=
Optional
.
ofNullable
(
dataMapper
.
selectById
(
testDataId
))
.
orElseThrow
(()
->
new
GlobalException
(
String
.
format
(
"没有找到testDataId = %d 的testData对象 "
,
testDataId
)));
TestCase
testCase
=
Optional
.
ofNullable
(
caseMapper
.
selectById
(
testData
.
getTestCaseId
()))
.
orElseThrow
(()
->
new
GlobalException
(
String
.
format
(
"在testDataId = %d的绑定对象中 没有找到testCaseId = %d 的testCase对象 "
,
testDataId
,
testData
.
getTestCaseId
())));
return
new
TestCaseBTO
(
testCase
,
testData
);
}
/**
* {{@link #toCaseBTO(Long)}} 的重载方法
*
* @param testData 一条testData数据对象
*/
@Override
public
TestCaseBTO
toCaseBTO
(
TestData
testData
)
{
TestCase
testCase
=
Optional
.
ofNullable
(
caseMapper
.
selectById
(
testData
.
getTestCaseId
()))
.
orElseThrow
(()
->
new
GlobalException
(
String
.
format
(
"在testDataId = %d的绑定对象中 没有找到testCaseId = %d 的testCase对象 "
,
testData
.
getId
(),
testData
.
getTestCaseId
())));
return
new
TestCaseBTO
(
testCase
,
testData
);
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论