Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
willdesk_apiauto
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
29
Issues
29
List
Boards
Labels
Service Desk
Milestones
Merge Requests
29
Merge Requests
29
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
桦生 詹
willdesk_apiauto
Commits
ad6e5121
Commit
ad6e5121
authored
May 16, 2024
by
zhanhuasheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增用例
parent
65a6b938
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
105 additions
and
21 deletions
+105
-21
TestCase/account/test_01_account.py
TestCase/account/test_01_account.py
+1
-1
TestCase/automation/test_01_template.py
TestCase/automation/test_01_template.py
+13
-0
TestData/automation/template_test_data.py
TestData/automation/template_test_data.py
+6
-0
TestFile/automation/template_select.py
TestFile/automation/template_select.py
+38
-0
Utils/req_handler.py
Utils/req_handler.py
+23
-20
YamlCase/automation/template.yaml
YamlCase/automation/template.yaml
+24
-0
No files found.
TestCase/account/test_01_account.py
View file @
ad6e5121
import
pytest
from
Utils
import
yaml_handler
from
Utils
import
req_handler
from
Utils.config_handler
import
configHandler
from
TestData.account.account_test_data
import
accountData
class
TestAccount
:
...
...
@@ -12,3 +11,4 @@ class TestAccount:
@
pytest
.
mark
.
parametrize
(
'case'
,
yaml_data
)
def
test_account
(
self
,
case
):
req_handler
.
ReqHandler
.
send_requests
(
case
=
case
,
var_class
=
accountData
)
TestCase/automation/test_01_template.py
0 → 100644
View file @
ad6e5121
import
pytest
from
Utils
import
yaml_handler
from
Utils
import
req_handler
from
TestData.automation.template_test_data
import
templateData
class
TestTemplate
:
yaml_path
=
r
'automation/template.yaml'
yaml_data
=
yaml_handler
.
yaml_handler
.
get_case
(
yaml_path
)
@
pytest
.
mark
.
flaky
(
reruns
=
templateData
.
rerun
,
reruns_delay
=
templateData
.
rerun_delay
)
@
pytest
.
mark
.
parametrize
(
'case'
,
yaml_data
)
def
test_template
(
self
,
case
):
req_handler
.
ReqHandler
.
send_requests
(
case
=
case
,
var_class
=
templateData
)
TestData/automation/template_test_data.py
0 → 100644
View file @
ad6e5121
from
Utils.global_variate
import
Global
from
Utils.config_handler
import
base_config
class
templateData
(
Global
):
pass
TestFile/automation/template_select.py
0 → 100644
View file @
ad6e5121
from
Utils.sql_handler
import
test_env_conn
from
TestData.automation.template_test_data
import
templateData
template_parent_select_sql
=
f
'select * from rule_template where status = 1'
template_parent_select_result
=
test_env_conn
.
select_many_value
(
sql
=
template_parent_select_sql
)
for
i
in
template_parent_select_result
:
if
i
[
'tpl_category'
]
==
'autoanswer'
:
workflow_parent_template_id
=
i
[
'tpl_id'
]
setattr
(
templateData
,
'workflow_parent_template_id'
,
workflow_parent_template_id
)
elif
i
[
'tpl_category'
]
==
'willdesk'
:
rule_parent_template_id
=
i
[
'tpl_id'
]
setattr
(
templateData
,
'rule_parent_template_id'
,
rule_parent_template_id
)
workflow_template_select_sql
=
f
'select * from rule_tpl_usecase where tpl_id = "
{
workflow_parent_template_id
}
" and status = 1'
workflow_template_select_result
=
test_env_conn
.
select_many_value
(
sql
=
workflow_template_select_sql
)
workflow_template_num
=
len
(
workflow_template_select_result
)
workflow_template_id
=
workflow_template_select_result
[
0
][
'tpld_id'
]
workflow_template_title
=
workflow_template_select_result
[
0
][
'title'
]
workflow_template_describe
=
workflow_template_select_result
[
0
][
'describe'
]
workflow_template_event_id
=
workflow_template_select_result
[
0
][
'event_id'
]
setattr
(
templateData
,
'workflow_template_num'
,
workflow_template_num
)
setattr
(
templateData
,
'workflow_template_id'
,
workflow_template_id
)
setattr
(
templateData
,
'workflow_template_title'
,
workflow_template_title
)
setattr
(
templateData
,
'workflow_template_describe'
,
workflow_template_describe
)
setattr
(
templateData
,
'workflow_template_event_id'
,
workflow_template_event_id
)
rule_template_select_sql
=
f
'select * from rule_tpl_usecase where tpl_id = "
{
rule_parent_template_id
}
" and status = 1'
rule_template_select_result
=
test_env_conn
.
select_many_value
(
sql
=
rule_template_select_sql
)
rule_template_num
=
len
(
rule_template_select_result
)
rule_template_id
=
rule_template_select_result
[
0
][
'tpld_id'
]
rule_template_title
=
rule_template_select_result
[
0
][
'title'
]
rule_template_describe
=
rule_template_select_result
[
0
][
'describe'
]
rule_template_event_id
=
rule_template_select_result
[
0
][
'event_id'
]
setattr
(
templateData
,
'rule_template_num'
,
rule_template_num
)
setattr
(
templateData
,
'rule_template_id'
,
rule_template_id
)
setattr
(
templateData
,
'rule_template_title'
,
rule_template_title
)
setattr
(
templateData
,
'rule_template_describe'
,
rule_template_describe
)
setattr
(
templateData
,
'rule_template_event_id'
,
rule_template_event_id
)
Utils/req_handler.py
View file @
ad6e5121
...
...
@@ -25,27 +25,30 @@ class ReqHandler:
:param var_class: 传入对应的变量类(变量类必须先继承Global公用变量类)
:return: 返回处理好的case字典
'''
case
=
str
(
case
)
replace_words
=
re
.
findall
(
r
'\$\{(.+?)\}'
,
case
)
if
not
replace_words
:
try
:
case
=
str
(
case
)
replace_words
=
re
.
findall
(
r
'\$\{(.+?)\}'
,
case
)
if
not
replace_words
:
return
eval
(
case
)
else
:
for
word
in
replace_words
:
try
:
value
=
getattr
(
var_class
,
word
)
#找到正确的变量值
if
not
isinstance
(
value
,
str
):
case
=
case
.
replace
(
r
"'${%s}'"
%
word
,
str
(
value
))
#替换掉${}变量符
else
:
case
=
case
.
replace
(
r
"${%s}"
%
word
,
str
(
value
))
#替换掉${}变量符
if
re
.
findall
(
r
'\$\{(.+?)\}'
,
case
):
#保底
case
=
case
.
replace
(
r
'${%s}'
%
word
,
str
(
value
))
except
Exception
:
import
traceback
print
(
traceback
.
print_exc
())
print
(
f
'
{
word
}
变量未找到'
)
raise
Exception
return
eval
(
case
)
else
:
for
word
in
replace_words
:
try
:
value
=
getattr
(
var_class
,
word
)
#找到正确的变量值
if
not
isinstance
(
value
,
str
):
case
=
case
.
replace
(
r
"'${%s}'"
%
word
,
str
(
value
))
#替换掉${}变量符
else
:
case
=
case
.
replace
(
r
"${%s}"
%
word
,
str
(
value
))
#替换掉${}变量符
if
re
.
findall
(
r
'\$\{(.+?)\}'
,
case
):
#保底
case
=
case
.
replace
(
r
'${%s}'
%
word
,
str
(
value
))
except
Exception
:
import
traceback
print
(
traceback
.
print_exc
())
print
(
f
'
{
word
}
变量未找到'
)
raise
Exception
return
eval
(
case
)
except
SyntaxError
:
print
(
'内容可能含有单引号或者换行导致报错,用例:'
,
case
)
raise
Exception
@
classmethod
def
send_requests
(
self
,
case
,
var_class
):
try
:
...
...
YamlCase/automation/template.yaml
0 → 100644
View file @
ad6e5121
api1
:
title
:
检查workflow模板列表
url
:
/api/v1/rule/tplUseCaseList
method
:
post
before_sql
:
automation/template_select.py
data
:
{
"
page"
:
1
,
"
pageSize"
:
100
,
"
tplCateId"
:
"
${workflow_parent_template_id}"
,
"
v"
:
"
${v}"
}
expected
:
-
eq
:
{
"
$.code"
:
0
}
-
eq
:
{
"
$.data.total"
:
"
${workflow_template_num}"
}
-
eq
:
{
"
$.data.list[?(@.tpldId
==
'${workflow_template_id}')].describe"
:
"
${workflow_template_describe}"
}
-
eq
:
{
"
$.data.list[?(@.tpldId
==
'${workflow_template_id}')].eventId"
:
"
${workflow_template_event_id}"
}
-
eq
:
{
"
$.data.list[?(@.tpldId
==
'${workflow_template_id}')].title"
:
"
${workflow_template_title}"
}
api2
:
title
:
检查rule模板列表
url
:
/api/v1/rule/tplUseCaseList
method
:
post
data
:
{
"
page"
:
1
,
"
pageSize"
:
100
,
"
tplCateId"
:
"
${rule_parent_template_id}"
,
"
v"
:
"
${v}"
}
expected
:
-
eq
:
{
"
$.code"
:
0
}
-
eq
:
{
"
$.data.total"
:
"
${rule_template_num}"
}
-
eq
:
{
"
$.data.list[?(@.tpldId
==
'${rule_template_id}')].describe"
:
"
${rule_template_describe}"
}
-
eq
:
{
"
$.data.list[?(@.tpldId
==
'${rule_template_id}')].eventId"
:
"
${rule_template_event_id}"
}
-
eq
:
{
"
$.data.list[?(@.tpldId
==
'${rule_template_id}')].title"
:
"
${rule_template_title}"
}
\ 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