Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
泰斯特Test
Taisite-Platform
提交
14a7c547
T
Taisite-Platform
项目概览
泰斯特Test
/
Taisite-Platform
8 个月 前同步成功
通知
121
Star
28
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Taisite-Platform
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
14a7c547
编写于
9月 12, 2020
作者:
泰斯特Test
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[feat]正则查询语句支持全局替换
上级
f499f52a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
57 addition
and
41 deletion
+57
-41
backend/testframe/interfaceTest/tester.py
backend/testframe/interfaceTest/tester.py
+57
-41
未找到文件。
backend/testframe/interfaceTest/tester.py
浏览文件 @
14a7c547
...
...
@@ -37,6 +37,7 @@ class tester:
from
app
import
nlper
self
.
nlper
=
nlper
except
ImportError
as
e
:
# pass
raise
ImportError
(
'nlp模型导入失败!<%s>'
%
e
)
self
.
test_case_list
=
test_case_list
...
...
@@ -136,49 +137,58 @@ class tester:
domain
=
test_case
[
"domain"
]
if
'domain'
in
test_case
and
isinstance
(
test_case
[
"domain"
],
str
)
and
\
not
test_case
[
"domain"
].
strip
()
==
''
else
self
.
domain
if
'requestProtocol'
in
test_case
and
'route'
in
test_case
:
test_case
[
'route'
]
=
\
common
.
resolve_global_var
(
pre_resolve_var
=
test_case
[
'route'
],
global_var_dic
=
self
.
global_vars
)
\
if
isinstance
(
test_case
[
'route'
],
str
)
else
test_case
[
'route'
]
url
=
'%s://%s%s'
%
(
test_case
[
'requestProtocol'
].
lower
(),
domain
,
test_case
[
'route'
])
if
'requestMethod'
in
test_case
:
method
=
test_case
[
'requestMethod'
]
if
'presendParams'
in
test_case
and
isinstance
(
test_case
[
'presendParams'
],
dict
):
# dict 先转 str,方便全局变量替换
test_case
[
'presendParams'
]
=
str
(
test_case
[
'presendParams'
])
# 全局替换
test_case
[
'presendParams'
]
=
common
.
resolve_global_var
(
pre_resolve_var
=
test_case
[
'presendParams'
],
global_var_dic
=
self
.
global_vars
)
# 转回 dict
test_case
[
'presendParams'
]
=
ast
.
literal_eval
(
test_case
[
'presendParams'
])
json_data
=
test_case
[
'presendParams'
]
if
'headers'
in
test_case
and
not
test_case
[
'headers'
]
in
[
""
,
None
,
{},
{
''
:
''
}]:
if
isinstance
(
test_case
[
'headers'
],
list
):
for
header
in
test_case
[
'headers'
]:
if
not
header
[
'name'
].
strip
()
==
''
:
headers
[
header
[
'name'
]]
=
\
common
.
resolve_global_var
(
pre_resolve_var
=
header
[
'value'
],
global_var_dic
=
self
.
global_vars
)
\
if
isinstance
(
header
[
'value'
],
str
)
else
headers
[
header
[
'name'
]]
else
:
raise
TypeError
(
'headers must be list!'
)
if
'setGlobalVars'
in
test_case
and
not
test_case
[
'setGlobalVars'
]
in
[[],
{},
""
,
None
]:
set_global_vars
=
test_case
[
'setGlobalVars'
]
try
:
if
'requestProtocol'
in
test_case
and
'route'
in
test_case
:
test_case
[
'route'
]
=
\
common
.
resolve_global_var
(
pre_resolve_var
=
test_case
[
'route'
],
global_var_dic
=
self
.
global_vars
)
\
if
isinstance
(
test_case
[
'route'
],
str
)
else
test_case
[
'route'
]
url
=
'%s://%s%s'
%
(
test_case
[
'requestProtocol'
].
lower
(),
domain
,
test_case
[
'route'
])
if
'requestMethod'
in
test_case
:
method
=
test_case
[
'requestMethod'
]
if
'presendParams'
in
test_case
and
isinstance
(
test_case
[
'presendParams'
],
dict
):
# dict 先转 str,方便全局变量替换
test_case
[
'presendParams'
]
=
str
(
test_case
[
'presendParams'
])
# 全局替换
test_case
[
'presendParams'
]
=
common
.
resolve_global_var
(
pre_resolve_var
=
test_case
[
'presendParams'
],
global_var_dic
=
self
.
global_vars
)
# 转回 dict
test_case
[
'presendParams'
]
=
ast
.
literal_eval
(
test_case
[
'presendParams'
])
json_data
=
test_case
[
'presendParams'
]
headers
=
None
if
headers
==
{}
else
headers
if
'headers'
in
test_case
and
not
test_case
[
'headers'
]
in
[
""
,
None
,
{},
{
''
:
''
}]:
if
isinstance
(
test_case
[
'headers'
],
list
):
for
header
in
test_case
[
'headers'
]:
if
not
header
[
'name'
].
strip
()
==
''
:
headers
[
header
[
'name'
]]
=
\
common
.
resolve_global_var
(
pre_resolve_var
=
header
[
'value'
],
global_var_dic
=
self
.
global_vars
)
\
if
isinstance
(
header
[
'value'
],
str
)
else
headers
[
header
[
'name'
]]
else
:
raise
TypeError
(
'headers must be list!'
)
test_case
[
'cookies'
]
=
[]
for
key
,
value
in
session
.
cookies
.
items
():
cookie_dic
=
dict
()
cookie_dic
[
'name'
]
=
key
cookie_dic
[
'value'
]
=
value
test_case
[
'cookies'
].
append
(
cookie_dic
)
if
'setGlobalVars'
in
test_case
and
not
test_case
[
'setGlobalVars'
]
in
[[],
{},
""
,
None
]:
set_global_vars
=
test_case
[
'setGlobalVars'
]
headers
=
None
if
headers
==
{}
else
headers
test_case
[
'cookies'
]
=
[]
for
key
,
value
in
session
.
cookies
.
items
():
cookie_dic
=
dict
()
cookie_dic
[
'name'
]
=
key
cookie_dic
[
'value'
]
=
value
test_case
[
'cookies'
].
append
(
cookie_dic
)
except
BaseException
as
e
:
returned_data
[
"status"
]
=
'failed'
returned_data
[
"testConclusion"
].
append
(
'测试前置准备失败, 错误信息: <%s> '
%
e
)
return
returned_data
try
:
...
...
@@ -191,7 +201,7 @@ class tester:
response
=
session
.
request
(
url
=
url
,
method
=
method
,
json
=
json_data
,
headers
=
headers
,
verify
=
False
)
if
use_json_data
\
else
session
.
request
(
url
=
url
,
method
=
method
,
data
=
json_data
,
headers
=
headers
,
verify
=
False
)
# print(response.headers) TODO 请求头断言
except
BaseException
as
e
:
returned_data
[
"status"
]
=
'failed'
returned_data
[
"testConclusion"
].
append
(
'请求失败, 错误信息: <%s> '
%
e
)
...
...
@@ -204,8 +214,10 @@ class tester:
returned_data
[
"responseData"
]
=
response
.
text
try
:
response_json
=
json
.
loads
(
response
.
text
)
if
isinstance
(
response
.
text
,
str
)
\
and
response
.
text
.
strip
()
else
{}
except
BaseException
as
e
:
if
set_global_vars
and
isinstance
(
set_global_vars
,
list
):
...
...
@@ -328,6 +340,10 @@ class tester:
if
regex
.
strip
()
==
''
:
continue
query
=
crd
[
'query'
]
# query 支持全局变量替换
for
index
,
single_query
in
enumerate
(
query
):
query
[
index
]
=
common
.
resolve_global_var
(
pre_resolve_var
=
single_query
,
global_var_dic
=
self
.
global_vars
)
real_value
=
common
.
dict_get
(
response_json
,
query
)
if
real_value
is
None
:
returned_data
[
"status"
]
=
'failed'
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录