修复重复打印日志以及优化报错信息。

This commit is contained in:
chenyongzhiaaron 2023-09-04 10:24:49 +08:00
parent b1a24049f1
commit 67209e7096
42 changed files with 933 additions and 1313 deletions

View File

@ -2,9 +2,15 @@
<project version="4">
<component name="DBNavigator.Project.DataEditorManager">
<record-view-column-sorting-type value="BY_INDEX" />
<value-preview-text-wrapping value="true" />
<value-preview-text-wrapping value="false" />
<value-preview-pinned value="false" />
</component>
<component name="DBNavigator.Project.DatabaseBrowserManager">
<autoscroll-to-editor value="false" />
<autoscroll-from-editor value="true" />
<show-object-properties value="true" />
<loaded-nodes />
</component>
<component name="DBNavigator.Project.DatabaseEditorStateManager">
<last-used-providers />
</component>

View File

@ -1,2 +0,0 @@
2023-06-25 22:14:00 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-06-25 22:45:38 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None

View File

@ -1,108 +0,0 @@
2023-07-05 09:17:38 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-05 09:17:40 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-05 09:17:43 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-05 09:17:43 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-05 09:20:43 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-05 09:20:46 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-05 09:20:49 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-05 09:20:49 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-05 09:21:53 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-05 09:21:55 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-05 09:21:58 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-05 09:21:58 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-05 09:46:55 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-05 09:46:57 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-05 09:47:00 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-05 09:47:00 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-05 09:52:10 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-05 09:52:10 | ERROR | 发送请求失败: URL cannot be None
2023-07-05 09:52:10 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-05 09:52:12 | ERROR | key:{{get_timestamp()}},在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 09:52:15 | ERROR | key:{{get_timestamp()}},在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:05:00 | ERROR | key:<re.Match object; span=(461, 468), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:05:02 | ERROR | key:<re.Match object; span=(153, 166), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:05:05 | ERROR | key:<re.Match object; span=(166, 179), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:07:57 | ERROR | key:<re.Match object; span=(463, 470), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:07:57 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-05 15:07:59 | ERROR | key:<re.Match object; span=(409, 416), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:07:59 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-05 15:08:02 | ERROR | key:<re.Match object; span=(360, 367), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:08:02 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-05 15:08:02 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-05 15:12:26 | ERROR | key:<re.Match object; span=(459, 466), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:12:26 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-05 15:12:28 | ERROR | key:<re.Match object; span=(405, 412), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:12:29 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-05 15:12:32 | ERROR | key:<re.Match object; span=(356, 363), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:12:32 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-05 15:12:32 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-05 15:15:53 | ERROR | key:<re.Match object; span=(465, 472), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:15:53 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-05 15:15:55 | ERROR | key:<re.Match object; span=(411, 418), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:15:55 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-05 15:15:58 | ERROR | key:<re.Match object; span=(362, 369), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:15:58 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-05 15:15:59 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-05 15:17:24 | ERROR | key:<re.Match object; span=(465, 472), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:17:24 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-05 15:17:26 | ERROR | key:<re.Match object; span=(411, 418), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:17:26 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-05 15:17:29 | ERROR | key:<re.Match object; span=(362, 369), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:17:29 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-05 15:17:29 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-05 15:17:52 | ERROR | key:<re.Match object; span=(465, 472), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:17:54 | ERROR | key:<re.Match object; span=(457, 464), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:17:57 | ERROR | key:<re.Match object; span=(408, 415), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:17:57 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-05 15:31:17 | ERROR | key:<re.Match object; span=(463, 470), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:31:19 | ERROR | key:<re.Match object; span=(455, 462), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:31:22 | ERROR | key:<re.Match object; span=(406, 413), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-05 15:31:22 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None

View File

@ -1,25 +0,0 @@
2023-07-12 11:17:52 | ERROR | key:<re.Match object; span=(282, 289), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-12 11:17:52 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
Expecting value: line 1 column 1 (char 0)
2023-07-12 11:17:54 | ERROR | key:<re.Match object; span=(367, 374), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-12 11:17:54 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
Expecting value: line 1 column 1 (char 0)
2023-07-12 11:17:57 | ERROR | key:<re.Match object; span=(320, 327), match='{{999}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-12 11:17:57 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-12 11:17:57 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
Expecting value: line 1 column 1 (char 0)
2023-07-12 15:06:03 | ERROR | 发送请求失败: list indices must be integers or slices, not str
2023-07-12 15:12:59 | ERROR | 发送请求失败: list indices must be integers or slices, not str
2023-07-12 15:13:12 | ERROR | 发送请求失败: list indices must be integers or slices, not str
2023-07-12 15:13:35 | ERROR | 发送请求失败: list indices must be integers or slices, not str
2023-07-12 15:14:04 | ERROR | 发送请求失败: list indices must be integers or slices, not str
2023-07-12 15:14:27 | ERROR | 发送请求失败: list indices must be integers or slices, not str
2023-07-12 15:15:51 | ERROR | 发送请求失败: read of closed file
2023-07-12 15:24:51 | ERROR | 发送请求失败: read of closed file
2023-07-12 16:07:16 | ERROR | 发送请求失败: read of closed file
2023-07-12 16:07:38 | ERROR | 发送请求失败: read of closed file
2023-07-12 16:24:30 | ERROR | 发送请求失败: URL cannot be None
2023-07-12 16:25:45 | ERROR | 发送请求失败: Data must not be a string.

View File

