Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
kt-keystone
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
kt-keystone
Commits
8e20e1f0
提交
8e20e1f0
authored
3月 09, 2022
作者:
Matrix
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(日志): 增加了行为执行器与SQL执行器的初始化日志
上级
f38e0b2e
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
13 行增加
和
4 行删除
+13
-4
MoveActuator.java
...src/main/java/org/matrix/actuators/move/MoveActuator.java
+5
-1
SqlExpActuator.java
...rc/main/java/org/matrix/actuators/sql/SqlExpActuator.java
+8
-3
没有找到文件。
kt-base/src/main/java/org/matrix/actuators/move/MoveActuator.java
浏览文件 @
8e20e1f0
...
...
@@ -19,6 +19,7 @@ import org.matrix.database.service.ITestDataService;
import
org.matrix.database.service.impl.ActionServiceImpl
;
import
org.matrix.enums.ActionType
;
import
org.matrix.exception.GlobalException
;
import
org.matrix.socket.LogQueueRuntime
;
import
org.matrix.util.BeanFlattener
;
import
org.springframework.stereotype.Component
;
...
...
@@ -31,7 +32,7 @@ import static org.matrix.actuators.move.MoveStrategy.*;
import
static
org
.
matrix
.
enums
.
ActionType
.*;
/**
* MoveActuator.
* MoveActuator.
行为执行器
*
* @author Matrix <xhyrzldf@gmail.com>
* @since 2022/2/25 at 3:32 PM
...
...
@@ -144,6 +145,7 @@ public class MoveActuator implements Actuator {
public
void
runMove
(
Long
moveId
,
Long
envId
,
Long
projectId
,
Object
caseResultData
,
MoveStrategy
strategy
)
{
Action
action
=
actionService
.
findByMoveAndEnv
(
moveId
,
envId
)
.
orElseThrow
(()
->
new
GlobalException
(
String
.
format
(
"没有找到指定的action动作对象,提供查询的moveId = %d,envId = %d"
,
moveId
,
envId
)));
LogQueueRuntime
.
addNewLog
(
String
.
format
(
"准备执行行为动作,动作策略: %s,行为Id =%d ,动作id = %d"
,
strategy
,
moveId
,
action
.
getId
()));
// 如果是 mid 或者 aft 动作,则需要进行结果集的语法替换 与 空值判断
if
(
strategy
!=
PRE_MOVE
)
{
...
...
@@ -165,6 +167,7 @@ public class MoveActuator implements Actuator {
// 分类处理 + 结果集处理(如果不存在则put数据,如果存在则替换数据)
log
.
info
(
"[动作执行器] 正在执行动作 actionId = {},动作类型 = {},动作策略 = {},动作参数 = {}"
,
action
.
getId
(),
action
,
strategy
,
runtimeDetail
);
LogQueueRuntime
.
addNewLog
(
String
.
format
(
"[动作执行器] 正在执行动作 actionId = %d,动作类型 = %sΩ,动作策略 = %s,动作参数 = %s"
,
action
.
getId
(),
action
,
strategy
,
runtimeDetail
));
if
(
actionType
==
SQL_ACTION
)
{
List
<
Map
<
String
,
Object
>>
resultMap
=
sqlActionHandler
(
envId
,
projectId
,
runtimeDetail
);
res
.
put
(
key
,
resultMap
);
...
...
@@ -209,6 +212,7 @@ public class MoveActuator implements Actuator {
throw
new
GlobalException
(
"行为语法里定位部分的语法没有提供合适的actionId!例如需要提供pre1,pre2,您提供的部分是: "
+
col
);
}
String
key
=
strategy
+
"_"
+
actionId
;
LogQueueRuntime
.
addNewLog
(
"行为执行器KEY值拼接完成,KEY值 = "
+
key
);
return
new
MoveRegularObject
(
key
,
colArray
[
1
]);
}
...
...
kt-base/src/main/java/org/matrix/actuators/sql/SqlExpActuator.java
浏览文件 @
8e20e1f0
...
...
@@ -16,10 +16,10 @@ import org.matrix.database.entity.DynamicVariable;
import
org.matrix.database.entity.TestCaseBTO
;
import
org.matrix.database.service.IConnectService
;
import
org.matrix.database.service.IDynamicVariableService
;
import
org.matrix.database.service.ITestCaseService
;
import
org.matrix.database.service.ITestDataService
;
import
org.matrix.enums.DynamicVarType
;
import
org.matrix.exception.GlobalException
;
import
org.matrix.socket.LogQueueRuntime
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.stereotype.Component
;
...
...
@@ -66,12 +66,13 @@ public class SqlExpActuator implements Actuator {
/**
* 解析并运行SQL语句,可以包含别的SQL变量,例如 'select * from user where user.id = ${user_id} '
*
* @param sqlDetail sql的poolId与sql语句的对象
* @param envId 环境id
* @param envId
环境id
* @param projectId 项目id
* @return 运行SQL后取完数值的结果, 是一张数据表, 以LIST<MAP>的形式呈现
*/
public
List
<
Map
<
String
,
Object
>>
parseSql
(
SqlExpDetail
sqlDetail
,
Long
envId
,
Long
projectId
)
{
public
List
<
Map
<
String
,
Object
>>
parseSql
(
SqlExpDetail
sqlDetail
,
Long
envId
,
Long
projectId
)
{
// 找到第一层的SQL变量,递归替换
String
sqlExp
=
sqlDetail
.
getSqlExp
();
Long
connectId
=
sqlDetail
.
getPoolId
();
...
...
@@ -111,6 +112,7 @@ public class SqlExpActuator implements Actuator {
* @return 变量递归解析后的值
*/
public
String
parseVarByName
(
String
varNameString
,
Long
envId
,
Long
projectId
)
{
LogQueueRuntime
.
addNewLog
(
String
.
format
(
"初始化即系变量,变量名=%s,环境id=%d,项目id=%d"
,
varNameString
,
envId
,
projectId
));
List
<
SqlRegularObject
>
varList
=
findDynamicVarList
(
varNameString
);
if
(
varList
.
size
()
==
1
)
{
SqlRegularObject
sqlReg
=
varList
.
get
(
0
);
...
...
@@ -152,6 +154,7 @@ public class SqlExpActuator implements Actuator {
private
String
parseVar
(
Long
envId
,
Integer
takenIndex
,
Long
projectId
,
DynamicVariable
dynamicVar
)
{
DynamicVarType
varType
=
dynamicVar
.
getType
();
log
.
info
(
"[变量解析器] 当前解析的动态变量是: {}"
,
JSON
.
toJSONString
(
dynamicVar
));
LogQueueRuntime
.
addNewLog
(
"[变量解析器] 当前解析的动态变量是: "
+
JSON
.
toJSONString
(
dynamicVar
));
// 依据变量类型的不同调用不同的Handler
if
(
varType
==
CONSTANT_VARIABLE
)
{
return
dynamicVar
.
getDetail
();
...
...
@@ -220,6 +223,7 @@ public class SqlExpActuator implements Actuator {
String
.
format
(
"没有找到项目id = %d 下,name = %s的变量"
,
projectId
,
sqlRegular
.
getVarName
())));
String
calculatedValue
=
parseVar
(
envId
,
sqlRegular
.
getIndex
(),
projectId
,
recVar
);
log
.
info
(
"[SQL执行器] 正在进行SQL变量计算 变量名: {} 计算后的替换值: {}"
,
sqlRegular
.
getVarName
(),
calculatedValue
);
LogQueueRuntime
.
addNewLog
(
String
.
format
(
"[SQL执行器] 正在进行SQL变量计算 变量名: %s 计算后的替换值: %s"
,
sqlRegular
.
getVarName
(),
calculatedValue
));
sqlExp
=
sqlExp
.
replaceAll
(
String
.
format
(
REPLACE_VAR_EXP
,
sqlRegular
.
getVarName
()),
calculatedValue
);
dynamicVar
.
getSqlExpDetail
().
setSqlExp
(
sqlExp
);
}
...
...
@@ -269,6 +273,7 @@ public class SqlExpActuator implements Actuator {
if
(
dynamicVar
.
getType
()
==
SQL_VARIABLE
&&
findDynamicVarList
(
sqlExp
).
size
()
==
0
)
{
// 切换数据源,执行SQL,获取数值
Set
<
String
>
dataSources
=
dataSourceService
.
switchDataSource
(
dataSourceDTO
);
LogQueueRuntime
.
addNewLog
(
String
.
format
(
"当前执行的SQL语句: %s, 使用的数据源: %s"
,
sqlExp
,
dataSourceDTO
));
log
.
info
(
"当前存在的数据源 {}"
,
dataSources
);
List
<
Map
<
String
,
Object
>>
resultMap
=
jdbcTemplate
.
queryForList
(
sqlExp
);
dataSourceService
.
switchMainDataSource
();
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论