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
fe5924ee
Commit
fe5924ee
authored
Jun 15, 2021
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
场景用例前置条件处理优化以及场景新增全局参数
parent
3d97b5f9
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
51 additions
and
10 deletions
+51
-10
Scene.java
src/main/java/cn/qg/holmes/entity/auto/Scene.java
+1
-0
AutoUtilsService.java
...main/java/cn/qg/holmes/service/auto/AutoUtilsService.java
+1
-1
AutoUtilsServiceImpl.java
.../cn/qg/holmes/service/auto/impl/AutoUtilsServiceImpl.java
+21
-3
SceneTestcaseServiceImpl.java
...qg/holmes/service/auto/impl/SceneTestcaseServiceImpl.java
+10
-2
DingdingUtils.java
src/main/java/cn/qg/holmes/utils/DingdingUtils.java
+18
-4
No files found.
src/main/java/cn/qg/holmes/entity/auto/Scene.java
View file @
fe5924ee
...
@@ -20,6 +20,7 @@ public class Scene {
...
@@ -20,6 +20,7 @@ public class Scene {
private
Integer
id
;
private
Integer
id
;
private
String
name
;
private
String
name
;
private
Integer
projectId
;
private
Integer
projectId
;
private
String
globalParameters
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
private
Date
createTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
...
...
src/main/java/cn/qg/holmes/service/auto/AutoUtilsService.java
View file @
fe5924ee
...
@@ -16,5 +16,5 @@ public interface AutoUtilsService {
...
@@ -16,5 +16,5 @@ public interface AutoUtilsService {
boolean
assertResponse
(
String
response
,
List
<
Map
>
validateList
);
boolean
assertResponse
(
String
response
,
List
<
Map
>
validateList
);
Map
<
String
,
Object
>
handlePreCondition
(
String
namespace
,
String
preString
);
Map
<
String
,
Object
>
handlePreCondition
(
String
namespace
,
String
preString
,
Map
<
String
,
Object
>
globalMap
);
}
}
src/main/java/cn/qg/holmes/service/auto/impl/AutoUtilsServiceImpl.java
View file @
fe5924ee
...
@@ -154,15 +154,32 @@ public class AutoUtilsServiceImpl implements AutoUtilsService {
...
@@ -154,15 +154,32 @@ public class AutoUtilsServiceImpl implements AutoUtilsService {
* @return
* @return
*/
*/
@Override
@Override
public
Map
<
String
,
Object
>
handlePreCondition
(
String
namespace
,
String
preString
)
{
public
Map
<
String
,
Object
>
handlePreCondition
(
String
namespace
,
String
preString
,
Map
<
String
,
Object
>
globalMap
)
{
log
.
info
(
"开始处理前置动作!"
);
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
try
{
try
{
List
<
Map
>
preList
=
JSON
.
parseArray
(
preString
,
Map
.
class
);
List
<
Map
>
preList
=
JSON
.
parseArray
(
preString
,
Map
.
class
);
for
(
Map
<
String
,
Object
>
map:
preList
)
{
for
(
Map
<
String
,
Object
>
map:
preList
)
{
String
db
=
map
.
get
(
"db"
).
toString
();
String
db
=
map
.
get
(
"db"
).
toString
();
String
sql
=
map
.
get
(
"sql"
).
toString
();
String
sql
=
map
.
get
(
"sql"
).
toString
();
String
key
=
map
.
get
(
"key"
).
toString
();
String
key
=
null
;
String
type
=
map
.
get
(
"type"
).
toString
();
String
type
=
null
;
if
(
map
.
get
(
"key"
)
!=
null
)
{
key
=
map
.
get
(
"key"
).
toString
();
}
if
(
map
.
get
(
"type"
)
!=
null
)
{
type
=
map
.
get
(
"type"
).
toString
();
}
// 确认SQL中是否需要变量替换
String
regex
=
"(\\{\\{[A-Za-z0-9]+}})"
;
Pattern
pattern
=
Pattern
.
compile
(
regex
);
Matcher
matcher
=
pattern
.
matcher
(
sql
);
while
(
matcher
.
find
())
{
String
replace
=
matcher
.
group
();
// 去掉首位的{{和}}
String
tempKey
=
replace
.
substring
(
2
,
replace
.
length
()
-
2
);
sql
=
sql
.
replace
(
replace
,
"'"
+
globalMap
.
get
(
tempKey
).
toString
()
+
"'"
);
}
Map
<
String
,
String
>
params
=
new
HashMap
<>();
Map
<
String
,
String
>
params
=
new
HashMap
<>();
params
.
put
(
"namespace"
,
namespace
);
params
.
put
(
"namespace"
,
namespace
);
params
.
put
(
"database"
,
db
);
params
.
put
(
"database"
,
db
);
...
@@ -179,6 +196,7 @@ public class AutoUtilsServiceImpl implements AutoUtilsService {
...
@@ -179,6 +196,7 @@ public class AutoUtilsServiceImpl implements AutoUtilsService {
}
}
}
}
}
}
log
.
info
(
"前置动作获取到的值:{}"
,
resultMap
);
return
resultMap
;
return
resultMap
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
...
src/main/java/cn/qg/holmes/service/auto/impl/SceneTestcaseServiceImpl.java
View file @
fe5924ee
...
@@ -61,12 +61,16 @@ public class SceneTestcaseServiceImpl extends ServiceImpl<SceneTestcaseMapper, S
...
@@ -61,12 +61,16 @@ public class SceneTestcaseServiceImpl extends ServiceImpl<SceneTestcaseMapper, S
queryWrapper
.
orderByAsc
(
"sequence"
);
queryWrapper
.
orderByAsc
(
"sequence"
);
List
<
SceneTestcase
>
sceneTestcaseList
=
sceneTestcaseMapper
.
selectList
(
queryWrapper
);
List
<
SceneTestcase
>
sceneTestcaseList
=
sceneTestcaseMapper
.
selectList
(
queryWrapper
);
List
<
Map
<
String
,
Object
>>
resultList
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
resultList
=
new
ArrayList
<>();
String
globalParameters
=
sceneService
.
getById
(
sceneId
).
getGlobalParameters
();
// 全局变量Map
// 全局变量Map
Map
<
String
,
Object
>
globalMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
globalMap
=
new
HashMap
<>();
if
(
globalParameters
!=
null
)
{
globalMap
.
putAll
(
JSON
.
parseObject
(
globalParameters
,
Map
.
class
));
}
for
(
SceneTestcase
sceneTestcase:
sceneTestcaseList
)
{
for
(
SceneTestcase
sceneTestcase:
sceneTestcaseList
)
{
String
preAction
=
sceneTestcase
.
getPreAction
();
String
preAction
=
sceneTestcase
.
getPreAction
();
if
(
preAction
!=
null
&&
!
preAction
.
isEmpty
())
{
if
(
preAction
!=
null
&&
!
preAction
.
isEmpty
())
{
Map
<
String
,
Object
>
preMap
=
autoUtilsService
.
handlePreCondition
(
namespace
,
preAction
);
Map
<
String
,
Object
>
preMap
=
autoUtilsService
.
handlePreCondition
(
namespace
,
preAction
,
globalMap
);
if
(
preMap
!=
null
)
{
if
(
preMap
!=
null
)
{
globalMap
.
putAll
(
preMap
);
globalMap
.
putAll
(
preMap
);
}
}
...
@@ -163,8 +167,12 @@ public class SceneTestcaseServiceImpl extends ServiceImpl<SceneTestcaseMapper, S
...
@@ -163,8 +167,12 @@ public class SceneTestcaseServiceImpl extends ServiceImpl<SceneTestcaseMapper, S
reportMap
.
put
(
"headers"
,
headersMap
);
reportMap
.
put
(
"headers"
,
headersMap
);
reportMap
.
put
(
"parameters"
,
parameterMap
);
reportMap
.
put
(
"parameters"
,
parameterMap
);
reportMap
.
put
(
"assertResult"
,
assertResult
);
reportMap
.
put
(
"assertResult"
,
assertResult
);
reportMap
.
put
(
"response"
,
JSON
.
parseObject
(
response
,
Map
.
class
));
reportMap
.
put
(
"elapsedTime"
,
elapsedTime
);
reportMap
.
put
(
"elapsedTime"
,
elapsedTime
);
try
{
reportMap
.
put
(
"response"
,
JSON
.
parseObject
(
response
,
Map
.
class
));
}
catch
(
Exception
e
)
{
reportMap
.
put
(
"response"
,
response
);
}
// 插入测试报告
// 插入测试报告
SceneTestcaseReport
sceneTestcaseReport
=
new
SceneTestcaseReport
();
SceneTestcaseReport
sceneTestcaseReport
=
new
SceneTestcaseReport
();
...
...
src/main/java/cn/qg/holmes/utils/DingdingUtils.java
View file @
fe5924ee
...
@@ -8,6 +8,8 @@ import org.joda.time.DateTime;
...
@@ -8,6 +8,8 @@ import org.joda.time.DateTime;
import
java.text.DateFormat
;
import
java.text.DateFormat
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.*
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
/**
/**
* 钉钉发送消息类
* 钉钉发送消息类
...
@@ -224,9 +226,21 @@ public class DingdingUtils {
...
@@ -224,9 +226,21 @@ public class DingdingUtils {
// String markdown = buildMarkdownMsg("YXM-1499", "【羊小咩v7.6.00】【VCC首次交易率提升专题】巴拉巴拉", "黎博", "于巧玲", "p1", "kddsp");
// String markdown = buildMarkdownMsg("YXM-1499", "【羊小咩v7.6.00】【VCC首次交易率提升专题】巴拉巴拉", "黎博", "于巧玲", "p1", "kddsp");
// String markdown = buildPipelineMarkdownMsg("holmes", "master", "bo.li", "测试", "2021-06-03 14:59:45", "fe");
// String markdown = buildPipelineMarkdownMsg("holmes", "master", "bo.li", "测试", "2021-06-03 14:59:45", "fe");
// sendToDingding(markdown, "https://oapi.dingtalk.com/robot/send?access_token=835663338d638e40daaf3ab358af741ef0680a826a962c91bedc53b149d85ee1");
// sendToDingding(markdown, "https://oapi.dingtalk.com/robot/send?access_token=835663338d638e40daaf3ab358af741ef0680a826a962c91bedc53b149d85ee1");
String
str
=
"2021-06-03T09:23:00Z"
;
// String str = "2021-06-03T09:23:00Z";
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String
commitDate
=
simpleDateFormat
.
format
(
DateTime
.
parse
(
str
).
toDate
());
// String commitDate = simpleDateFormat.format(DateTime.parse(str).toDate());
System
.
out
.
println
(
commitDate
);
// System.out.println(commitDate);
String
model
=
"(\\{\\{[A-Za-z0-9]+}})"
;
String
sql
=
"select * from vcc_talos.risk_record where uuid={{uuid}} and userId={{userId}}"
;
Pattern
pattern
=
Pattern
.
compile
(
model
);
Matcher
matcher
=
pattern
.
matcher
(
sql
);
while
(
matcher
.
find
())
{
String
replace
=
matcher
.
group
();
// 去掉首位的{{和}}
String
tempKey
=
replace
.
substring
(
2
,
replace
.
length
()
-
2
);
sql
=
sql
.
replace
(
replace
,
"'"
+
"1234"
+
"'"
);
}
System
.
out
.
println
(
sql
);
}
}
}
}
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