@ -1,304 +0,0 @@
2023-07-13 15:04:15 | ERROR | | called clear_date | error: 快看,异常了,别唧唧哇哇,块排查: [Errno 13] Permission denied: 'D:\\apk_api\\api-test-project\\cases\\cases\\test_api.xlsx'
2023-07-13 15:04:16 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:04:17 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:04:17 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-13 15:04:17 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,块排查: [Errno 13] Permission denied: 'D:\\apk_api\\api-test-project\\cases\\cases\\test_api.xlsx'
2023-07-13 15:04:18 | ERROR | key:<re.Match object; span=(153, 166), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:04:18 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:04:18 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-13 15:04:18 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,块排查: [Errno 13] Permission denied: 'D:\\apk_api\\api-test-project\\cases\\cases\\test_api.xlsx'
2023-07-13 15:04:19 | ERROR | key:<re.Match object; span=(166, 179), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:04:19 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:04:19 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:04:19 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-13 15:04:19 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,块排查: [Errno 13] Permission denied: 'D:\\apk_api\\api-test-project\\cases\\cases\\test_api.xlsx'
2023-07-13 15:04:32 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:04:32 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:04:32 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-13 15:04:33 | ERROR | key:<re.Match object; span=(153, 166), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:04:33 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:04:33 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-13 15:04:34 | ERROR | key:<re.Match object; span=(166, 179), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:04:34 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:04:34 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:04:34 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-13 15:12:39 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:12:39 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-13 15:12:40 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:12:40 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-13 15:12:41 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:12:41 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:12:41 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:12:41 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-13 15:15:43 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:15:43 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-13 15:15:44 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:15:44 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-13 15:15:45 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:15:45 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:15:45 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:15:45 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-13 15:19:25 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:19:25 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-13 15:19:26 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:19:26 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-13 15:19:27 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:19:27 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:19:27 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:19:27 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-13 15:19:37 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:19:37 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-13 15:19:38 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:19:38 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-13 15:19:39 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:19:39 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:19:39 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:19:39 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-13 15:20:43 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:20:43 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-13 15:20:44 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:20:44 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-13 15:20:45 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:20:45 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:20:45 | ERROR | 发送请求失败: local variable 'fs' referenced before assignment
2023-07-13 15:20:45 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-13 15:21:33 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
local variable 'fs' referenced before assignment
2023-07-13 15:21:34 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
local variable 'fs' referenced before assignment
2023-07-13 15:21:35 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:21:35 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:21:35 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
local variable 'fs' referenced before assignment
2023-07-13 15:22:11 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'Action' object has no attribute 'validate_variables_list'
2023-07-13 15:22:13 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:22:13 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:22:13 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'Action' object has no attribute 'validate_variables_list'
2023-07-13 15:27:48 | ERROR | 参数格式错误!
2023-07-13 15:27:48 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
exceptions must derive from BaseException
2023-07-13 15:27:49 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:27:49 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:27:49 | ERROR | 参数格式错误!
2023-07-13 15:27:49 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
exceptions must derive from BaseException
2023-07-13 15:30:31 | ERROR | 参数格式错误!
2023-07-13 15:30:31 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
exceptions must derive from BaseException
2023-07-13 15:30:32 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 15:30:32 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 15:30:32 | ERROR | 参数格式错误!
2023-07-13 15:30:32 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
exceptions must derive from BaseException
2023-07-13 16:42:55 | ERROR | 参数格式错误!
2023-07-13 16:42:55 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
exceptions must derive from BaseException
2023-07-13 16:42:56 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 16:42:56 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 16:42:56 | ERROR | 参数格式错误!
2023-07-13 16:42:56 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
exceptions must derive from BaseException
2023-07-13 17:52:43 | ERROR | 参数格式错误!
2023-07-13 17:52:43 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
exceptions must derive from BaseException
2023-07-13 17:52:44 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 17:52:44 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 17:52:44 | ERROR | 参数格式错误!
2023-07-13 17:52:44 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
exceptions must derive from BaseException
2023-07-13 17:55:34 | ERROR | 参数格式错误!
2023-07-13 17:55:34 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
exceptions must derive from BaseException
2023-07-13 17:55:35 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 17:55:35 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 17:55:35 | ERROR | 参数格式错误!
2023-07-13 17:55:35 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
exceptions must derive from BaseException
2023-07-13 17:59:30 | ERROR | 参数格式错误!
2023-07-13 17:59:30 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
exceptions must derive from BaseException
2023-07-13 17:59:31 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 17:59:31 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 17:59:31 | ERROR | 参数格式错误!
2023-07-13 17:59:32 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
exceptions must derive from BaseException
2023-07-13 18:00:30 | ERROR | 参数格式错误!
2023-07-13 18:00:30 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
exceptions must derive from BaseException
2023-07-13 18:00:31 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 18:00:31 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 18:00:31 | ERROR | 参数格式错误!
2023-07-13 18:00:31 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
exceptions must derive from BaseException
2023-07-13 18:00:53 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'Action' object has no attribute 'built_in_comparators'
2023-07-13 18:00:55 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 18:00:55 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 18:00:55 | ERROR | 提取失败提取表达式data[0].tvSequence没有提取到对应的值
2023-07-13 18:00:55 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'Action' object has no attribute 'built_in_comparators'
2023-07-13 18:02:05 | ERROR | | called load_built_in_comparators | error: 快看,异常了,别唧唧哇哇,块排查: load_built_in_comparators() missing 1 required positional argument: 'self'
2023-07-13 18:02:08 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'code', '期望值': 200, '实际值': 'AG_100003', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': 'msg', '期望值': '添加成功', '实际值': '您的登陆状态已过期,请重新登陆。', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-13 18:02:09 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 18:02:09 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 18:02:09 | ERROR | 提取失败提取表达式data[0].tvSequence没有提取到对应的值
2023-07-13 18:02:09 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data[0].tvSequence', '期望值': '{{tvSequence}}', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-13 18:04:10 | ERROR | | called load_built_in_comparators | error: 快看,异常了,别唧唧哇哇,块排查: load_built_in_comparators() missing 1 required positional argument: 'self'
2023-07-13 18:04:13 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'code', '期望值': 200, '实际值': 'AG_100003', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': 'msg', '期望值': '添加成功', '实际值': '您的登陆状态已过期,请重新登陆。', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-13 18:04:14 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 18:04:14 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 18:04:14 | ERROR | 提取失败提取表达式data[0].tvSequence没有提取到对应的值
2023-07-13 18:04:14 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data[0].tvSequence', '期望值': '{{tvSequence}}', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-13 18:52:43 | ERROR | | called load_built_in_comparators | error: 快看,异常了,别唧唧哇哇,块排查: load_built_in_comparators() missing 1 required positional argument: 'self'
2023-07-13 18:53:56 | ERROR | | called load_built_in_comparators | error: 快看,异常了,别唧唧哇哇,块排查: load_built_in_comparators() missing 1 required positional argument: 'self'
2023-07-13 18:54:30 | ERROR | | called load_built_in_comparators | error: 快看,异常了,别唧唧哇哇,块排查: load_built_in_comparators() missing 1 required positional argument: 'self'
2023-07-13 18:54:56 | ERROR | | called load_built_in_comparators | error: 快看,异常了,别唧唧哇哇,块排查: load_built_in_comparators() missing 1 required positional argument: 'self'
2023-07-13 18:55:00 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'code', '期望值': 200, '实际值': 'AG_100003', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': 'msg', '期望值': '添加成功', '实际值': '您的登陆状态已过期,请重新登陆。', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-13 18:55:01 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 18:55:01 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 18:55:01 | ERROR | 提取失败提取表达式data[0].tvSequence没有提取到对应的值
2023-07-13 18:55:01 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data[0].tvSequence', '期望值': '{{tvSequence}}', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-13 19:10:18 | ERROR | | called load_built_in_comparators | error: 快看,异常了,别唧唧哇哇,块排查: load_built_in_comparators() missing 1 required positional argument: 'self'
2023-07-13 19:10:21 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'code', '期望值': 200, '实际值': 'AG_100003', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': 'msg', '期望值': '添加成功', '实际值': '您的登陆状态已过期,请重新登陆。', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-13 19:10:22 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 19:10:22 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 19:10:22 | ERROR | 提取失败提取表达式data[0].tvSequence没有提取到对应的值
2023-07-13 19:10:22 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data[0].tvSequence', '期望值': '{{tvSequence}}', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-13 19:15:37 | ERROR | | called load_built_in_functions | error: 快看,异常了,别唧唧哇哇,块排查: vars() argument must have __dict__ attribute
2023-07-13 19:15:37 | ERROR | | called set_bif_fun | error: 快看,异常了,别唧唧哇哇,块排查: 'NoneType' object has no attribute 'items'
2023-07-13 19:16:12 | ERROR | | called load_built_in_functions | error: 快看,异常了,别唧唧哇哇,块排查: vars() argument must have __dict__ attribute
2023-07-13 19:16:12 | ERROR | | called set_bif_fun | error: 快看,异常了,别唧唧哇哇,块排查: 'NoneType' object has no attribute 'items'
2023-07-13 19:30:55 | ERROR | | called load_built_in_comparators | error: 快看,异常了,别唧唧哇哇,块排查: load_built_in_comparators() missing 1 required positional argument: 'self'
2023-07-13 19:30:57 | ERROR | 异常用例: 安全纯净大屏_2_登录_非BIP用户登录
HTTPSConnectionPool(host='bimdc.bzlrobot.com', port=443): Max retries exceeded with url: /bsp/test/user/ugs/auth/loginByNotBip (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-13 19:30:58 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='bimdc.bzlrobot.com', port=443): Max retries exceeded with url: /bsp/test/user/ugs/ibs/api/ibs-lms-base/tvConfig/addTvSequence?t=1689247858607 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-13 19:30:59 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 19:30:59 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 19:30:59 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='bimdc.bzlrobot.com', port=443): Max retries exceeded with url: /bsp/test/user/ugs/ibs/api/ibs-lms-base/tvConfig/getTvInfo?t=1689247859760&projectId=104966 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-13 19:31:09 | ERROR | | called load_built_in_comparators | error: 快看,异常了,别唧唧哇哇,块排查: load_built_in_comparators() missing 1 required positional argument: 'self'
2023-07-13 19:31:12 | ERROR | 异常用例: 安全纯净大屏_4_劳务基础配置_绑定TV
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'code', '期望值': 200, '实际值': 'AG_100003', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': 'msg', '期望值': '添加成功', '实际值': '您的登陆状态已过期,请重新登陆。', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-13 19:31:13 | ERROR | key:<re.Match object; span=(365, 379), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 19:31:13 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 19:31:13 | ERROR | 提取失败提取表达式data[0].tvSequence没有提取到对应的值
2023-07-13 19:31:13 | ERROR | 异常用例: 安全纯净大屏_5_劳务基础配置_查询配置
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data[0].tvSequence', '期望值': '{{tvSequence}}', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-13 19:39:56 | ERROR | | called load_built_in_comparators | error: 快看,异常了,别唧唧哇哇,块排查: load_built_in_comparators() missing 1 required positional argument: 'self'
2023-07-13 19:39:59 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'code', '期望值': 200, '实际值': 200, '断言方法': 'eq:实际值与期望值相等'}, {'检查项': 'msg', '期望值': '添加成功', '实际值': '添加成功', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-13 19:40:00 | ERROR | key:<re.Match object; span=(411, 425), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-13 19:40:00 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 19:40:00 | ERROR | 提取失败提取表达式data[0].tvSequence没有提取到对应的值
2023-07-13 19:40:00 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data[0].tvSequence', '期望值': '{{tvSequence}}', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-13 19:43:55 | ERROR | | called load_built_in_comparators | error: 快看,异常了,别唧唧哇哇,块排查: load_built_in_comparators() missing 1 required positional argument: 'self'
2023-07-13 19:43:58 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'code', '期望值': 200, '实际值': 200, '断言方法': 'eq:实际值与期望值相等'}, {'检查项': 'msg', '期望值': '添加成功', '实际值': '添加成功', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-13 19:43:59 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 19:43:59 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '104966', '实际值': '104966', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-13 19:44:23 | ERROR | | called load_built_in_comparators | error: 快看,异常了,别唧唧哇哇,块排查: load_built_in_comparators() missing 1 required positional argument: 'self'
2023-07-13 19:47:38 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 19:50:03 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='bimdc.bzlrobot.com', port=443): Max retries exceeded with url: /bsp/test/user/ugs/auth/loginByNotBip (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-13 19:50:04 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='bimdc.bzlrobot.com', port=443): Max retries exceeded with url: /bsp/test/user/ugs/ibs/api/ibs-lms-base/tvConfig/addTvSequence?t=1689249004213 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-13 19:50:05 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 19:50:05 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='bimdc.bzlrobot.com', port=443): Max retries exceeded with url: /bsp/test/user/ugs/ibs/api/ibs-lms-base/tvConfig/getTvInfo?t=1689249005341&projectId=104966 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-13 19:50:17 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
'Action' object has no attribute 'built_in_comparators'
2023-07-13 19:50:18 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 19:50:18 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
'Action' object has no attribute 'built_in_comparators'
2023-07-13 19:51:09 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
'Action' object has no attribute 'built_in_comparators'
2023-07-13 19:51:10 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 19:51:10 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
'Action' object has no attribute 'built_in_comparators'
2023-07-13 20:10:34 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='bimdc.bzlrobot.com', port=443): Max retries exceeded with url: /bsp/test/user/ugs/auth/loginByNotBip (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-13 20:10:35 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='bimdc.bzlrobot.com', port=443): Max retries exceeded with url: /bsp/test/user/ugs/ibs/api/ibs-lms-base/tvConfig/addTvSequence?t=1689250235406 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-13 20:10:36 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 20:10:36 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='bimdc.bzlrobot.com', port=443): Max retries exceeded with url: /bsp/test/user/ugs/ibs/api/ibs-lms-base/tvConfig/getTvInfo?t=1689250236535&projectId=104966 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-13 20:10:52 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
'Action' object has no attribute 'built_in_comparators'
2023-07-13 20:10:53 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 20:10:53 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
'Action' object has no attribute 'built_in_comparators'
2023-07-13 20:11:51 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 20:20:37 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 20:23:07 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 20:24:02 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 20:27:02 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 20:27:55 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 20:31:15 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 20:33:24 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 23:38:51 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
decorator() got an unexpected keyword argument 'json'
2023-07-13 23:38:52 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
decorator() got an unexpected keyword argument 'json'
2023-07-13 23:38:53 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-13 23:38:53 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
decorator() got an unexpected keyword argument 'params'

View File

@ -1,199 +0,0 @@
2023-07-14 00:15:44 | ERROR | 发送请求失败: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:15:44 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
'NoneType' object has no attribute 'json'
2023-07-14 00:15:45 | ERROR | 发送请求失败: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689264945235 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:15:45 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
'NoneType' object has no attribute 'json'
2023-07-14 00:15:46 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 00:15:46 | ERROR | 发送请求失败: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689264946368&projectId=3333 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:15:46 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
'NoneType' object has no attribute 'json'
2023-07-14 00:19:48 | ERROR | 发送请求失败: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:19:48 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:19:49 | ERROR | 发送请求失败: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689265189499 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:19:49 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689265189499 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:19:50 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 00:19:50 | ERROR | 发送请求失败: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689265190636&projectId=3333 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:19:50 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689265190636&projectId=3333 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:20:10 | ERROR | 发送请求失败: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002184647C370>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 00:20:10 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002184647C370>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 00:20:14 | ERROR | 发送请求失败: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689265212011 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002184649D3D0>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 00:20:14 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689265212011 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002184649D3D0>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 00:20:16 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 00:20:19 | ERROR | 发送请求失败: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689265216060&projectId=3333 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000218464DE4C0>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 00:20:19 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689265216060&projectId=3333 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000218464DE4C0>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 00:32:06 | ERROR | 发送请求失败: name 'self' is not defined
2023-07-14 00:32:06 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
name 'self' is not defined
2023-07-14 00:32:07 | ERROR | 发送请求失败: name 'self' is not defined
2023-07-14 00:32:07 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
name 'self' is not defined
2023-07-14 00:32:08 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 00:32:08 | ERROR | 发送请求失败: name 'self' is not defined
2023-07-14 00:32:08 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
name 'self' is not defined
2023-07-14 00:32:31 | ERROR | 发送请求失败: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:32:31 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:32:32 | ERROR | 发送请求失败: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689265952519 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:32:32 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689265952519 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:32:33 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 00:32:33 | ERROR | 发送请求失败: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689265953669&projectId=3333 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:32:33 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689265953669&projectId=3333 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:39:00 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
module 'common.utils.logger' has no attribute 'error'
2023-07-14 00:39:01 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
module 'common.utils.logger' has no attribute 'error'
2023-07-14 00:39:03 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 00:39:03 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
module 'common.utils.logger' has no attribute 'error'
2023-07-14 00:42:32 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
module 'common.utils.logger' has no attribute 'error'
2023-07-14 00:42:33 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
module 'common.utils.logger' has no attribute 'error'
2023-07-14 00:42:34 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 00:42:34 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
module 'common.utils.logger' has no attribute 'error'
2023-07-14 00:46:03 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:46:04 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689266764798 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 00:46:05 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 00:46:05 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689266765926&projectId=3333 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 17:56:48 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000279F94EBE80>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 17:56:50 | ERROR | key:<re.Match object; span=(127, 140), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 17:56:56 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689328610847 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000279F952B0A0>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 17:56:57 | ERROR | key:<re.Match object; span=(138, 151), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 17:56:57 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 17:57:03 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689328617901&projectId=3333 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000279F94C9280>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 18:05:55 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002B958C01370>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 18:05:56 | ERROR | key:<re.Match object; span=(127, 140), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 18:06:05 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689329156326 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002B958CC8400>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 18:06:06 | ERROR | key:<re.Match object; span=(138, 151), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 18:06:06 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 18:06:20 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689329166696&projectId=3333 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002B958C69D90>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 21:39:34 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 21:39:35 | ERROR | key:<re.Match object; span=(127, 140), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 21:39:35 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689341975678 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 21:39:36 | ERROR | key:<re.Match object; span=(138, 151), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 21:39:36 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 21:39:36 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689341976802&projectId=3333 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 21:45:50 | ERROR | | called clear_date | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-14 21:45:55 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000021972E47D90>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 21:45:55 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-14 21:45:56 | ERROR | key:<re.Match object; span=(127, 140), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 21:45:59 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689342356074 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000021972E47EE0>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 21:45:59 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-14 21:46:00 | ERROR | key:<re.Match object; span=(138, 151), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 21:46:00 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 21:46:03 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689342360415&projectId=3333 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000021972E71820>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 21:46:03 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-14 21:51:21 | ERROR | | called clear_date | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-14 21:51:25 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000137E1F36D90>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 21:51:25 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-14 21:51:26 | ERROR | key:<re.Match object; span=(127, 140), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 21:51:29 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689342686629 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000137E1F36F70>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 21:51:29 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-14 21:51:30 | ERROR | key:<re.Match object; span=(138, 151), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 21:51:30 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 21:51:33 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689342690487&projectId=3333 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000137E1F63850>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 21:51:33 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-14 21:57:41 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000022B4E9A8A90>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 21:57:42 | ERROR | key:<re.Match object; span=(152, 165), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 21:57:45 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689343062620 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000022B4EA822B0>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 21:57:46 | ERROR | key:<re.Match object; span=(138, 151), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 21:57:46 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 21:57:49 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689343066559&projectId=3333 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000022B4EB06100>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 22:00:03 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 22:00:04 | ERROR | key:<re.Match object; span=(152, 165), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 22:00:04 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689343204417 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 22:00:05 | ERROR | key:<re.Match object; span=(138, 151), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 22:00:05 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 22:00:05 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689343205520&projectId=3333 (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))))
2023-07-14 23:00:24 | ERROR | 异常用例: safe_2_登录_非BIP用户登录
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/login (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002D112A8B400>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 23:00:26 | ERROR | key:<re.Match object; span=(152, 165), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 23:00:28 | ERROR | 异常用例: safe_4_劳务基础配置_绑定TV
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/addTvSequence?t=1689346826007 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002D112ABED00>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 23:00:30 | ERROR | key:<re.Match object; span=(138, 151), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 23:00:30 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 23:00:33 | ERROR | 异常用例: safe_5_劳务基础配置_查询配置
HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /test/api/getTvInfo?t=1689346830060&projectId=3333 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002D112A8BC70>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
2023-07-14 23:31:50 | ERROR | key:<re.Match object; span=(152, 165), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 23:31:51 | ERROR | key:<re.Match object; span=(138, 151), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 23:31:51 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 23:33:01 | ERROR | key:<re.Match object; span=(152, 165), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 23:33:13 | ERROR | key:<re.Match object; span=(138, 151), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 23:33:13 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 23:38:02 | ERROR | key:<re.Match object; span=(152, 165), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 23:38:15 | ERROR | key:<re.Match object; span=(138, 151), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 23:38:15 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 23:45:41 | ERROR | key:<re.Match object; span=(152, 165), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 23:45:51 | ERROR | key:<re.Match object; span=(138, 151), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-14 23:45:51 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 23:54:12 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 23:54:12 | ERROR | 提取失败提取表达式data.projectId没有提取到对应的值
2023-07-14 23:54:12 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-14 23:56:41 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 23:56:41 | ERROR | 提取失败提取表达式data.projectId没有提取到对应的值
2023-07-14 23:56:41 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-14 23:57:22 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-14 23:57:22 | ERROR | 提取失败提取表达式data.projectId没有提取到对应的值
2023-07-14 23:57:23 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中

View File

@ -1,9 +0,0 @@
2023-07-15 00:01:21 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-15 00:01:21 | ERROR | 提取失败提取表达式data.projectId没有提取到对应的值
2023-07-15 00:01:21 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-15 00:07:51 | ERROR | | called clear_date | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-15 00:07:52 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-15 00:11:01 | ERROR | 提取失败提取表达式data.projectId没有提取到对应的值
2023-07-15 00:11:01 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中

View File

@ -1,357 +0,0 @@
2023-07-19 20:53:52 | ERROR | key:<re.Match object; span=(402, 419), match='{{response_time}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 20:53:52 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '{{response_time}}', '期望值': '20', '实际值': '{{response_time}}', '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 20:53:53 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 20:53:53 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'code', '期望值': 200, '实际值': 'code', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': 'msg', '期望值': '添加成功', '实际值': 'msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 20:53:54 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 20:53:54 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 20:56:29 | ERROR | key:<re.Match object; span=(402, 419), match='{{response_time}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 20:56:30 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'code', '期望值': 200, '实际值': 'code', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': 'msg', '期望值': '添加成功', '实际值': 'msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 20:56:31 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 20:57:50 | ERROR | key:<re.Match object; span=(402, 418), match='{{responseTime}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 20:57:51 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'code', '期望值': 200, '实际值': 'code', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': 'msg', '期望值': '添加成功', '实际值': 'msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 20:57:52 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:01:29 | ERROR | key:<re.Match object; span=(402, 418), match='{{responseTime}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:01:29 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '83.557', '期望值': '20', '实际值': '83.557', '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 21:01:30 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:01:30 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'code', '期望值': 200, '实际值': 'code', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': 'msg', '期望值': '添加成功', '实际值': 'msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:01:31 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:01:31 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:03:43 | ERROR | | called clear_date | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-19 21:03:44 | ERROR | key:<re.Match object; span=(402, 418), match='{{responseTime}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:03:44 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '91.902', '期望值': '20', '实际值': '91.902', '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 21:03:44 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-19 21:03:45 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:03:45 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:03:45 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-19 21:03:47 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:03:47 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:03:47 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-19 21:04:20 | ERROR | | called clear_date | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-19 21:04:21 | ERROR | key:<re.Match object; span=(402, 418), match='{{responseTime}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:04:22 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:04:23 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:04:47 | ERROR | key:<re.Match object; span=(402, 418), match='{{responseTime}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:04:47 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '89.434', '期望值': '20', '实际值': '89.434', '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 21:04:48 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:04:48 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:04:49 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:04:49 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:11:14 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:11:15 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:12:41 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:12:42 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:13:31 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:13:32 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:21:16 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'check_rt': None, '检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:21:17 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:32:17 | ERROR | | called clear_date | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-19 21:32:18 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-19 21:32:19 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'check_rt': None, '检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:32:19 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-19 21:32:20 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:32:20 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-19 21:33:40 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': '95.54700000000001', '期望值': '20', '实际值': '95.54700000000001', '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 21:33:41 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:33:41 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'check_rt': None, '检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:33:42 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:33:42 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:50:15 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 108.14500000000001, '期望值': 20, '实际值': 108.14500000000001, '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 21:50:16 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:50:16 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'check_rt': None, '检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:50:17 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:50:17 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:55:46 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 108.132, '期望值': 20, '实际值': 108.132, '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 21:55:47 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:55:47 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'check_rt': None, '检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:55:48 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:55:48 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:58:22 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 124.445, '期望值': 20, '实际值': 124.445, '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 21:58:23 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:58:23 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'check_rt': None, '检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:58:24 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:58:24 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 21:58:53 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 93.627, '期望值': 20, '实际值': 93.627, '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 21:58:54 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:58:54 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'check_rt': None, '检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 21:58:55 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 21:58:55 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 22:00:10 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 99.395, '期望值': 20, '实际值': 99.395, '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 22:00:11 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 22:00:11 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'check_rt': None, '检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 22:00:12 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 22:00:12 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 22:02:38 | INFO | | 调用函数: load_built_in_comparators | args: () kwargs:{}
2023-07-19 22:02:38 | INFO | | 结束调用函数: load_built_in_comparators, duration0.000013s
2023-07-19 22:02:38 | INFO | | 调用函数: clear_date | args: (<common.file_handling.do_excel.DoExcel object at 0x0000020B268F21C0>,) kwargs:{}
2023-07-19 22:02:38 | INFO | | 调用函数: get_excel_init | args: (<common.file_handling.do_excel.DoExcel object at 0x0000020B268F21C0>,) kwargs:{}
2023-07-19 22:02:38 | INFO | | 结束调用函数: get_excel_init, duration0.000045s
2023-07-19 22:02:39 | INFO | | 结束调用函数: clear_date, duration0.075347s
2023-07-19 22:02:39 | INFO | | 调用函数: get_excel_init | args: (<common.file_handling.do_excel.DoExcel object at 0x0000020B268F21C0>,) kwargs:{}
2023-07-19 22:02:39 | INFO | | 结束调用函数: get_excel_init, duration0.000043s
2023-07-19 22:02:39 | INFO | | 调用函数: EncryptData | args: () kwargs:{}
2023-07-19 22:02:39 | INFO | | 结束调用函数: EncryptData, duration0.000001s
2023-07-19 22:02:39 | INFO | | 调用函数: set_bif_fun | args: (Action(), <module 'common.bif_functions' from 'E:\\apitest\\common\\bif_functions\\__init__.py'>) kwargs:{}
2023-07-19 22:02:39 | INFO | | 调用函数: load_built_in_functions | args: (Action(), <module 'common.bif_functions' from 'E:\\apitest\\common\\bif_functions\\__init__.py'>) kwargs:{}
2023-07-19 22:02:39 | INFO | | 结束调用函数: load_built_in_functions, duration0.000026s
2023-07-19 22:02:39 | INFO | | 结束调用函数: set_bif_fun, duration0.001842s
2023-07-19 22:02:39 | INFO | | 调用函数: get_excel_init | args: (<common.file_handling.do_excel.DoExcel object at 0x0000020B268F21C0>,) kwargs:{}
2023-07-19 22:02:39 | INFO | | 结束调用函数: get_excel_init, duration0.000045s
2023-07-19 22:02:39 | INFO | | 调用函数: set_bif_fun | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:02:39 | INFO | | 调用函数: load_built_in_functions | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:02:39 | INFO | | 结束调用函数: load_built_in_functions, duration0.000008s
2023-07-19 22:02:39 | INFO | | 结束调用函数: set_bif_fun, duration0.001865s
2023-07-19 22:02:39 | INFO | | 调用函数: set_bif_fun | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:02:39 | INFO | | 调用函数: load_built_in_functions | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:02:39 | INFO | | 结束调用函数: load_built_in_functions, duration0.000008s
2023-07-19 22:02:39 | INFO | | 结束调用函数: set_bif_fun, duration0.002050s
2023-07-19 22:02:40 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), None) kwargs:{}
2023-07-19 22:02:40 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000004s
2023-07-19 22:02:40 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), {'Url': '/auth/loginByNotBip', 'Headers': '{"Content-Type": "application/json"}', 'Query Str': None, 'Request Data Type': 'json', 'Request Data': '{"account": "{{account}}", "password": "{{passwd}}"}', 'Response': '', 'Assertion': '', 'Error Log': ''}) kwargs:{}
2023-07-19 22:02:40 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000180s
2023-07-19 22:02:40 | INFO | | 调用函数: substitute_data | args: (Action(), '{"account": "18127813600", "password": "ZHh5BTduCaPU+4Ni8Zpk62ynfZI5mc2hrXcMUpymgLkV3wrOjWiB97MZyWXO5TBAbYHG37HNoAejWNUUMnerQlFN52i40F3EIFrZ4Lq+9KIq4K8cfQriWDBSssy6i7DaiZcsZu1vI47Wz7+FShdOE2gpiO7iQo3+b4KoQS3ZZXA="}') kwargs:{'jp_dict': '{"tvSequence": "$..account"}'}
2023-07-19 22:02:40 | INFO | | 结束调用函数: substitute_data, duration0.024628s
2023-07-19 22:02:40 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), '{"check":{{responseTime}},"comparator":"lt","expect":20}') kwargs:{}
2023-07-19 22:02:40 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000042s
2023-07-19 22:02:40 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 99.56, '期望值': 20, '实际值': 99.56, '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 22:02:40 | INFO | | 调用函数: write_back | args: (<common.file_handling.do_excel.DoExcel object at 0x0000020B268F21C0>,) kwargs:{'sheet_name': 'safe', 'i': 2, 'response': '{"code":"0","type":"success","data":{"id":"216897748901771157","userId":"216483504447804297","ibsUserId":7884,"mobile":"18127813600","bspToken":"a364383dd1cb02de8913ce569f33ef31","type":"user","avatar":null,"ncAccount":null,"timestamp":1689775367,"idpTokenId":null,"loginChannel":null,"clientType":null,"name":"陈勇志","btpToken":null,"account":"18127813600","accountType":"C","currentEnvId":null,"currentTenantId":"216260762345772077","currentAppId":"8d1f5bdc9c6648af84a98e2c017846c5","currentProjectId":"103654","currentOrgId":null,"currentMenuId":null,"currentOrgMenuId":null,"currentSelectedTab":"org","currentUrl":"/ibs/newLabor/basicConfig/Index","tenants":[{"id":"1623811301356297657","code":"1623811301356297657","fullName":"广东博嘉拓建筑测试租户","shortName":"广东博嘉拓建筑测试租户","envId":"6296f5e3960c4fdfb9c9357b581c853b","envName":"默认环境","tenantEnvs":null},{"id":"216572673247394736","code":"9C8D5715AAA44D4B8530AB2B7F627E1A","fullName":"安徽腾越建筑工程有限公司","shortName":"安徽腾越建筑工程有限公司","envId":"d1b4f959495f433fb1dd5400a78bce2c","envName":"默认环境","tenantEnvs":null},{"id":"216317749963825419","code":"C2C35D2543B34CA99366D9C76E45D01B","fullName":"沈阳腾越建筑测试租户","shortName":"沈阳腾越建筑测试租户","envId":"c4a70c0a1f5c4aaa83fcd390dcd898c6","envName":"默认环境","tenantEnvs":null},{"id":"216260762345772077","code":"216260762345772077","fullName":"广东腾越建筑工程有限公司","shortName":"广东腾越建筑工程有限公司","envId":"210712034943271000","envName":"默认环境","tenantEnvs":null},{"id":"216328986981406025","code":"TENANT_TEST","fullName":"智慧工地测试租户9","shortName":"智慧工地测试租户9","envId":"e7682a3876a343b483645b0c20da93a3","envName":"默认环境","tenantEnvs":null},{"id":"216365124588606373","code":"TENANT_TEST","fullName":"计划排程自动化测试","shortName":"计划排程自动化测试","envId":"80ce8eb5a7c941f8a6f57b8ecb61ec17","envName":"默认环境","tenantEnvs":null},{"id":"216674624791091228","code":"232E9186B1BE494E966F27BA7CF33AE2","fullName":"cyq测试","shortName":"cyq测试","envId":"ef3f8ed4792f4ef0a5e7d92af394d29c","envName":"默认环境","tenantEnvs":null},{"id":"216687529947792866","code":"9769454E01304245AEE83CE7E99537A8","fullName":"成本总控报表测试租户","shortName":"成本总控报表测试租户","envId":"5125917072884123bf9fe3966ffa4af2","envName":"默认环境","tenantEnvs":null},{"id":"216661417159402453","code":"216661417159402453","fullName":"科技建筑集团","shortName":"科技建筑集团","envId":"b23d88da977e467cb81dd7fb57de97d0","envName":"默认环境","tenantEnvs":null},{"id":"216281557054332425","code":"216281557054332425","fullName":"BIM材料用量计算","shortName":"BIM材料用量计算","envId":"7501c77b0ccd4b4d912451e5f74c1ba7","envName":"默认环境","tenantEnvs":null},{"id":"1320970534539886592","code":"1320970534539886592","fullName":"碧桂园集团","shortName":"碧桂园集团","envId":"1320970534539886592","envName":"默认环境","tenantEnvs":null}],"loginAppDto":null},"msg":null,"succeed":true}', 'test_result': 'FAIL', 'assert_log': "('FAIL', [{'check_rt': None, '检查项': 99.56, '期望值': 20, '实际值': 99.56, '断言方法': 'lt:实际值小于期望值'}])"}
2023-07-19 22:02:40 | INFO | | 结束调用函数: write_back, duration0.084348s
2023-07-19 22:02:40 | INFO | | 调用函数: set_bif_fun | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:02:40 | INFO | | 调用函数: load_built_in_functions | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:02:40 | INFO | | 结束调用函数: load_built_in_functions, duration0.000026s
2023-07-19 22:02:40 | INFO | | 结束调用函数: set_bif_fun, duration0.002193s
2023-07-19 22:02:40 | INFO | | 调用函数: set_bif_fun | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:02:40 | INFO | | 调用函数: load_built_in_functions | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:02:40 | INFO | | 结束调用函数: load_built_in_functions, duration0.000008s
2023-07-19 22:02:40 | INFO | | 结束调用函数: set_bif_fun, duration0.001733s
2023-07-19 22:02:41 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), None) kwargs:{}
2023-07-19 22:02:41 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000004s
2023-07-19 22:02:41 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), {'Url': '/ibs/api/ibs-lms-base/tvConfig/addTvSequence?t={{get_timestamp()}}', 'Headers': '{"tvSequence":"{{tvSequence}}","Content-Type":"application/json;charset=utf-8","BSP_TOKEN":"{{BSP_TOKEN}}","BSP_USER_TENANT":"{{BSP_USER_TENANT}}"}', 'Query Str': None, 'Request Data Type': 'json', 'Request Data': '{"projectId":"{{projectId}}","tvSequence":"{{random_string()}}"}', 'Response': '', 'Assertion': '', 'Error Log': ''}) kwargs:{}
2023-07-19 22:02:41 | INFO | | 调用函数: get_timestamp | args: () kwargs:{}
2023-07-19 22:02:41 | INFO | | 结束调用函数: get_timestamp, duration0.000015s
2023-07-19 22:02:41 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 22:02:41 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.005535s
2023-07-19 22:02:41 | INFO | | 调用函数: substitute_data | args: (Action(), '{"projectId":"{{projectId}}","tvSequence":"lKmwDNYWLSUOMbLzxNfT"}') kwargs:{'jp_dict': '{"tvSequence": "$..tvSequence"}'}
2023-07-19 22:02:41 | INFO | | 结束调用函数: substitute_data, duration0.023907s
2023-07-19 22:02:41 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), '[{"check":"$.code","comparator":"eq","expect":200},{"check":"$.msg","comparator":"eq","expect":"添加成功"}]') kwargs:{}
2023-07-19 22:02:41 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000026s
2023-07-19 22:02:41 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'check_rt': None, '检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 22:02:41 | INFO | | 调用函数: write_back | args: (<common.file_handling.do_excel.DoExcel object at 0x0000020B268F21C0>,) kwargs:{'sheet_name': 'safe', 'i': 4, 'response': '{"code":"AG_100003","msg":"您的登陆状态已过期,请重新登陆。","showType":2,"succeed":false}', 'test_result': 'FAIL', 'assert_log': "('FAIL', [{'check_rt': None, '检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'check_rt': None, '检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}])"}
2023-07-19 22:02:41 | INFO | | 结束调用函数: write_back, duration0.076274s
2023-07-19 22:02:41 | INFO | | 调用函数: set_bif_fun | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:02:41 | INFO | | 调用函数: load_built_in_functions | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:02:41 | INFO | | 结束调用函数: load_built_in_functions, duration0.000011s
2023-07-19 22:02:41 | INFO | | 结束调用函数: set_bif_fun, duration0.002281s
2023-07-19 22:02:42 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), None) kwargs:{}
2023-07-19 22:02:42 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000002s
2023-07-19 22:02:42 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), {'Url': '/ibs/api/ibs-lms-base/tvConfig/listTvSequence?t={{get_timestamp()}}&projectId={{projectId}}', 'Headers': '{"Content-Type":"application/json;charset=utf-8","BSP_TOKEN":"{{BSP_TOKEN}}","BSP_USER_TENANT":"{{BSP_USER_TENANT}}","test":"{{tvSequence}}"}', 'Query Str': None, 'Request Data Type': 'params', 'Request Data': None, 'Response': '', 'Assertion': '', 'Error Log': ''}) kwargs:{}
2023-07-19 22:02:42 | INFO | | 调用函数: get_timestamp | args: () kwargs:{}
2023-07-19 22:02:42 | INFO | | 结束调用函数: get_timestamp, duration0.000007s
2023-07-19 22:02:42 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 22:02:42 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.003517s
2023-07-19 22:02:42 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), '{"check":"data.projectId","comparator":"contained_by","expect":"{{projectId}}"}') kwargs:{}
2023-07-19 22:02:42 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000050s
2023-07-19 22:02:42 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 22:02:42 | INFO | | 调用函数: write_back | args: (<common.file_handling.do_excel.DoExcel object at 0x0000020B268F21C0>,) kwargs:{'sheet_name': 'safe', 'i': 5, 'response': '{"code":"AG_100003","msg":"您的登陆状态已过期,请重新登陆。","showType":2,"succeed":false}', 'test_result': 'FAIL', 'assert_log': "('FAIL', [{'check_rt': None, '检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}])"}
2023-07-19 22:02:42 | INFO | | 结束调用函数: write_back, duration0.073453s
2023-07-19 22:02:42 | INFO | 所有用例执行完毕
2023-07-19 22:03:42 | INFO | | 调用函数: load_built_in_comparators | args: () kwargs:{}
2023-07-19 22:03:42 | INFO | | 结束调用函数: load_built_in_comparators, duration0.000036s
2023-07-19 22:03:43 | INFO | | 调用函数: clear_date | args: (<common.file_handling.do_excel.DoExcel object at 0x0000025F483421C0>,) kwargs:{}
2023-07-19 22:03:43 | INFO | | 调用函数: get_excel_init | args: (<common.file_handling.do_excel.DoExcel object at 0x0000025F483421C0>,) kwargs:{}
2023-07-19 22:03:43 | INFO | | 结束调用函数: get_excel_init, duration0.000045s
2023-07-19 22:03:43 | INFO | | 结束调用函数: clear_date, duration0.075481s
2023-07-19 22:03:43 | INFO | | 调用函数: get_excel_init | args: (<common.file_handling.do_excel.DoExcel object at 0x0000025F483421C0>,) kwargs:{}
2023-07-19 22:03:43 | INFO | | 结束调用函数: get_excel_init, duration0.000044s
2023-07-19 22:03:43 | INFO | | 调用函数: EncryptData | args: () kwargs:{}
2023-07-19 22:03:43 | INFO | | 结束调用函数: EncryptData, duration0.000001s
2023-07-19 22:03:43 | INFO | | 调用函数: set_bif_fun | args: (Action(), <module 'common.bif_functions' from 'E:\\apitest\\common\\bif_functions\\__init__.py'>) kwargs:{}
2023-07-19 22:03:43 | INFO | | 调用函数: load_built_in_functions | args: (Action(), <module 'common.bif_functions' from 'E:\\apitest\\common\\bif_functions\\__init__.py'>) kwargs:{}
2023-07-19 22:03:43 | INFO | | 结束调用函数: load_built_in_functions, duration0.000023s
2023-07-19 22:03:43 | INFO | | 结束调用函数: set_bif_fun, duration0.002302s
2023-07-19 22:03:43 | INFO | | 调用函数: get_excel_init | args: (<common.file_handling.do_excel.DoExcel object at 0x0000025F483421C0>,) kwargs:{}
2023-07-19 22:03:43 | INFO | | 结束调用函数: get_excel_init, duration0.000042s
2023-07-19 22:03:43 | INFO | | 调用函数: set_bif_fun | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:03:43 | INFO | | 调用函数: load_built_in_functions | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:03:43 | INFO | | 结束调用函数: load_built_in_functions, duration0.000008s
2023-07-19 22:03:43 | INFO | | 结束调用函数: set_bif_fun, duration0.001910s
2023-07-19 22:03:43 | INFO | | 调用函数: set_bif_fun | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:03:43 | INFO | | 调用函数: load_built_in_functions | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:03:43 | INFO | | 结束调用函数: load_built_in_functions, duration0.000007s
2023-07-19 22:03:43 | INFO | | 结束调用函数: set_bif_fun, duration0.002326s
2023-07-19 22:03:44 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), None) kwargs:{}
2023-07-19 22:03:44 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000006s
2023-07-19 22:03:44 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), {'Url': '/auth/loginByNotBip', 'Headers': '{"Content-Type": "application/json"}', 'Query Str': None, 'Request Data Type': 'json', 'Request Data': '{"account": "{{account}}", "password": "{{passwd}}"}', 'Response': '', 'Assertion': '', 'Error Log': ''}) kwargs:{}
2023-07-19 22:03:44 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000180s
2023-07-19 22:03:44 | INFO | | 调用函数: substitute_data | args: (Action(), '{"account": "18127813600", "password": "ZHh5BTduCaPU+4Ni8Zpk62ynfZI5mc2hrXcMUpymgLkV3wrOjWiB97MZyWXO5TBAbYHG37HNoAejWNUUMnerQlFN52i40F3EIFrZ4Lq+9KIq4K8cfQriWDBSssy6i7DaiZcsZu1vI47Wz7+FShdOE2gpiO7iQo3+b4KoQS3ZZXA="}') kwargs:{'jp_dict': '{"tvSequence": "$..account"}'}
2023-07-19 22:03:44 | INFO | | 结束调用函数: substitute_data, duration0.037463s
2023-07-19 22:03:44 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), '{"check":{{responseTime}},"comparator":"lt","expect":20}') kwargs:{}
2023-07-19 22:03:44 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000044s
2023-07-19 22:03:44 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 86.245, '期望值': 20, '实际值': 86.245, '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 22:03:44 | INFO | | 调用函数: write_back | args: (<common.file_handling.do_excel.DoExcel object at 0x0000025F483421C0>,) kwargs:{'sheet_name': 'safe', 'i': 2, 'response': '{"code":"0","type":"success","data":{"id":"216897754319782156","userId":"216483504447804297","ibsUserId":7884,"mobile":"18127813600","bspToken":"2608e7cd6acb3d8291a0a11035cbd3b1","type":"user","avatar":null,"ncAccount":null,"timestamp":1689775431,"idpTokenId":null,"loginChannel":null,"clientType":null,"name":"陈勇志","btpToken":null,"account":"18127813600","accountType":"C","currentEnvId":null,"currentTenantId":"216260762345772077","currentAppId":"8d1f5bdc9c6648af84a98e2c017846c5","currentProjectId":"103654","currentOrgId":null,"currentMenuId":null,"currentOrgMenuId":null,"currentSelectedTab":"org","currentUrl":"/ibs/newLabor/basicConfig/Index","tenants":[{"id":"1623811301356297657","code":"1623811301356297657","fullName":"广东博嘉拓建筑测试租户","shortName":"广东博嘉拓建筑测试租户","envId":"6296f5e3960c4fdfb9c9357b581c853b","envName":"默认环境","tenantEnvs":null},{"id":"216572673247394736","code":"9C8D5715AAA44D4B8530AB2B7F627E1A","fullName":"安徽腾越建筑工程有限公司","shortName":"安徽腾越建筑工程有限公司","envId":"d1b4f959495f433fb1dd5400a78bce2c","envName":"默认环境","tenantEnvs":null},{"id":"216317749963825419","code":"C2C35D2543B34CA99366D9C76E45D01B","fullName":"沈阳腾越建筑测试租户","shortName":"沈阳腾越建筑测试租户","envId":"c4a70c0a1f5c4aaa83fcd390dcd898c6","envName":"默认环境","tenantEnvs":null},{"id":"216260762345772077","code":"216260762345772077","fullName":"广东腾越建筑工程有限公司","shortName":"广东腾越建筑工程有限公司","envId":"210712034943271000","envName":"默认环境","tenantEnvs":null},{"id":"216328986981406025","code":"TENANT_TEST","fullName":"智慧工地测试租户9","shortName":"智慧工地测试租户9","envId":"e7682a3876a343b483645b0c20da93a3","envName":"默认环境","tenantEnvs":null},{"id":"216365124588606373","code":"TENANT_TEST","fullName":"计划排程自动化测试","shortName":"计划排程自动化测试","envId":"80ce8eb5a7c941f8a6f57b8ecb61ec17","envName":"默认环境","tenantEnvs":null},{"id":"216674624791091228","code":"232E9186B1BE494E966F27BA7CF33AE2","fullName":"cyq测试","shortName":"cyq测试","envId":"ef3f8ed4792f4ef0a5e7d92af394d29c","envName":"默认环境","tenantEnvs":null},{"id":"216687529947792866","code":"9769454E01304245AEE83CE7E99537A8","fullName":"成本总控报表测试租户","shortName":"成本总控报表测试租户","envId":"5125917072884123bf9fe3966ffa4af2","envName":"默认环境","tenantEnvs":null},{"id":"216661417159402453","code":"216661417159402453","fullName":"科技建筑集团","shortName":"科技建筑集团","envId":"b23d88da977e467cb81dd7fb57de97d0","envName":"默认环境","tenantEnvs":null},{"id":"216281557054332425","code":"216281557054332425","fullName":"BIM材料用量计算","shortName":"BIM材料用量计算","envId":"7501c77b0ccd4b4d912451e5f74c1ba7","envName":"默认环境","tenantEnvs":null},{"id":"1320970534539886592","code":"1320970534539886592","fullName":"碧桂园集团","shortName":"碧桂园集团","envId":"1320970534539886592","envName":"默认环境","tenantEnvs":null}],"loginAppDto":null},"msg":null,"succeed":true}', 'test_result': 'FAIL', 'assert_log': "('FAIL', [{'check_rt': None, '检查项': 86.245, '期望值': 20, '实际值': 86.245, '断言方法': 'lt:实际值小于期望值'}])"}
2023-07-19 22:03:44 | INFO | | 结束调用函数: write_back, duration0.073642s
2023-07-19 22:03:44 | INFO | | 调用函数: set_bif_fun | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:03:44 | INFO | | 调用函数: load_built_in_functions | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:03:44 | INFO | | 结束调用函数: load_built_in_functions, duration0.000008s
2023-07-19 22:03:44 | INFO | | 结束调用函数: set_bif_fun, duration0.002119s
2023-07-19 22:03:44 | INFO | | 调用函数: set_bif_fun | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:03:44 | INFO | | 调用函数: load_built_in_functions | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:03:44 | INFO | | 结束调用函数: load_built_in_functions, duration0.000007s
2023-07-19 22:03:44 | INFO | | 结束调用函数: set_bif_fun, duration0.002234s
2023-07-19 22:03:45 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), None) kwargs:{}
2023-07-19 22:03:45 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000003s
2023-07-19 22:03:45 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), {'Url': '/ibs/api/ibs-lms-base/tvConfig/addTvSequence?t={{get_timestamp()}}', 'Headers': '{"tvSequence":"{{tvSequence}}","Content-Type":"application/json;charset=utf-8","BSP_TOKEN":"{{BSP_TOKEN}}","BSP_USER_TENANT":"{{BSP_USER_TENANT}}"}', 'Query Str': None, 'Request Data Type': 'json', 'Request Data': '{"projectId":"{{projectId}}","tvSequence":"{{random_string()}}"}', 'Response': '', 'Assertion': '', 'Error Log': ''}) kwargs:{}
2023-07-19 22:03:45 | INFO | | 调用函数: get_timestamp | args: () kwargs:{}
2023-07-19 22:03:45 | INFO | | 结束调用函数: get_timestamp, duration0.000014s
2023-07-19 22:03:45 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 22:03:45 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.005656s
2023-07-19 22:03:45 | INFO | | 调用函数: substitute_data | args: (Action(), '{"projectId":"{{projectId}}","tvSequence":"GSovTnbELYHBqzqxCdzZ"}') kwargs:{'jp_dict': '{"tvSequence": "$..tvSequence"}'}
2023-07-19 22:03:45 | INFO | | 结束调用函数: substitute_data, duration0.020842s
2023-07-19 22:03:45 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), '[{"check":"$.code","comparator":"eq","expect":200},{"check":"$.msg","comparator":"eq","expect":"添加成功"}]') kwargs:{}
2023-07-19 22:03:45 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000050s
2023-07-19 22:03:45 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'check_rt': None, '检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 22:03:45 | INFO | | 调用函数: write_back | args: (<common.file_handling.do_excel.DoExcel object at 0x0000025F483421C0>,) kwargs:{'sheet_name': 'safe', 'i': 4, 'response': '{"code":"AG_100003","msg":"您的登陆状态已过期,请重新登陆。","showType":2,"succeed":false}', 'test_result': 'FAIL', 'assert_log': "('FAIL', [{'check_rt': None, '检查项': '$.code', '期望值': 200, '实际值': '$.code', '断言方法': 'eq:实际值与期望值相等'}, {'check_rt': None, '检查项': '$.msg', '期望值': '添加成功', '实际值': '$.msg', '断言方法': 'eq:实际值与期望值相等'}])"}
2023-07-19 22:03:45 | INFO | | 结束调用函数: write_back, duration0.081924s
2023-07-19 22:03:45 | INFO | | 调用函数: set_bif_fun | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:03:45 | INFO | | 调用函数: load_built_in_functions | args: (Action(), <module 'extensions.dynamic_scaling_methods' from 'E:\\apitest\\extensions\\dynamic_scaling_methods.py'>) kwargs:{}
2023-07-19 22:03:45 | INFO | | 结束调用函数: load_built_in_functions, duration0.000009s
2023-07-19 22:03:45 | INFO | | 结束调用函数: set_bif_fun, duration0.002199s
2023-07-19 22:03:46 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), None) kwargs:{}
2023-07-19 22:03:46 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000003s
2023-07-19 22:03:47 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), {'Url': '/ibs/api/ibs-lms-base/tvConfig/listTvSequence?t={{get_timestamp()}}&projectId={{projectId}}', 'Headers': '{"Content-Type":"application/json;charset=utf-8","BSP_TOKEN":"{{BSP_TOKEN}}","BSP_USER_TENANT":"{{BSP_USER_TENANT}}","test":"{{tvSequence}}"}', 'Query Str': None, 'Request Data Type': 'params', 'Request Data': None, 'Response': '', 'Assertion': '', 'Error Log': ''}) kwargs:{}
2023-07-19 22:03:47 | INFO | | 调用函数: get_timestamp | args: () kwargs:{}
2023-07-19 22:03:47 | INFO | | 结束调用函数: get_timestamp, duration0.000014s
2023-07-19 22:03:47 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 22:03:47 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.005533s
2023-07-19 22:03:47 | INFO | | 调用函数: replace_dependent_parameter | args: (Action(), '{"check":"data.projectId","comparator":"contained_by","expect":"{{projectId}}"}') kwargs:{}
2023-07-19 22:03:47 | INFO | | 结束调用函数: replace_dependent_parameter, duration0.000083s
2023-07-19 22:03:47 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'check_rt': None, '检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 22:03:47 | INFO | | 调用函数: write_back | args: (<common.file_handling.do_excel.DoExcel object at 0x0000025F483421C0>,) kwargs:{'sheet_name': 'safe', 'i': 5, 'response': '{"code":"AG_100003","msg":"您的登陆状态已过期,请重新登陆。","showType":2,"succeed":false}', 'test_result': 'FAIL', 'assert_log': "('FAIL', [{'check_rt': None, '检查项': 'data.projectId', '期望值': '103654', '实际值': 'data.projectId', '断言方法': 'contained_by:实际值被包含在期望值中'}])"}
2023-07-19 22:03:47 | INFO | | 结束调用函数: write_back, duration0.088302s
2023-07-19 22:03:47 | INFO | 所有用例执行完毕
2023-07-19 22:13:25 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
name 'check_rt' is not defined
2023-07-19 22:13:26 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 22:13:26 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
name 'check_rt' is not defined
2023-07-19 22:13:27 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 22:13:27 | ERROR | 提取失败提取表达式data.projectId没有提取到对应的值
2023-07-19 22:13:27 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
name 'check_rt' is not defined
2023-07-19 22:14:00 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 108.67699999999999, '期望值': 20, '实际值': 108.67699999999999, '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 22:14:02 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 22:14:02 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.code', '期望值': 200, '实际值': 'AG_100003', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': '$.msg', '期望值': '添加成功', '实际值': '您的登陆状态已过期,请重新登陆。', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 22:14:03 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 22:14:03 | ERROR | 提取失败提取表达式data.projectId没有提取到对应的值
2023-07-19 22:14:03 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 22:15:57 | ERROR | 提取失败提取表达式700没有提取到对应的值
2023-07-19 22:16:56 | ERROR | 提取失败提取表达式700没有提取到对应的值
2023-07-19 22:17:30 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 94.92699999999999, '期望值': 20, '实际值': 94.92699999999999, '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 22:17:31 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 22:17:31 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.code', '期望值': 200, '实际值': 'AG_100003', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': '$.msg', '期望值': '添加成功', '实际值': '您的登陆状态已过期,请重新登陆。', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-19 22:17:32 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-19 22:17:32 | ERROR | 提取失败提取表达式data.projectId没有提取到对应的值
2023-07-19 22:17:32 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 22:18:47 | ERROR | | called clear_date | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-19 22:27:34 | ERROR | 异常用例: **safe_2_登录_非BIP用户登录**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 114.75200000000001, '期望值': 20, '实际值': 114.75200000000001, '断言方法': 'lt:实际值小于期望值'}]) : FAIL 存在结果元组中
2023-07-19 22:27:36 | ERROR | 提取失败提取表达式data.projectId没有提取到对应的值
2023-07-19 22:27:36 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': 'data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-19 22:29:28 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-19 22:29:28 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中

View File

@ -1,15 +0,0 @@
2023-07-20 23:39:11 | ERROR | 查询异常 sql: select username,password as pwd from user where username ='luoshunwen003';
2023-07-20 23:39:11 | ERROR | 数据库操作异常: 'MysqlClient' object has no attribute 'cursor'
2023-07-20 23:39:11 | ERROR | | called execute_sql | error: 快看,异常了,别唧唧哇哇,快排查!!: 'MysqlClient' object has no attribute 'cursor'
2023-07-20 23:39:11 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-20 23:40:14 | ERROR | 查询异常 sql: select username,password as pwd from lea.user where username ='luoshunwen003';
2023-07-20 23:40:14 | ERROR | 数据库操作异常: 'MysqlClient' object has no attribute 'cursor'
2023-07-20 23:40:14 | ERROR | | called execute_sql | error: 快看,异常了,别唧唧哇哇,快排查!!: 'MysqlClient' object has no attribute 'cursor'
2023-07-20 23:40:14 | ERROR | 被提取对象非字典、非字符串、非列表不执行jsonpath提取被提取对象: None
2023-07-20 23:40:23 | ERROR | 查询异常 sql: select username,password as pwd from lea.user where username ='luoshunwen003';
2023-07-20 23:40:23 | ERROR | 数据库操作异常: 'MysqlClient' object has no attribute 'cursor'
2023-07-20 23:40:23 | ERROR | | called execute_sql | error: 快看,异常了,别唧唧哇哇,快排查!!: 'MysqlClient' object has no attribute 'cursor'
2023-07-20 23:41:11 | ERROR | 查询异常 sql: select username,password as pwd from lea.user where username ='luoshunwen003';
2023-07-20 23:41:11 | ERROR | 数据库操作异常: 'MysqlClient' object has no attribute 'cursor'
2023-07-20 23:42:16 | ERROR | 查询异常 sql: select username,password as pwd from lea.user where username ='luoshunwen003';
2023-07-20 23:42:16 | ERROR | 数据库操作异常: 'MysqlClient' object has no attribute 'cursor'

View File

@ -1,37 +0,0 @@
2023-07-21 00:15:54 | ERROR | 执行 sql 失败:{'select': {'select_one': "select username,password as pwd from user where username ='luoshunwen003';"}},异常信息:'MysqlClient' object has no attribute 'do_mysql'
2023-07-21 00:15:55 | ERROR | key:<re.Match object; span=(102, 116), match='{{tvSequence}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-21 00:15:55 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.code', '期望值': 200, '实际值': 'AG_100003', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': '$.msg', '期望值': '添加成功', '实际值': '您的登陆状态已过期,请重新登陆。', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-21 00:15:56 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-21 00:15:56 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-21 00:15:56 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-21 00:16:39 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-21 00:16:39 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-21 00:18:28 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-21 00:18:28 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-21 00:19:03 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-21 00:19:03 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-21 00:20:12 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-21 00:20:12 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-21 00:41:18 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-21 00:41:18 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-21 00:42:07 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-21 00:42:07 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-21 00:44:24 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-21 00:44:24 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-21 00:49:16 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-21 00:49:16 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-21 00:52:03 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-21 00:52:03 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中

View File

@ -1,32 +0,0 @@
2023-07-31 20:25:00 | ERROR | key:<re.Match object; span=(184, 197), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-31 20:25:01 | ERROR | 异常用例: **safe_4_劳务基础配置_绑定TV**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.code', '期望值': 200, '实际值': 'AG_100003', '断言方法': 'eq:实际值与期望值相等'}, {'检查项': '$.msg', '期望值': '添加成功', '实际值': '您的登陆状态已过期,请重新登陆。', '断言方法': 'eq:实际值与期望值相等'}]) : FAIL 存在结果元组中
2023-07-31 20:25:02 | ERROR | key:<re.Match object; span=(171, 184), match='{{BSP_TOKEN}}'>,在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常
2023-07-31 20:25:02 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-31 20:25:02 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-31 20:57:50 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-31 20:57:50 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'FAIL' unexpectedly found in ('FAIL', [{'检查项': '$.data.projectId', '期望值': '103654', '实际值': [], '断言方法': 'contained_by:实际值被包含在期望值中'}]) : FAIL 存在结果元组中
2023-07-31 21:16:44 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-31 21:27:15 | ERROR | | called clear_date | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-31 21:27:16 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-31 21:27:17 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-31 21:27:18 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-31 21:27:18 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'in <string>' requires string as left operand, not list
2023-07-31 21:27:18 | ERROR | | called write_back | error: 快看,异常了,别唧唧哇哇,快排查!!: [Errno 13] Permission denied: 'E:\\apitest\\cases\\cases\\test_api.xlsx'
2023-07-31 21:27:57 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-31 21:27:57 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'in <string>' requires string as left operand, not list
2023-07-31 21:32:53 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-31 21:32:53 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'in <string>' requires string as left operand, not list
2023-07-31 21:46:05 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-31 21:46:05 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'in <string>' requires string as left operand, not list
2023-07-31 21:51:08 | ERROR | 提取失败:提取表达式:$.data.projectId没有提取到对应的值
2023-07-31 21:51:08 | ERROR | 异常用例: **safe_5_劳务基础配置_查询配置**
'in <string>' requires string as left operand, not list

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -22,35 +22,40 @@ from config.field_constants import FieldNames
@singleton
class Action(Extractor, LoadScript, Validator):
class Action(Extractor, LoadScript, Validator, EncryptData):
def __init__(self, initialize_data=None, db_config=None):
super().__init__()
self.db_config = db_config
self.encrypt = EncryptData()
self.__variables = {}
self.set_environments(initialize_data)
self.set_bif_fun(bif_functions)
@send_request_decorator
def send_request(self, host, method, extract_request_data):
"""发送请求"""
url, kwargs = self.prepare_request(extract_request_data, self.variables)
self.http_client(host, url, method, **kwargs)
def prepare_request(self, extract_request_data, item):
"""准备请求数据"""
item = self.replace_dependent_parameter(item)
url, query_str, request_data, headers, request_data_type, h_crypto, r_crypto = self.request_info(item)
headers, request_data = self.analysis_request(request_data, h_crypto, headers, r_crypto, extract_request_data)
headers, query_str, request_data = self.analysis_request(query_str, request_data, h_crypto, headers, r_crypto,
extract_request_data)
kwargs = {request_data_type: request_data, "headers": headers, "params": query_str}
return url, kwargs
def analysis_request(self, request_data, headers_crypto, headers, request_crypto, extract_request_data):
headers, request_data = self.encrypt.encrypts(headers_crypto, headers, request_crypto, request_data)
if extract_request_data is not None and request_data is not None:
self.substitute_data(request_data, jp_dict=extract_request_data)
return headers, request_data
def analysis_request(self, query_str, request_data, headers_crypto, headers, request_crypto, extract_request_data):
"""分析请求数据"""
headers, request_data = self.encrypts(headers_crypto, headers, request_crypto, request_data)
if extract_request_data:
for data in (query_str, request_data):
if data:
self.substitute_data(data, jp_dict=extract_request_data)
return headers, query_str, request_data
def exc_sql(self, item):
"""执行sql处理"""
sql, sql_params_dict = self.sql_info(item)
self.variables = item
sql = self.replace_dependent_parameter(sql)
@ -62,6 +67,7 @@ class Action(Extractor, LoadScript, Validator):
self.substitute_data(execute_sql_results, jp_dict=sql_params_dict)
def analysis_response(self, sheet, iid, name, desc, regex, keys, deps, jp_dict):
"""分析响应结果并提取响应"""
try:
self.substitute_data(self.response_json, regex=regex, keys=keys, deps=deps, jp_dict=jp_dict)
except Exception as err:
@ -74,6 +80,7 @@ class Action(Extractor, LoadScript, Validator):
ParameterExtractionError(msg, err)
def execute_validation(self, excel, sheet, iid, name, desc, expected):
"""执行断言校验"""
expected = self.replace_dependent_parameter(expected)
try:
self.run_validate(expected, self.response_json)
@ -90,6 +97,7 @@ class Action(Extractor, LoadScript, Validator):
excel.write_back(sheet_name=sheet, i=iid, response=response, result=result, assertions=str(self.assertions))
def execute_dynamic_code(self, item, code):
self.variables = item
if code is not None:
try:

View File

@ -7,37 +7,48 @@
@time: 2023/6/16 15:43
@desc:
"""
from common.crypto.encryption_rsa import Rsa
import json
import encryption_rules
from common.utils.exceptions import EncryptionError
from encryption_rules import rules
from common.validation.loaders import Loaders
class EncryptData:
class EncryptData(Loaders):
"""
数据加密入口
"""
def __init__(self):
super().__init__()
def encrypts(self, headers_crypto, headers, request_data_crypto, request_data):
encryption_methods = {
"MD5": rules.md5_sign,
"sha1": rules.sha1_sign,
"rsa": lambda data: Rsa(data).rsa_encrypt()
}
if headers_crypto:
encrypt_func = encryption_methods.get(headers_crypto)
if encrypt_func:
try:
headers = encrypt_func(headers)
except Exception as e:
EncryptionError(headers_crypto, e)
if request_data_crypto:
encrypt_func = encryption_methods.get(request_data_crypto)
if encrypt_func:
try:
request_data = encrypt_func(request_data)
except Exception as e:
EncryptionError(request_data_crypto, e)
encryption_methods = self.load_built_in_functions(encryption_rules)
# 请求头加密
encrypt_func = encryption_methods.get(headers_crypto)
# 请求头有值的时候才加密
if encrypt_func is not None and headers:
try:
headers = headers if isinstance(headers, dict) else json.loads(headers)
headers = encrypt_func(headers)
except Exception as e:
EncryptionError(headers_crypto, e)
# 请求体加密
encrypt_func = encryption_methods.get(request_data_crypto)
# 请求参数有值的时候才加密
if encrypt_func and request_data:
try:
print("request_data", request_data)
request_data = request_data if isinstance(request_data, dict) else json.loads(request_data)
request_data = encrypt_func(request_data)
except Exception as e:
EncryptionError(request_data_crypto, e)
return headers, request_data
if __name__ == '__main__':
enc = EncryptData()
header = {'Content-Type': 'application/json;charset=utf-8', 'token': 'QpwL5tke4Pnpja7X4'}
res = enc.encrypts("md5_sign", header, None, None)
print(res)

View File

@ -3,9 +3,9 @@ import base64
import pytesseract
from PIL import Image
"""base64信息转图片与图片转base64"""
def base64_to_img(byte_str, file_path):
imgdata = base64.b64decode(byte_str)
with open(file_path, 'wb') as f:

View File

@ -123,6 +123,7 @@ if __name__ == '__main__':
"ft": "{{fk().ean(length=13)}}",
"st": "{{ms_fmt_hms(2000)}}",
"time": "{{random_id_card()}}",
"x":'{"a":"b","c":"{{get_timestamp()}}"}'
}
ret = loader.replace_dependent_parameter(dat)
print(ret)

View File

@ -31,6 +31,7 @@ class HttpClient(LoadModulesFromFolder):
self.request = None
self.response = None
self.response_json = None
self.files = []
@request_retry_on_exception()
def http_client(self, host, url, method, **kwargs):
@ -44,23 +45,35 @@ class HttpClient(LoadModulesFromFolder):
"""
# 关闭 https 警告信息
urllib3.disable_warnings()
self.request = None
self.response = None
kwargs = self.processing_data(host, url, method, **kwargs)
# 发送请求
self.request = requests.Request(**kwargs)
self.response = self.session.send(self.request.prepare(), timeout=(15, 20), verify=True)
# 关闭文件
[i.close() for i in self.files if len(self.files) > 0]
self.post_response()
return self.response
def processing_data(self, host, url, method, **kwargs):
kwargs["method"] = method
if not url:
raise ValueError("URL cannot be None")
__url = f'{host}{url}' if not re.match(r"https?", url) else url
# 增加兼容
# 处理 headers 参数为字符串类型的情况
kwargs["url"] = __url
# 兼容处理 headers 参数为字符串类型的情况
if 'headers' in kwargs and isinstance(kwargs['headers'], str):
kwargs['headers'] = json.loads(kwargs['headers'])
# 处理 json 参数为字符串类型的情况
# 兼容处理 json 参数为字符串类型的情况
if 'json' in kwargs and isinstance(kwargs['json'], str):
kwargs['json'] = json.loads(kwargs['json'])
kwargs['params'] = json.loads(kwargs['params']) if isinstance(kwargs['params'], str) else None
# 处理 files 参数的情况
fs = []
if 'files' in kwargs:
file_paths = kwargs['files']
if isinstance(file_paths, str):
@ -71,34 +84,32 @@ class HttpClient(LoadModulesFromFolder):
file_type = mimetypes.guess_type(file_path)[0]
file_path_completion = file_utils.get_file_path(file_path)
f = open(file_path_completion, 'rb')
fs.append(f)
self.files.append(f)
files.append(
('file', (f'{file_path}', f, file_type))
)
kwargs['files'] = files
return kwargs
# 发送请求
self.request = requests.Request(method, __url, **kwargs)
self.response = self.session.send(self.request.prepare(), timeout=30, verify=True)
[i.close() for i in fs if len(fs) > 0]
def post_response(self):
# 处理响应结果
self.update_environments("responseStatusCode", self.response.status_code)
self.update_environments("responseTime", round(self.response.elapsed.total_seconds() * 1000, 2))
try:
self.response_json = self.response.json()
self.update_environments("responseStatusCode", self.response.status_code)
self.update_environments("responseTime", round(self.response.elapsed.total_seconds() * 1000, 2))
except Exception as e:
ResponseJsonConversionError(self.response.text, str(e))
self.response_json = None
return self.response
if __name__ == '__main__':
hst = 'https://kkk.ll.com'
url = '/bsp/test/'
method = 'post'
kwargs = {
ul = '/bsp/test/'
meth = 'post'
kwarg = {
'headers': {},
'data': {},
'files': ['test.txt']
}
pyt = HttpClient()
pyt.http_client(hst, url, method, **kwargs)
pyt.http_client(hst, ul, meth, **kwarg)

View File

@ -11,11 +11,13 @@ from time import perf_counter
from loguru import logger
from common.utils.decorators import singleton
from config.config import Config
LOG_DIR = Config.LOG_PATH
@singleton
class MyLogger:
"""
根据时间文件大小切割日志

View File

@ -9,8 +9,3 @@
"""
import sys
# sys.path.append('../../common')
# from common.utils.mylogger import MyLogger
#
# logger = MyLogger()

View File

@ -14,8 +14,6 @@ from functools import wraps
import yaml
from common.utils.exceptions import RequestSendingError
def singleton(cls):
"""
@ -36,6 +34,7 @@ def singleton(cls):
def request_retry_on_exception(retries=2, delay=1.5):
"""Retry on Failed Requests"""
from common.utils.exceptions import RequestSendingError
def request_decorator(func):
e = None
@ -43,9 +42,12 @@ def request_retry_on_exception(retries=2, delay=1.5):
@wraps(func)
def wrapper(*args, **kwargs):
nonlocal e
for i in range(retries):
# st = time.time()
try:
response = func(*args, **kwargs)
# print(f"| 代码耗时--> {time.time() - st}")
print(f"| 请求地址 --> {response.request.url}")
print(f"| 请求方法 --> {response.request.method}")
print(f"| 请求头 --> {response.request.headers}")
@ -54,12 +56,13 @@ def request_retry_on_exception(retries=2, delay=1.5):
print(f"| 接口耗时--> {response.elapsed}")
print(f"| 接口响应--> {response.text}")
except Exception as error:
print(f"| 第{i + 1}次请求参数:{args} -- {kwargs}")
print(f"| 第{i + 1}次请求参数=【{args}__{kwargs}")
# print(f"| 代码耗时--> {time.time() - st}")
e = error
time.sleep(delay)
else:
return response
raise RequestSendingError(kwargs, e)
raise RequestSendingError(f"{args}__{kwargs}", e)
return wrapper

View File

@ -23,6 +23,9 @@ class Environments:
METHOD_NAME_MATCHER = re.compile(r"\.(\w+)\([^)]*\)") # 匹配函数调用中的方法名 {{.func()}} 中的 func
ARGS_MATCHER = re.compile(r'\(([^)]*)\)') # 匹配函数调用中的参数列表 {{func(arg1, arg2, ...)}}
def __init__(self):
super().__init__()
@classmethod
def update_environments(cls, key, value):
"""更新依赖表"""

View File

@ -139,3 +139,7 @@ class EncryptionError(MyBaseException):
def __init__(self, method_name, error_message):
msg = f"加密失败异常: 加密方法={method_name} 原因={error_message}"
super().__init__(msg)
self.logger.error(msg)
if __name__ == '__main__':
raise EncryptionError("111","222")

View File

@ -25,6 +25,7 @@ class Extractor:
"""
def __init__(self):
super().__init__()
self.output_variables_mapping = {}
def uniform_output(self, output_variables):

View File

@ -20,6 +20,10 @@ sys.path.append('../utils')
class LoadScript:
def __init__(self):
super().__init__()
def load_script(self, script_path):
"""

View File

@ -59,12 +59,15 @@ class Loaders(HttpClient):
if __name__ == '__main__':
from common.bif_functions import bif_faker
import extensions
print()
import encryption_rules
from encryption_rules import rules
# print()
loaders = Loaders()
loaders.load_built_in_comparators()
loaders.set_bif_fun(bif_faker)
print(loaders.get_environments())
loaders.set_bif_fun(extensions)
print(loaders.get_environments())
res = loaders.load_built_in_functions(rules)
print(res)
# loaders.load_built_in_comparators()
# loaders.set_bif_fun(bif_faker)
# print(loaders.get_environments())
#
# loaders.set_bif_fun(extensions)
# print(loaders.get_environments())

View File

@ -105,7 +105,8 @@ class Validator(Loaders):
"""
if not validate_variables:
return ""
self.assertions = '未填写断言信息,默认断言通过!!!'
return
self.validate_variables_list.clear()
self.assertions.clear()
self.uniform_validate(validate_variables)

View File

@ -18,9 +18,9 @@ class Config:
PARENT_DIR = os.path.dirname(BASE_URL)
# 测试数据所在路径
TEMPLATES = os.path.join(PARENT_DIR, "cases", "templates", "template.xlsx") # 用例模板文件
TEST_CASE = os.path.join(PARENT_DIR, "cases", "cases", "test_cases.xlsx")
TEST_FILES = os.path.join(PARENT_DIR, 'cases', 'files') # 用来上传文件的文件夹
TEMPLATES = os.path.join(PARENT_DIR, "src", "templates", "template.xlsx") # 用例模板文件
TEST_CASE = os.path.join(PARENT_DIR, "src", "cases", "test_cases.xlsx")
TEST_FILES = os.path.join(PARENT_DIR, 'src', 'files') # 用来上传文件的文件夹
# 测试用例脚本目录
SCRIPT = os.path.join(PARENT_DIR, "test_script")

View File

@ -7,3 +7,4 @@
@time: 2023/8/1 17:07
@desc:
"""
from .rules import *

View File

@ -12,22 +12,24 @@ import time
from natsort import natsorted
__all__ = ["md5_sign", "sha1_sign"]
__all__ = ["md5_sign", "sha1_sign", "rsa_sign"]
from common.crypto.encryption_str import sha1_secret_str, md5
from common.crypto.encryption_rsa import Rsa
def md5_sign(data: dict):
def md5_sign(post_data: dict):
"""
数据加签
MD5 数据加签
Args:
**data:需要加钱的数据DD
Returns:
"""
print(f"开始执行md5_sign加密,待加密参数={post_data}")
sorted_list = []
for key, value in data.items():
for key, value in post_data.items():
try:
sorted_params = str(key) + str(value)
sorted_list.append(sorted_params)
@ -37,12 +39,14 @@ def md5_sign(data: dict):
argument = "加签所需要的密钥"
keystore = argument + ("".join(sort)) # 生成加带密钥的新字符串
sign_value = md5(keystore)
return {**data, **{"sign": sign_value}}
return {**post_data, **{"sign": sign_value}}
def sha1_sign(post_data: dict):
"""sha1 加密"""
print(f"开始执行sha1_sign加密,待加密参数={post_data}")
timestamp = int(round(time.time() * 1000)) # 毫秒级时间戳
argument = {"secretKey": "", "timestamp": timestamp} # 加密加盐参数
argument = {"secretKey": "xxxx", "timestamp": timestamp} # 加密加盐参数
res = {**post_data, **argument}
sorted_list = []
for key, value in res.items():
@ -59,3 +63,9 @@ def sha1_sign(post_data: dict):
encrypted_str = sha1_secret_str(splicing_str) # sha1加密
sign = {"signature": encrypted_str}
return {**res, **sign} # request 中使用json入参则传dict
def rsa_sign(post_data):
"""rsa 加密"""
rs = Rsa(post_data)
return rs.rsa_encrypt()

View File

@ -44,8 +44,8 @@ class ExcelConverter:
if __name__ == '__main__':
postman_to_json = r'.\data\temporary_file\postman.json' # postman导出的json文件
postman_out_file = os.path.join(Config.BASE_URL, 'cases', 'test_cases', 'test_postman_cases.xlsx') # 转化后的文件保存的位置
postman_out_file = os.path.join(Config.BASE_URL, 'src', 'test_cases', 'test_postman_cases.xlsx') # 转化后的文件保存的位置
openapi_to_json = r'.\data\temporary_file\openapi.json' # postman导出的json文件
openapi_out_file = os.path.join(Config.BASE_URL, 'cases', 'test_cases', 'test_openapi_cases.xlsx') # 转化后的文件保存的位置
openapi_out_file = os.path.join(Config.BASE_URL, 'src', 'test_cases', 'test_openapi_cases.xlsx') # 转化后的文件保存的位置
ExcelConverter('postman', postman_to_json, postman_out_file).main()
ExcelConverter('postman', openapi_to_json, openapi_out_file).main()

File diff suppressed because one or more lines are too long

7
run.py
View File

@ -9,7 +9,7 @@ import unittest
sys.path.append("./common")
sys.path.append("./")
sys.path.append('cases')
sys.path.append('src')
from config.config import Config
from common.core.testRunner import TestRunner
@ -19,15 +19,12 @@ from common.utils.decorators import install_dependencies
@install_dependencies
def run():
test_report = Config.TEST_REPORT
print(Config.BASE_URL)
print(test_report)
print(Config.SCRIPT)
test_case = unittest.defaultTestLoader.discover(Config.SCRIPT, pattern="test_*.py")
runner = TestRunner(test_case, report_dir=test_report, title="接口自动化测试报告", templates=2, tester="kira",
desc="自动化测试")
runner.run()
# # get_failed_test_cases = runner.get_failed_test_cases()
# 发送通知
# runner.email_notice()
runner.dingtalk_notice()
runner.weixin_notice()

BIN
src/cases/test_cases.xlsx Normal file

Binary file not shown.

BIN
src/templates/template.xlsx Normal file

Binary file not shown.

View File

@ -12,7 +12,7 @@ import unittest
import extensions
from common.core.dataDriver import ddt
from common.file_handling.do_excel import DoExcel
from common.utils.action import Action
from common.core.action import Action
from common.utils.decorators import list_data
from config.config import Config