Commit b2390e88 by xu_weifan

API

parent 62885a46
{"uuid": "7e07e9ab-fad1-48fa-a5ce-aaa324c50403", "befores": [{"name": "title", "status": "passed", "start": 1721034600865, "stop": 1721034600865}], "start": 1721034600865, "stop": 1721034600886}
\ No newline at end of file
{"uuid": "45624adf-f1a2-498c-9a18-329ee056edcf", "befores": [{"name": "module_name", "status": "passed", "start": 1721034601137, "stop": 1721034601137}], "start": 1721034601137, "stop": 1721034601178}
\ No newline at end of file
{"uuid": "e9b101e4-7ebc-4b92-94d9-58e92a62307c", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034590697, "stop": 1721034590697}], "start": 1721034590697, "stop": 1721034590737}
\ No newline at end of file
{"uuid": "70a2cf25-8c24-4e58-bd06-7135912b0a36", "befores": [{"name": "level", "status": "passed", "start": 1721034590747, "stop": 1721034590747}], "start": 1721034590747, "stop": 1721034590804}
\ No newline at end of file
{"uuid": "88d8dfbc-e7af-42ad-a6ab-2eae9c7b7c47", "befores": [{"name": "module_name", "status": "passed", "start": 1721034584050, "stop": 1721034584050}], "start": 1721034584050, "stop": 1721034584084}
\ No newline at end of file
{"uuid": "0fb55982-14e7-4ff1-834f-dbf28dafe20e", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034600671, "stop": 1721034600671}], "start": 1721034600671, "stop": 1721034600716}
\ No newline at end of file
{"uuid": "ed359215-1071-4b08-be69-111c6469a626", "befores": [{"name": "case_title", "status": "passed", "start": 1721034599618, "stop": 1721034599618}], "start": 1721034599618, "stop": 1721034599660}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "PUT /api/demension/v1/dem/setDefaultDem?code=test_dem_xyz_123 HTTP/11" 200 None
\ No newline at end of file
{"uuid": "68c0da94-7f50-4a59-9611-881f50b18bfc", "befores": [{"name": "update_key", "status": "passed", "start": 1721034601138, "stop": 1721034601138}], "start": 1721034601138, "stop": 1721034601174}
\ No newline at end of file
{"uuid": "063cb7b7-fce4-4468-8cd0-5dc90f7ca0be", "befores": [{"name": "api_name", "status": "passed", "start": 1721034597274, "stop": 1721034597274}], "start": 1721034597274, "stop": 1721034597313}
\ No newline at end of file
{"uuid": "a8efb293-c9bb-40d1-9e59-d2f949879173", "befores": [{"name": "module_name", "status": "passed", "start": 1721034600671, "stop": 1721034600671}], "start": 1721034600671, "stop": 1721034600718}
\ No newline at end of file
{"uuid": "0e8126b2-c7e4-4730-99eb-3fecc88ab23d", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034583981, "stop": 1721034583981}], "start": 1721034583981, "stop": 1721034584002}
\ No newline at end of file
{"uuid": "20dcafa6-dc0f-4d89-8ab0-ff0447e817e3", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034600990, "stop": 1721034600990}], "start": 1721034600990, "stop": 1721034601033}
\ No newline at end of file
{"uuid": "c58df3c8-2a21-449f-954b-9c466a1f6f11", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034601225, "stop": 1721034601225}], "start": 1721034601225, "stop": 1721034601274}
\ No newline at end of file
{"uuid": "a198a46c-d738-490f-a024-7e7ef7f4c7d0", "befores": [{"name": "api_name", "status": "passed", "start": 1721034597453, "stop": 1721034597453}], "start": 1721034597453, "stop": 1721034597489}
\ No newline at end of file
{"uuid": "86755d1f-0920-46bc-bd55-2c21ed580721", "befores": [{"name": "case_method", "status": "passed", "start": 1721034584010, "stop": 1721034584010}], "start": 1721034584010, "stop": 1721034584042}
\ No newline at end of file
{"uuid": "a0dc1654-2da7-42db-a31f-0a70aedd0e37", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034597274, "stop": 1721034597274}], "start": 1721034597274, "stop": 1721034597310}
\ No newline at end of file
{"uuid": "d9c401f1-7ccb-4dc1-aa46-33349dd1e790", "befores": [{"name": "case_data", "status": "passed", "start": 1721034597235, "stop": 1721034597235}], "start": 1721034597235, "stop": 1721034597267}
\ No newline at end of file
{"uuid": "3c0419a2-5b85-4319-a8c9-9d8c04f5f7bc", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034584050, "stop": 1721034584050}], "start": 1721034584050, "stop": 1721034584082}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "b29e2eac-b975-4026-ac3f-f3f8ab72ce5a", "befores": [{"name": "case_data", "status": "passed", "start": 1721034604419, "stop": 1721034604419}], "start": 1721034604419, "stop": 1721034604462}
\ No newline at end of file
{"uuid": "eb376116-9fbb-4113-89f0-ddf2354d7694", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034583942, "stop": 1721034583942}], "start": 1721034583942, "stop": 1721034583975}
\ No newline at end of file
{"uuid": "fdf05738-b544-421a-a840-f7e4ba78ee9b", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034597418, "stop": 1721034597418}], "start": 1721034597418, "stop": 1721034597446}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "67500b7f-316b-452f-ba16-4a5469d3903b", "befores": [{"name": "module_name", "status": "passed", "start": 1721034589630, "stop": 1721034589630}], "start": 1721034589630, "stop": 1721034589677}
\ No newline at end of file
{"uuid": "e82e147a-fb52-43d5-82de-4804816e2e91", "befores": [{"name": "api_name", "status": "passed", "start": 1721034585330, "stop": 1721034585330}], "start": 1721034585330, "stop": 1721034585370}
\ No newline at end of file
{"uuid": "965b47c9-d909-4fc4-a6c5-ba257c9ea22c", "befores": [{"name": "case_url", "status": "passed", "start": 1721034584010, "stop": 1721034584010}], "start": 1721034584010, "stop": 1721034584042}
\ No newline at end of file
post http://36.139.193.99:8088/api/demension/v1/dem/addDem json {'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'} {'message': '添加维度成功!'} delete DELETE FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; None
{"state":true,"message":"添加维度成功!","value":"","code":200}
断言成功
GET http://36.139.193.99:8088/refresh None None {'message': '刷新成功'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzUsImlhdCI6MTcyMTAzNDUzNX0.EWQ7C4SuS63E2IIJl_gfCgk16XVg_Z_m8o3mRp70XM1jNDBIYzYwy5okNX-9j5IQDSurUD9TsdwaQBvnCJhxSQ","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
GET http://36.139.193.99:8088/refresh None None {'message': '刷新成功'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzYsImlhdCI6MTcyMTAzNDUzNn0.DY-ZBzr8K_Bb2KVq-ZyL2z9N6qXw4Jday3dIFbQalfdU0ur0gO3yuvFSLlJb7J9VqPw13FGiGTn755SgvJJikA","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
GET http://36.139.193.99:8088/refresh None None {'message': '刷新成功'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzcsImlhdCI6MTcyMTAzNDUzN30.zkgRxYc1ZSTXBzUlR1fDosGafOqytm5L0ZR7nZa7QXfuBl-xiPMLsJbCd_AhLh7AgQzbDDwlUjxL0XijsDh7tA","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
{"uuid": "29d47181-6441-4ff4-bd39-df7198c3bf2c", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034597495, "stop": 1721034597495}], "start": 1721034597495, "stop": 1721034597536}
\ No newline at end of file
{"uuid": "ec42ee1d-ce0b-4720-9f0c-f12eaa4cb394", "befores": [{"name": "api_name", "status": "passed", "start": 1721034583942, "stop": 1721034583942}], "start": 1721034583942, "stop": 1721034583976}
\ No newline at end of file
{"uuid": "26db7201-ab24-471b-9f00-af49fb8a7d12", "befores": [{"name": "case_data", "status": "passed", "start": 1721034583942, "stop": 1721034583942}], "start": 1721034583942, "stop": 1721034583974}
\ No newline at end of file
{"uuid": "105877e6-3a78-49f7-875f-b7e38a7a6fe9", "befores": [{"name": "case_method", "status": "passed", "start": 1721034604419, "stop": 1721034604419}], "start": 1721034604419, "stop": 1721034604463}
\ No newline at end of file
{"uuid": "3b34aef9-5174-4d5a-86eb-b480d0af9918", "befores": [{"name": "module_name", "status": "passed", "start": 1721034597235, "stop": 1721034597235}], "start": 1721034597235, "stop": 1721034597269}
\ No newline at end of file
{"uuid": "926c93ab-bd87-495a-9567-a70830351e41", "befores": [{"name": "case_title", "status": "passed", "start": 1721034587490, "stop": 1721034587490}], "start": 1721034587490, "stop": 1721034587554}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1812776305478443008"}
断言成功
{"uuid": "2e43c933-83eb-4ddc-8ffc-165c677509e0", "befores": [{"name": "case_url", "status": "passed", "start": 1721034584125, "stop": 1721034584125}], "start": 1721034584125, "stop": 1721034584318}
\ No newline at end of file
{"uuid": "17aa9e78-4191-498e-b855-055bceaa7cf4", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034590747, "stop": 1721034590748}], "start": 1721034590747, "stop": 1721034590803}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776360943919104 HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776360943919104 HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776360943919104 HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776360943919104 HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "4be0478d-282e-44d5-b0fe-2c3e9de5d227", "befores": [{"name": "update_key", "status": "passed", "start": 1721034593970, "stop": 1721034593970}], "start": 1721034593970, "stop": 1721034594018}
\ No newline at end of file
{"uuid": "38f8894a-b378-4a0c-9a1a-8bc76bc335e1", "befores": [{"name": "api_name", "status": "passed", "start": 1721034591833, "stop": 1721034591833}], "start": 1721034591833, "stop": 1721034591881}
\ No newline at end of file
{"name": "反向用例-用户名过长-密码正确", "status": "passed", "attachments": [{"name": "log", "source": "79268106-342f-4e1c-b025-e4a13bb6296d-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "0d0d13d1-8b61-41ab-bde3-6c9156c5a6fe-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名过长-密码正确'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034584051, "stop": 1721034584079, "uuid": "212df0d3-e3db-4016-9ad3-8573102599a1", "historyId": "6a5ad61f25e888eed5239bf5b93834c2", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "3c944a2e-7d3b-409b-b684-f4e0bddcdd64", "befores": [{"name": "case_title", "status": "passed", "start": 1721034583942, "stop": 1721034583942}], "start": 1721034583942, "stop": 1721034583976}
\ No newline at end of file
{"uuid": "9feb8991-9821-4558-835a-e2c0d8ef639d", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034586385, "stop": 1721034586385}], "start": 1721034586385, "stop": 1721034586426}
\ No newline at end of file
{"uuid": "a7e92d34-5188-4bd0-acf5-4eb59baeb242", "befores": [{"name": "level", "status": "passed", "start": 1721034584009, "stop": 1721034584009}], "start": 1721034584009, "stop": 1721034584043}
\ No newline at end of file
{"uuid": "2090833a-213b-4fdd-92c4-fa364f5f4826", "befores": [{"name": "api_name", "status": "passed", "start": 1721034601077, "stop": 1721034601077}], "start": 1721034601077, "stop": 1721034601132}
\ No newline at end of file
{"uuid": "a2d8d83b-8bcc-4400-9472-fd72a6eebc7a", "befores": [{"name": "update_key", "status": "passed", "start": 1721034602304, "stop": 1721034602304}], "start": 1721034602304, "stop": 1721034602336}
\ No newline at end of file
{"uuid": "121dd048-cf7b-44c1-89cd-abdf428818cb", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034594025, "stop": 1721034594025}], "start": 1721034594025, "stop": 1721034594063}
\ No newline at end of file
{"name": "正向用例-用户名和密码正确", "status": "passed", "attachments": [{"name": "log", "source": "25276a2d-3724-4748-a229-30615bb2b3e2-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "dcd83c7c-2184-40d6-879a-31ed0b20808f-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例-用户名和密码正确'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034583943, "stop": 1721034583971, "uuid": "be32b860-c7b5-41a5-b450-e6326a14a2b1", "historyId": "81b63d12303454254c2f6e7bbd67d858", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "563dbb5b-e356-479c-883c-abdbc4ac3b30", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034599619, "stop": 1721034599619}], "start": 1721034599619, "stop": 1721034599658}
\ No newline at end of file
{"uuid": "aa661b29-c875-4deb-956b-8b1db46a1f43", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034595075, "stop": 1721034595075}], "start": 1721034595075, "stop": 1721034595107}
\ No newline at end of file
{"uuid": "2d57aa96-e886-469d-ade1-4be194e740ce", "befores": [{"name": "case_data", "status": "passed", "start": 1721034595075, "stop": 1721034595075}], "start": 1721034595075, "stop": 1721034595108}
\ No newline at end of file
{"uuid": "05b82572-6337-414a-b893-5b01cc64688a", "befores": [{"name": "title", "status": "passed", "start": 1721034600833, "stop": 1721034600833}], "start": 1721034600833, "stop": 1721034600860}
\ No newline at end of file
{"uuid": "95640c3c-d4a2-4467-bdfd-d1cd3a3f3a2f", "befores": [{"name": "update_key", "status": "passed", "start": 1721034584010, "stop": 1721034584010}], "start": 1721034584010, "stop": 1721034584039}
\ No newline at end of file
{"uuid": "4b05f4f6-164d-466b-86e4-6382a3d8e284", "befores": [{"name": "case_url", "status": "passed", "start": 1721034600671, "stop": 1721034600671}], "start": 1721034600671, "stop": 1721034600716}
\ No newline at end of file
{"uuid": "72194e98-1a1c-4b32-8c40-181d568fff32", "befores": [{"name": "api_name", "status": "passed", "start": 1721034601137, "stop": 1721034601137}], "start": 1721034601137, "stop": 1721034601178}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过长", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63FD0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63FD0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "3af2a59e-0d72-4b93-9848-798c682e9518-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "501a0fc4-265f-44d0-9051-131e3b90df5e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码过长'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': '1'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034587491, "stop": 1721034587531, "uuid": "255fc337-8782-439f-8079-63ffa3b00ffb", "historyId": "63bcb2c305b7f0bcb7fd2d55d671e0a6", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "631798cd-c06d-4b3d-87f8-b43b5f7db80f", "befores": [{"name": "api_name", "status": "passed", "start": 1721034601181, "stop": 1721034601181}], "start": 1721034601181, "stop": 1721034601221}
\ No newline at end of file
{"uuid": "a66da173-780a-4d8f-93e4-45bb90525dff", "befores": [{"name": "case_title", "status": "passed", "start": 1721034593969, "stop": 1721034593969}], "start": 1721034593969, "stop": 1721034594021}
\ No newline at end of file
{"uuid": "d83ee37c-ed3d-43ef-b42d-9779ffcb15a1", "befores": [{"name": "case_data", "status": "passed", "start": 1721034583981, "stop": 1721034583981}], "start": 1721034583981, "stop": 1721034584004}
\ No newline at end of file
{"uuid": "ad6ba93e-5e3c-4f81-bc66-ffefbbacfd6d", "befores": [{"name": "case_data", "status": "passed", "start": 1721034597317, "stop": 1721034597317}], "start": 1721034597317, "stop": 1721034597345}
\ No newline at end of file
{"uuid": "801f87dd-84c5-49e2-8186-424a394893d3", "befores": [{"name": "case_method", "status": "passed", "start": 1721034586384, "stop": 1721034586384}], "start": 1721034586384, "stop": 1721034586428}
\ No newline at end of file
{"uuid": "33a41a31-9e27-466e-b7e1-7eaf8066cf27", "befores": [{"name": "case_url", "status": "passed", "start": 1721034591834, "stop": 1721034591834}], "start": 1721034591834, "stop": 1721034591879}
\ No newline at end of file
{"uuid": "21589f9f-960a-4dfd-800f-a1fc94bc159a", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034597351, "stop": 1721034597351}], "start": 1721034597351, "stop": 1721034597413}
\ No newline at end of file
{"uuid": "ea9aa497-29d1-4c5a-b4e3-4317443718f5", "befores": [{"name": "case_method", "status": "passed", "start": 1721034603353, "stop": 1721034603353}], "start": 1721034603353, "stop": 1721034603398}
\ No newline at end of file
{"uuid": "2198512d-3aef-4b5b-849b-c3696c7eebbf", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034593970, "stop": 1721034593970}], "start": 1721034593970, "stop": 1721034594019}
\ No newline at end of file
{"uuid": "04fbd412-a8d2-4616-8046-9e418fcc2b7e", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034585331, "stop": 1721034585331}], "start": 1721034585331, "stop": 1721034585367}
\ No newline at end of file
{"uuid": "6feb0cf3-8414-4fbf-a14f-cdecfa38505b", "befores": [{"name": "case_url", "status": "passed", "start": 1721034593970, "stop": 1721034593970}], "start": 1721034593970, "stop": 1721034594020}
\ No newline at end of file
{"uuid": "3b5be063-d20a-47f9-9419-648050c68242", "befores": [{"name": "module_name", "status": "passed", "start": 1721034595075, "stop": 1721034595075}], "start": 1721034595075, "stop": 1721034595111}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': ''} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776305788821504"}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': ''} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776310842957824"}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': ''} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776315267948544"}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': ''} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776319697133568"}
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "e190aa10-044a-4424-af7b-3e6546c8080d-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "ae700d21-ffb0-4a57-a222-3af2840cfc2b-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'设置默认维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'PUT'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'code': 'test_dem_xyz_123'}"}, {"name": "expect_data", "value": "{'message': '设置默认维度成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034601041, "stop": 1721034601069, "uuid": "83015e5c-b1ed-4901-b700-156c9788a3c9", "historyId": "56957926302f06b75969c6b498f201d0", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "设置默认维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79190>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '刷新成功' == None\nE + where None = <built-in method get of dict object at 0x00000203D7D16640>('message')\nE + where <built-in method get of dict object at 0x00000203D7D16640> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...UsImlhdCI6MTcyMTAzNDUzNX0.EWQ7C4SuS63E2IIJl_gfCgk16XVg_Z_m8o3mRp70XM1jNDBIYzYwy5okNX-9j5IQDSurUD9TsdwaQBvnCJhxSQ', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...UsImlhdCI6MTcyMTAzNDUzNX0.EWQ7C4SuS63E2IIJl_gfCgk16XVg_Z_m8o3mRp70XM1jNDBIYzYwy5okNX-9j5IQDSurUD9TsdwaQBvnCJhxSQ', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79190>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "83386d9f-3dfd-4905-b73a-efc20980ed1c-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "aa5bad3d-ac93-4e19-81eb-0b85de6010f2-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'刷新token'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'GET'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/refresh'"}, {"name": "case_mime", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新成功'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034594025, "stop": 1721034594053, "uuid": "47175090-6d9b-4a86-98c4-12137b193e32", "historyId": "0726b7ece66163239f4822447c1bd114", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "6c633d32-9a74-4387-8e02-022cc0e8d20b", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034584050, "stop": 1721034584050}], "start": 1721034584050, "stop": 1721034584081}
\ No newline at end of file
{"uuid": "bded017f-31ce-4f15-b866-292a8cdc480f", "befores": [{"name": "case_data", "status": "passed", "start": 1721034597274, "stop": 1721034597274}], "start": 1721034597274, "stop": 1721034597310}
\ No newline at end of file
{"uuid": "fc58f42f-cbc2-4cad-beb4-dd9a6bf6030f", "befores": [{"name": "api_name", "status": "passed", "start": 1721034597351, "stop": 1721034597351}], "start": 1721034597351, "stop": 1721034597415}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79610>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776360943919104'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79610>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776360943919104'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "0e0cb648-0668-4968-a277-18debabeb819-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "78efd5d3-c18c-4564-bb31-af80639ef3c7-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'DELETE'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1812776360943919104'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1721034600672, "stop": 1721034600706, "uuid": "9097672b-78ef-4f27-afbb-ae213711410b", "historyId": "b1880520415454889e175a38974c597e", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "366a791b-51e8-463d-a1be-76fb6987e5c3", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034597351, "stop": 1721034597351}], "start": 1721034597351, "stop": 1721034597412}
\ No newline at end of file
{"uuid": "7e058c6a-4a05-4935-9e14-9da729219bc4", "befores": [{"name": "case_data", "status": "passed", "start": 1721034597418, "stop": 1721034597418}], "start": 1721034597418, "stop": 1721034597447}
\ No newline at end of file
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '需要更新'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":true,"message":"删除维度成功!","value":"","code":200}
{"uuid": "3c76c8fd-08e3-4685-bc4a-67a44ff798b3", "befores": [{"name": "module_name", "status": "passed", "start": 1721034584009, "stop": 1721034584009}], "start": 1721034584009, "stop": 1721034584045}
\ No newline at end of file
{"uuid": "4cad9f4d-3eae-4599-a110-5ce7e63ce06c", "befores": [{"name": "api_name", "status": "passed", "start": 1721034600671, "stop": 1721034600671}], "start": 1721034600671, "stop": 1721034600717}
\ No newline at end of file
{"uuid": "d3128e54-0b89-4940-be87-057ee75cb365", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034590697, "stop": 1721034590697}], "start": 1721034590697, "stop": 1721034590737}
\ No newline at end of file
{"uuid": "fedb0062-a1cb-418d-90ba-a90a073a2ead", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034597454, "stop": 1721034597454}], "start": 1721034597454, "stop": 1721034597486}
\ No newline at end of file
{"uuid": "21bf0f88-79be-41f6-9be9-6940c130dd74", "befores": [{"name": "case_method", "status": "passed", "start": 1721034594025, "stop": 1721034594025}], "start": 1721034594025, "stop": 1721034594065}
\ No newline at end of file
{"uuid": "43c89021-4455-4169-acce-0a18dae78e16", "befores": [{"name": "api_name", "status": "passed", "start": 1721034586384, "stop": 1721034586384}], "start": 1721034586384, "stop": 1721034586429}
\ No newline at end of file
{"uuid": "af7403bc-6a5f-4fe2-a239-487d9cb70554", "befores": [{"name": "update_key", "status": "passed", "start": 1721034601225, "stop": 1721034601225}], "start": 1721034601225, "stop": 1721034601271}
\ No newline at end of file
DEBUG  pytest_dependency:pytest_dependency.py:87 check dependencies of test_get_dem_msg[case_data2-expect_data2-反向用例2] in module scope ...
DEBUG  pytest_dependency:pytest_dependency.py:92 ... TestBPM::test_add_dem succeeded
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /api/demension/v1/dem/getDem?=abctest HTTP/11" 500 None
\ No newline at end of file
{"uuid": "ada2bad4-5fdc-4fc0-ae64-d4e96dcfb45f", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034588564, "stop": 1721034588564}], "start": 1721034588564, "stop": 1721034588611}
\ No newline at end of file
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
\ No newline at end of file
{"uuid": "0ba3713f-df74-4c07-8cc5-7cd0eeafdfc7", "befores": [{"name": "case_method", "status": "passed", "start": 1721034601077, "stop": 1721034601077}], "start": 1721034601077, "stop": 1721034601131}
\ No newline at end of file
{"uuid": "45bc09f4-f1ce-4be0-8bde-c41800cb0973", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034601041, "stop": 1721034601041}], "start": 1721034601041, "stop": 1721034601070}
\ No newline at end of file
{"uuid": "ea4041af-a2be-4678-aaec-fdb3181f49a5", "befores": [{"name": "case_method", "status": "passed", "start": 1721034588563, "stop": 1721034588563}], "start": 1721034588563, "stop": 1721034588612}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "5eb04c5f-d43f-4e1e-8381-6c92de486cdf-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "e641a3b0-ef48-4160-a60b-a610e5fd1447-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"}, {"name": "case_mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功!'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "sql_data", "value": "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}"}, {"name": "update_key", "value": "'demId'"}], "start": 1721034601078, "stop": 1721034601127, "uuid": "db2795e1-bd42-4f36-87a7-f522010c730f", "historyId": "01564deace1bae4511797e62938a89a4", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"uuid": "40b68a60-06ab-450e-b4b7-13d2ccd69d2f", "befores": [{"name": "module_name", "status": "passed", "start": 1721034590747, "stop": 1721034590747}], "start": 1721034590747, "stop": 1721034590805}
\ No newline at end of file
{"uuid": "6361a0cb-2b20-4bf6-812f-a87b686437e1", "befores": [{"name": "api_name", "status": "passed", "start": 1721034584089, "stop": 1721034584089}], "start": 1721034584089, "stop": 1721034584122}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过短", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D790D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert False == None\nE + where None = <built-in method get of dict object at 0x00000203D7E9E180>('state')\nE + where <built-in method get of dict object at 0x00000203D7E9E180> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...QsImlhdCI6MTcyMTAzNDUzNH0.KulD_YVLlpPYa59XmHg4iD8jnK0cot2R_44MgEN5Dv2vcV_D9hnDXB_ymJW0yO6GmWgXnQLuav0GrMPoTC-h8w', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...QsImlhdCI6MTcyMTAzNDUzNH0.KulD_YVLlpPYa59XmHg4iD8jnK0cot2R_44MgEN5Dv2vcV_D9hnDXB_ymJW0yO6GmWgXnQLuav0GrMPoTC-h8w', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D790D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "512ddd98-871f-4c8b-a077-ae722021f0a0-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "43a7b84d-40c1-4ca5-88ac-61e977658b38-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码过短'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034592905, "stop": 1721034592936, "uuid": "c95e927f-7f64-4fc2-a9e2-7e41e217536e", "historyId": "423b926d9c9c8e8a56af3847b1819589", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "3e527e50-2139-49b3-8d50-b9c5ec27e390", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034587437, "stop": 1721034587437}], "start": 1721034587437, "stop": 1721034587482}
\ No newline at end of file
post http://36.139.193.99:8088/api/org/v1/org/deleteOrg form test_org {'state': True, 'message': '删除组织成功!'} None None None
{"state":true,"message":"删除组织成功!","value":"","code":200}
断言成功
{"uuid": "286f3235-b506-4ae6-a08f-b51ea4c80275", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034584010, "stop": 1721034584010}], "start": 1721034584010, "stop": 1721034584042}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/org/deleteOrg HTTP/11" 200 None
\ No newline at end of file
{"uuid": "7c8ef5df-7294-4976-86c9-8018325e213f", "befores": [{"name": "update_key", "status": "passed", "start": 1721034585331, "stop": 1721034585331}], "start": 1721034585331, "stop": 1721034585367}
\ No newline at end of file
{"uuid": "04fd8bb2-f5d3-4e4a-8a76-4cdc0c0218ef", "befores": [{"name": "update_key", "status": "passed", "start": 1721034597274, "stop": 1721034597274}], "start": 1721034597274, "stop": 1721034597309}
\ No newline at end of file
{"uuid": "f3787956-722b-4283-b3e8-a5c2444624c8", "befores": [{"name": "api_name", "status": "passed", "start": 1721034587490, "stop": 1721034587490}], "start": 1721034587490, "stop": 1721034587556}
\ No newline at end of file
{"uuid": "a504e0e3-fb7b-4ad4-ab8a-fb0620c61282", "befores": [{"name": "api_name", "status": "passed", "start": 1721034584125, "stop": 1721034584125}], "start": 1721034584125, "stop": 1721034584319}
\ No newline at end of file
{"uuid": "00194254-afa5-485a-ab38-e4ad78045a61", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034584127, "stop": 1721034584127}], "start": 1721034584127, "stop": 1721034584308}
\ No newline at end of file
{"uuid": "276ad52a-bea9-42cf-983f-3ae519bdb028", "befores": [{"name": "api_name", "status": "passed", "start": 1721034597316, "stop": 1721034597316}], "start": 1721034597316, "stop": 1721034597347}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776376546729984 HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19报错,错误为:断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":"","code":200}
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776376546729984 HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19报错,错误为:断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","code":200,"logId":"1812776382011908096"}
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776376546729984 HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19报错,错误为:断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","code":200,"logId":"1812776386449481728"}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /refresh HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /refresh HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /refresh HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /refresh HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "7ee83850-dde1-4ebe-bda5-a3485d26e92d", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034597317, "stop": 1721034597317}], "start": 1721034597317, "stop": 1721034597344}
\ No newline at end of file
{"uuid": "6b8aa798-9c86-48ea-82b7-938df9055011", "befores": [{"name": "api_name", "status": "passed", "start": 1721034592904, "stop": 1721034592904}], "start": 1721034592904, "stop": 1721034592950}
\ No newline at end of file
{"uuid": "43c2a623-235e-4f38-9ae0-13c2f365c83b", "befores": [{"name": "case_title", "status": "passed", "start": 1721034601225, "stop": 1721034601225}], "start": 1721034601225, "stop": 1721034601275}
\ No newline at end of file
{"uuid": "1e6125a9-93bd-4cbd-93a7-415eb067285f", "befores": [{"name": "update_key", "status": "passed", "start": 1721034604419, "stop": 1721034604419}], "start": 1721034604419, "stop": 1721034604459}
\ No newline at end of file
{"uuid": "5b594ade-2cc8-4e43-b35b-95cd28aa9f82", "befores": [{"name": "level", "status": "passed", "start": 1721034584089, "stop": 1721034584089}], "start": 1721034584089, "stop": 1721034584122}
\ No newline at end of file
{"uuid": "731facda-f902-45cb-978b-5d1d8df4779e", "befores": [{"name": "update_key", "status": "passed", "start": 1721034601181, "stop": 1721034601181}], "start": 1721034601181, "stop": 1721034601217}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过长", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63FD0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63FD0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "05657116-b5db-4e58-8f11-cb3762d80ffb-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "dd231a6c-d6e9-4cf2-978c-6f801e4be7b0-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码过长'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': '1'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034588564, "stop": 1721034588602, "uuid": "b202886c-b54b-4cda-b43b-25ddf48d7c35", "historyId": "63bcb2c305b7f0bcb7fd2d55d671e0a6", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "d88f3270-e21c-44cf-a8e5-817be25104e6", "befores": [{"name": "update_key", "status": "passed", "start": 1721034597351, "stop": 1721034597351}], "start": 1721034597351, "stop": 1721034597411}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776376546729984 HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19报错,错误为:断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":"","code":200}
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776376546729984 HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19报错,错误为:断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","code":200,"logId":"1812776382011908096"}
\ No newline at end of file
{"uuid": "e39eaded-fe67-48b5-b20b-0cf74e95f011", "befores": [{"name": "level", "status": "passed", "start": 1721034587436, "stop": 1721034587436}], "start": 1721034587436, "stop": 1721034587485}
\ No newline at end of file
{"uuid": "8ab5ab1e-51a7-4bfe-a4c6-9545d9349ef3", "befores": [{"name": "level", "status": "passed", "start": 1721034597453, "stop": 1721034597453}], "start": 1721034597453, "stop": 1721034597488}
\ No newline at end of file
{"uuid": "e081b3b2-2cd8-44e2-ad1c-5c899a40de8a", "befores": [{"name": "case_title", "status": "passed", "start": 1721034594025, "stop": 1721034594025}], "start": 1721034594025, "stop": 1721034594065}
\ No newline at end of file
{"uuid": "6e4a9774-07d2-40c1-913e-0f5208ec8d68", "befores": [{"name": "case_method", "status": "passed", "start": 1721034597235, "stop": 1721034597235}], "start": 1721034597235, "stop": 1721034597268}
\ No newline at end of file
{"uuid": "e29ddf6a-cd60-43b3-8d11-64e79150c3e7", "befores": [{"name": "update_key", "status": "passed", "start": 1721034589631, "stop": 1721034589631}], "start": 1721034589631, "stop": 1721034589673}
\ No newline at end of file
{"uuid": "c004ac49-869a-4a0d-97a0-379fd09ea26b", "befores": [{"name": "update_key", "status": "passed", "start": 1721034601077, "stop": 1721034601077}], "start": 1721034601077, "stop": 1721034601128}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776376546729984 HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19报错,错误为:断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":"","code":200}
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776376546729984 HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19报错,错误为:断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","code":200,"logId":"1812776382011908096"}
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776376546729984 HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19报错,错误为:断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","code":200,"logId":"1812776386449481728"}
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776376546729984 HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19报错,错误为:断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","code":200,"logId":"1812776390916415488"}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
\ No newline at end of file
{"uuid": "0392bfd1-1d60-43d4-9776-8056b3888b8b", "befores": [{"name": "case_data", "status": "passed", "start": 1721034600990, "stop": 1721034600990}], "start": 1721034600990, "stop": 1721034601034}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/orgParam/saveOrgParams?orgCode=test_org HTTP/11" 200 None
\ No newline at end of file
{"uuid": "6c35adb8-961c-4007-a5bb-074a36ba4526", "befores": [{"name": "level", "status": "passed", "start": 1721034596129, "stop": 1721034596129}], "start": 1721034596129, "stop": 1721034596224}
\ No newline at end of file
{"uuid": "9c522ff8-956a-416c-b45c-23366545b888", "befores": [{"name": "api_name", "status": "passed", "start": 1721034584009, "stop": 1721034584009}], "start": 1721034584009, "stop": 1721034584043}
\ No newline at end of file
{"uuid": "c9f75be1-205f-4580-b604-4193d110cd63", "befores": [{"name": "update_key", "status": "passed", "start": 1721034583942, "stop": 1721034583943}], "start": 1721034583942, "stop": 1721034583972}
\ No newline at end of file
{"uuid": "6d261bcd-d86e-4f10-9a73-f306c280186f", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034597235, "stop": 1721034597235}], "start": 1721034597235, "stop": 1721034597266}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776360943919104 HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776360943919104 HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776360943919104 HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "627e6627-d9c8-4ba9-b127-eaf9563d1a86", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034600671, "stop": 1721034600671}], "start": 1721034600671, "stop": 1721034600714}
\ No newline at end of file
{"uuid": "a43c9cbb-013f-4be5-b66a-85f7440b4908", "befores": [{"name": "module_name", "status": "passed", "start": 1721034600988, "stop": 1721034600988}], "start": 1721034600988, "stop": 1721034601036}
\ No newline at end of file
{"uuid": "68399577-faa0-4f55-ab00-ac566cfc1987", "befores": [{"name": "level", "status": "passed", "start": 1721034597418, "stop": 1721034597418}], "start": 1721034597418, "stop": 1721034597450}
\ No newline at end of file
{"uuid": "01254f59-7d0f-4423-a05e-22bfe9faf899", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034590748, "stop": 1721034590748}], "start": 1721034590748, "stop": 1721034590801}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "34555767-2465-48ed-b038-d40624072b1f", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034596130, "stop": 1721034596130}], "start": 1721034596130, "stop": 1721034596222}
\ No newline at end of file
{"uuid": "c83e2ab1-ef1d-4b54-8a96-10c2063dd9e9", "befores": [{"name": "case_method", "status": "passed", "start": 1721034597495, "stop": 1721034597495}], "start": 1721034597495, "stop": 1721034597539}
\ No newline at end of file
{"uuid": "56ad07d9-3f3c-40b0-815e-9dcd1355d755", "befores": [{"name": "level", "status": "passed", "start": 1721034601181, "stop": 1721034601181}], "start": 1721034601181, "stop": 1721034601221}
\ No newline at end of file
{"uuid": "0aef9e2b-1204-4110-b71b-ddf6e1b55474", "befores": [{"name": "case_data", "status": "passed", "start": 1721034588564, "stop": 1721034588564}], "start": 1721034588564, "stop": 1721034588611}
\ No newline at end of file
{"uuid": "7f55d121-38a5-4754-90a2-4e00431de2d7", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034604419, "stop": 1721034604419}], "start": 1721034604419, "stop": 1721034604460}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "d6cba54a-e2d7-4a73-9d53-5a843950800d-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "53efbbe8-b8af-4e22-9911-681ebc5bd8bf-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"}, {"name": "case_mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功!'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "sql_data", "value": "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}"}, {"name": "update_key", "value": "'demId'"}], "start": 1721034597352, "stop": 1721034597411, "uuid": "8d9d3a63-ab82-4c4a-92fd-0388dc834528", "historyId": "30128ddf4d022e0d195be80a40893eb8", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "d2fb638f-e3ae-471c-9bbb-c1cce6276edd", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034597454, "stop": 1721034597454}], "start": 1721034597454, "stop": 1721034597485}
\ No newline at end of file
{"uuid": "893e200f-1b1c-42c6-b1c4-68200231d6e2", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034601138, "stop": 1721034601138}], "start": 1721034601138, "stop": 1721034601175}
\ No newline at end of file
{"uuid": "710c6b3c-7e5d-4571-90e9-96c52d7785a5", "befores": [{"name": "level", "status": "passed", "start": 1721034589630, "stop": 1721034589630}], "start": 1721034589630, "stop": 1721034589677}
\ No newline at end of file
{"uuid": "d76a8ecc-8ff4-4b45-919b-315f24ee29aa", "befores": [{"name": "case_url", "status": "passed", "start": 1721034597317, "stop": 1721034597317}], "start": 1721034597317, "stop": 1721034597346}
\ No newline at end of file
{"uuid": "ccae102a-8025-42df-a443-b5b2dbdd0cdc", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034593970, "stop": 1721034593970}], "start": 1721034593970, "stop": 1721034594019}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776360943919104 HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过长", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63FD0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63FD0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "078f55c0-2fa7-4058-9828-a343a5450ea8-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "e974a8d6-17fb-4b7d-952c-e289b3896e63-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码过长'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': '1'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034590698, "stop": 1721034590728, "uuid": "083f3bfe-2091-4f72-9bf0-d67bcd502c59", "historyId": "63bcb2c305b7f0bcb7fd2d55d671e0a6", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "64e65e0f-7284-4ae9-871a-5ed1d56a4b31", "befores": [{"name": "module_name", "status": "passed", "start": 1721034597273, "stop": 1721034597273}], "start": 1721034597273, "stop": 1721034597313}
\ No newline at end of file
{"uuid": "f5beeae3-f15f-45bb-a389-7292e34d713d", "befores": [{"name": "module_name", "status": "passed", "start": 1721034603353, "stop": 1721034603353}], "start": 1721034603353, "stop": 1721034603399}
\ No newline at end of file
{"uuid": "d79272f3-6268-4234-a67d-58bbd5a94c7e", "befores": [{"name": "case_data", "status": "passed", "start": 1721034601137, "stop": 1721034601137}], "start": 1721034601137, "stop": 1721034601176}
\ No newline at end of file
{"uuid": "6a34e349-7108-4c08-b946-649ab78c9a72", "befores": [{"name": "update_key", "status": "passed", "start": 1721034583981, "stop": 1721034583981}], "start": 1721034583981, "stop": 1721034584001}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "e0fd5b80-b51e-4f62-9d96-0b652c15e7ec", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034597418, "stop": 1721034597418}], "start": 1721034597418, "stop": 1721034597446}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzIsImlhdCI6MTcyMTAzNDUzMn0.tu06EnO4tD8z_gd1aVcpa8H9uPWBWnZkMTh_iri0E6FBDiLZjvteZ5l-bHzpjo0Gp4XQjiD8XrbdHG3t_BrKGQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzMsImlhdCI6MTcyMTAzNDUzM30.SqAWrztyPxfay5i2OdcjSuCtztadhco-CGEHS4gYd7ZjGPPxwX6Si0OLn25FzD5plH2WFib6N7NdqQEnx0Cv9Q","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzQsImlhdCI6MTcyMTAzNDUzNH0.KulD_YVLlpPYa59XmHg4iD8jnK0cot2R_44MgEN5Dv2vcV_D9hnDXB_ymJW0yO6GmWgXnQLuav0GrMPoTC-h8w","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
{"uuid": "2ee05ef9-d9b7-411e-99d2-0650b460666d", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034597418, "stop": 1721034597418}], "start": 1721034597418, "stop": 1721034597446}
\ No newline at end of file
{"uuid": "d2c41e30-3e21-4207-8581-eb7adc7f43ed", "befores": [{"name": "update_key", "status": "passed", "start": 1721034595075, "stop": 1721034595075}], "start": 1721034595075, "stop": 1721034595106}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/demension/v1/dem/addDem HTTP/11" 200 None
\ No newline at end of file
{"uuid": "dbe4b2cc-8fd2-4031-adb9-6eb8a5be09ab", "befores": [{"name": "module_name", "status": "passed", "start": 1721034602303, "stop": 1721034602304}], "start": 1721034602303, "stop": 1721034602341}
\ No newline at end of file
{"uuid": "9e91a456-88f4-4961-8a02-d2042ab218fe", "befores": [{"name": "case_url", "status": "passed", "start": 1721034592904, "stop": 1721034592904}], "start": 1721034592904, "stop": 1721034592948}
\ No newline at end of file
{"uuid": "832ce50f-afac-4c18-80c1-c60237e20917", "befores": [{"name": "case_title", "status": "passed", "start": 1721034601077, "stop": 1721034601077}], "start": 1721034601077, "stop": 1721034601132}
\ No newline at end of file
{"uuid": "b3b1bab7-750e-428d-929f-05b01e93a930", "befores": [{"name": "case_method", "status": "passed", "start": 1721034583981, "stop": 1721034583981}], "start": 1721034583981, "stop": 1721034584005}
\ No newline at end of file
{"uuid": "989d8316-4564-460e-a451-4c47fe7c117d", "befores": [{"name": "case_url", "status": "passed", "start": 1721034583981, "stop": 1721034583981}], "start": 1721034583981, "stop": 1721034584005}
\ No newline at end of file
{"uuid": "8bbd4bfc-04b0-4547-890f-866f1c926a1c", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034590748, "stop": 1721034590748}], "start": 1721034590748, "stop": 1721034590800}
\ No newline at end of file
{"uuid": "494fcd81-b698-4137-9968-ff5ba202cea1", "befores": [{"name": "update_key", "status": "passed", "start": 1721034599619, "stop": 1721034599619}], "start": 1721034599619, "stop": 1721034599657}
\ No newline at end of file
{"uuid": "f0e7d75f-ba5e-4eca-8a87-84cc8f3f1354", "befores": [{"name": "case_data", "status": "passed", "start": 1721034601077, "stop": 1721034601077}], "start": 1721034601077, "stop": 1721034601130}
\ No newline at end of file
{"uuid": "7f8933d3-0e91-430a-84f3-c4f6c584047a", "befores": [{"name": "case_data", "status": "passed", "start": 1721034599619, "stop": 1721034599619}], "start": 1721034599619, "stop": 1721034599659}
\ No newline at end of file
{"uuid": "168d81dc-5772-461c-bb68-8954609f00ce", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034597274, "stop": 1721034597274}], "start": 1721034597274, "stop": 1721034597309}
\ No newline at end of file
{"uuid": "722765a8-49ab-499d-9362-2ac954548b82", "befores": [{"name": "case_data", "status": "passed", "start": 1721034591834, "stop": 1721034591834}], "start": 1721034591834, "stop": 1721034591879}
\ No newline at end of file
{"uuid": "32bed4bf-886b-4b09-a8a4-4a7a86b0cd23", "befores": [{"name": "case_url", "status": "passed", "start": 1721034604419, "stop": 1721034604419}], "start": 1721034604419, "stop": 1721034604462}
\ No newline at end of file
{"uuid": "c141356d-719f-4ac5-98fe-805e2546b748", "befores": [{"name": "case_method", "status": "passed", "start": 1721034587436, "stop": 1721034587436}], "start": 1721034587436, "stop": 1721034587484}
\ No newline at end of file
{"uuid": "9947bf13-9840-43b9-a8c4-2d3423a82377", "befores": [{"name": "case_title", "status": "passed", "start": 1721034595075, "stop": 1721034595075}], "start": 1721034595075, "stop": 1721034595109}
\ No newline at end of file
{"uuid": "12956b2e-1bb5-4b97-a10f-aa8aaa393fcf", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034601225, "stop": 1721034601225}], "start": 1721034601225, "stop": 1721034601273}
\ No newline at end of file
{"uuid": "c4676e12-5e9b-4aab-b3f9-f09fc94d16d9", "befores": [{"name": "case_data", "status": "passed", "start": 1721034590748, "stop": 1721034590748}], "start": 1721034590748, "stop": 1721034590802}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/orgParam/saveOrgParams?orgCode=test_org HTTP/11" 200 None
\ No newline at end of file
{"uuid": "6c2aea31-b9cc-48db-8503-a7dcbbe6c08e", "befores": [{"name": "case_method", "status": "passed", "start": 1721034591834, "stop": 1721034591834}], "start": 1721034591834, "stop": 1721034591880}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "2520ac7f-ec42-493b-bc50-719158e6ea34", "befores": [{"name": "module_name", "status": "passed", "start": 1721034597351, "stop": 1721034597351}], "start": 1721034597351, "stop": 1721034597416}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "2a190973-a9ce-42e7-af47-c32488473b56-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "5a57f1ae-1835-4d0f-97a0-b110fd7f3010-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'删除组织'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"}, {"name": "case_mime", "value": "'form'"}, {"name": "case_data", "value": "'test_org'"}, {"name": "expect_data", "value": "{'state': True, 'message': '删除组织成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034601183, "stop": 1721034601217, "uuid": "f93fdabe-6535-472f-8b95-50898fb6c599", "historyId": "d62e434428362512a9058f68faafe2f2", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "删除组织"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":false,\"message\":\"\",\"code\":200,\"logId\":\"1812776386449481728\"}", "trace": "self = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x00000203D7D7C0D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7E8DA00>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7EEB9D0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776376546729984'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_lao_zhang\\test_case.py:62: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x00000203D7D7C0D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7E8DA00>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7EEB9D0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776376546729984'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n # log.error(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\n # raise AssertionError(\"断言失败,描述失败的原因\")\n> raise AssertionError(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\nE AssertionError: 断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":false,\"message\":\"\",\"code\":200,\"logId\":\"1812776386449481728\"}\n\ntest_case\\test_lao_zhang\\test_case.py:66: AssertionError"}, "attachments": [{"name": "log", "source": "2b314277-65fa-4391-bb7c-40a9029fca7e-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "67f89ec8-ec00-4e38-8d1d-3614b440f267-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'DELETE'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1812776376546729984'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1721034603353, "stop": 1721034603386, "uuid": "96a66465-e203-4d6d-bdcc-a9d8313f0f36", "historyId": "f0328bee4933587079c3de404b5dc1cd", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"uuid": "157cbea1-f8b8-4683-9582-128fa89d7915", "befores": [{"name": "module_name", "status": "passed", "start": 1721034583942, "stop": 1721034583942}], "start": 1721034583942, "stop": 1721034583977}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': '1'} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776319948791808"}
{"uuid": "937fc1b3-c9f0-4c53-b10e-6a59c1c135be", "befores": [{"name": "module_name", "status": "passed", "start": 1721034601224, "stop": 1721034601225}], "start": 1721034601224, "stop": 1721034601276}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "379b26a6-ea73-4f5f-939b-b40b602f73de", "befores": [{"name": "module_name", "status": "passed", "start": 1721034592904, "stop": 1721034592904}], "start": 1721034592904, "stop": 1721034592951}
\ No newline at end of file
{"uuid": "e06e2df4-0e93-4540-97f6-4d5eeb805469", "befores": [{"name": "module_name", "status": "passed", "start": 1721034597453, "stop": 1721034597453}], "start": 1721034597453, "stop": 1721034597489}
\ No newline at end of file
{"uuid": "ccbabdac-6a0f-4eec-8874-ff3fa5f0c4c0", "befores": [{"name": "case_method", "status": "passed", "start": 1721034585331, "stop": 1721034585331}], "start": 1721034585331, "stop": 1721034585369}
\ No newline at end of file
{"uuid": "2318c274-9160-41af-895a-0ef9f4b2061c", "befores": [{"name": "case_method", "status": "passed", "start": 1721034595075, "stop": 1721034595075}], "start": 1721034595075, "stop": 1721034595109}
\ No newline at end of file
{"uuid": "43c02116-6e87-4bba-bf21-591863790278", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034600671, "stop": 1721034600671}], "start": 1721034600671, "stop": 1721034600715}
\ No newline at end of file
{"uuid": "2524a398-f56e-49f6-a393-35cf93e58807", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034583942, "stop": 1721034583942}], "start": 1721034583942, "stop": 1721034583972}
\ No newline at end of file
{"uuid": "caf5a1b6-e660-4137-8f89-ae34f9217229", "befores": [{"name": "case_title", "status": "passed", "start": 1721034604419, "stop": 1721034604419}], "start": 1721034604419, "stop": 1721034604463}
\ No newline at end of file
post http://36.139.193.99:8088/api/org/v1/org/addOrg json {'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'} {'message': '添加组织成功!'} select|delete {'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123";', 'delete': 'delete from uc_org where CODE_="test_org";'} demId
{"state":true,"message":"添加组织成功!","value":"","code":200}
断言成功
{"uuid": "4b05e55c-d6ca-4050-ace0-24629499ced5", "befores": [{"name": "module_name", "status": "passed", "start": 1721034587490, "stop": 1721034587490}], "start": 1721034587489, "stop": 1721034587557}
\ No newline at end of file
{"uuid": "63d2cc1e-713c-419e-a098-0311004b554d", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034597418, "stop": 1721034597418}], "start": 1721034597418, "stop": 1721034597447}
\ No newline at end of file
{"uuid": "6e37ef6e-0a8a-4482-a6e0-42a920354257", "befores": [{"name": "api_name", "status": "passed", "start": 1721034603353, "stop": 1721034603353}], "start": 1721034603353, "stop": 1721034603399}
\ No newline at end of file
{"uuid": "76c08dda-723b-4a34-bcc0-6ed30b5c6b87", "befores": [{"name": "level", "status": "passed", "start": 1721034600671, "stop": 1721034600671}], "start": 1721034600671, "stop": 1721034600717}
\ No newline at end of file
{"uuid": "9be3193a-773b-499f-b0e8-9e603f2f6c38", "befores": [{"name": "case_method", "status": "passed", "start": 1721034597351, "stop": 1721034597351}], "start": 1721034597351, "stop": 1721034597413}
\ No newline at end of file
post http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams query|json {'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]} {'state': True, 'message': '保存组织参数成功!'} None None None
{"state":true,"message":"保存组织参数成功!","value":"","code":200}
断言成功
{"uuid": "5bca58cb-0599-42d7-8fcd-3fb705961b47", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034601181, "stop": 1721034601181}], "start": 1721034601181, "stop": 1721034601217}
\ No newline at end of file
{"uuid": "8255ea21-1c82-4018-a2b3-f7b140148bd8", "befores": [{"name": "case_url", "status": "passed", "start": 1721034588564, "stop": 1721034588564}], "start": 1721034588564, "stop": 1721034588612}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码为空", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63D60>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63D60>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "5996b11e-997a-466d-8294-1c1e4a0dcd21-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "1c2e4fae-2aad-4c67-af62-b802f22f7485-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码为空'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': ''}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034587438, "stop": 1721034587471, "uuid": "2121d119-ebb0-4491-aca1-407e43cd6363", "historyId": "f640363898931f48a2631389cf661c1a", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "3ab3cbd0-ac9f-4782-a791-8188784d4d02", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034598555, "stop": 1721034598555}], "start": 1721034598555, "stop": 1721034598603}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "6712bb46-d76e-498c-8549-9b72de6ad076", "befores": [{"name": "update_key", "status": "passed", "start": 1721034586385, "stop": 1721034586385}], "start": 1721034586385, "stop": 1721034586425}
\ No newline at end of file
{"uuid": "d165366e-4f58-4f75-9970-36b172d5d65a", "befores": [{"name": "module_name", "status": "passed", "start": 1721034590697, "stop": 1721034590697}], "start": 1721034590697, "stop": 1721034590742}
\ No newline at end of file
post http://36.139.193.99:8088/api/org/v1/org/deleteOrg form test_org {'state': True, 'message': '删除组织成功!'} None None None
{"state":true,"message":"删除组织成功!","value":"","code":200}
断言成功
{"uuid": "e93cc952-9570-4fa5-9cd5-c912e2600a4c", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034586384, "stop": 1721034586384}], "start": 1721034586384, "stop": 1721034586426}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "3f48a777-8b16-4eb1-b35f-5c22f835e626", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034601181, "stop": 1721034601181}], "start": 1721034601181, "stop": 1721034601218}
\ No newline at end of file
{"uuid": "8022cb08-af04-4291-9176-41f3ba05265d", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034589631, "stop": 1721034589631}], "start": 1721034589631, "stop": 1721034589674}
\ No newline at end of file
{"uuid": "c827d063-2eb0-4d67-8ba8-15584d52d032", "befores": [{"name": "case_method", "status": "passed", "start": 1721034601041, "stop": 1721034601041}], "start": 1721034601041, "stop": 1721034601072}
\ No newline at end of file
{"uuid": "a1bb48ca-45ef-450b-b5b8-062bf5de5646", "befores": [{"name": "level", "status": "passed", "start": 1721034597274, "stop": 1721034597274}], "start": 1721034597274, "stop": 1721034597313}
\ No newline at end of file
{"uuid": "ed26c413-9d30-4501-ad53-9b729bbbbff7", "befores": [{"name": "case_method", "status": "passed", "start": 1721034592904, "stop": 1721034592904}], "start": 1721034592904, "stop": 1721034592948}
\ No newline at end of file
{"uuid": "31e096fa-6e0a-44bd-8731-e1d4254376be", "befores": [{"name": "api_name", "status": "passed", "start": 1721034589630, "stop": 1721034589630}], "start": 1721034589630, "stop": 1721034589677}
\ No newline at end of file
{"uuid": "d3bf2260-8c4e-4046-b764-a9ae0642ff3e", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034592904, "stop": 1721034592904}], "start": 1721034592904, "stop": 1721034592948}
\ No newline at end of file
{"uuid": "9beb2bbe-485b-4064-bf04-b0236d0f03ae", "befores": [{"name": "update_key", "status": "passed", "start": 1721034584050, "stop": 1721034584050}], "start": 1721034584050, "stop": 1721034584080}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/org/addOrg HTTP/11" 200 None
\ No newline at end of file
{"uuid": "7f7f8eec-96f1-4b0f-8e9e-8d9981932f51", "befores": [{"name": "case_method", "status": "passed", "start": 1721034597454, "stop": 1721034597454}], "start": 1721034597454, "stop": 1721034597488}
\ No newline at end of file
{"uuid": "116091fc-1d2a-4936-b470-fcbb84fbb987", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034601225, "stop": 1721034601225}], "start": 1721034601225, "stop": 1721034601273}
\ No newline at end of file
{"uuid": "a12af9bc-96ef-4a3c-ad41-21a896f4ca5c", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034597495, "stop": 1721034597495}], "start": 1721034597495, "stop": 1721034597538}
\ No newline at end of file
{"uuid": "a24a48c0-174e-4060-af77-5ad949c220db", "befores": [{"name": "update_key", "status": "passed", "start": 1721034584090, "stop": 1721034584090}], "start": 1721034584090, "stop": 1721034584118}
\ No newline at end of file
{"uuid": "76a24ae4-16af-4423-8ba4-14cf25c936ae", "befores": [{"name": "case_url", "status": "passed", "start": 1721034599618, "stop": 1721034599618}], "start": 1721034599618, "stop": 1721034599659}
\ No newline at end of file
{"uuid": "112615bf-6e5c-4e2b-ac1f-f8ce6bc30fab", "befores": [{"name": "module_name", "status": "passed", "start": 1721034585330, "stop": 1721034585330}], "start": 1721034585330, "stop": 1721034585371}
\ No newline at end of file
{"uuid": "de938f83-32a9-4182-a394-51dad8e99eab", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034584010, "stop": 1721034584010}], "start": 1721034584010, "stop": 1721034584042}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "ce29b1e8-45c9-400c-ae04-7dcf64415b6c-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "0128d11f-35e9-43bb-a748-95af45b18bde-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "case_data", "value": "{'code': '需要更新'}"}, {"name": "expect_data", "value": "{'isDelete': '0'}"}, {"name": "title", "value": "'正向用例'"}], "start": 1721034600834, "stop": 1721034600859, "uuid": "69dd3641-b2ec-4603-923a-54ee0a1f5ec1", "historyId": "80639afd76541f1077685be59fcb80a1", "testCaseId": "2d43949fe9fc94a14d91b8791ac4ed5c", "fullName": "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_get_dem_msg", "labels": [{"name": "story", "value": "根据维度编码获取维度信息"}, {"name": "epic", "value": "bpm-场景测试"}, {"name": "feature", "value": "维度管理"}, {"name": "tag", "value": "dependency(depends=['TestBPM::test_add_dem'])"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_pytest_decorator"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_pytest_decorator"}]}
\ No newline at end of file
{"uuid": "6b02203b-b98f-48ac-bb0a-dbb049d9710d", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034588564, "stop": 1721034588564}], "start": 1721034588564, "stop": 1721034588612}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79190>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '刷新成功' == None\nE + where None = <built-in method get of dict object at 0x00000203D7E81280>('message')\nE + where <built-in method get of dict object at 0x00000203D7E81280> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...csImlhdCI6MTcyMTAzNDUzN30.zkgRxYc1ZSTXBzUlR1fDosGafOqytm5L0ZR7nZa7QXfuBl-xiPMLsJbCd_AhLh7AgQzbDDwlUjxL0XijsDh7tA', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...csImlhdCI6MTcyMTAzNDUzN30.zkgRxYc1ZSTXBzUlR1fDosGafOqytm5L0ZR7nZa7QXfuBl-xiPMLsJbCd_AhLh7AgQzbDDwlUjxL0XijsDh7tA', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79190>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "7163cc3f-c055-42c2-92b0-37a221e1fd1f-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "09a99ce4-5f6c-473a-922c-abf15cd41421-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'刷新token'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'GET'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/refresh'"}, {"name": "case_mime", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新成功'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034596130, "stop": 1721034596212, "uuid": "4c3b86f1-9ccd-4989-b5e2-197431c87d11", "historyId": "0726b7ece66163239f4822447c1bd114", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "a9b02de4-ed3f-4343-99d9-52bcfe52ea1c", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034601181, "stop": 1721034601181}], "start": 1721034601181, "stop": 1721034601218}
\ No newline at end of file
{"uuid": "d4c55ed6-58c0-4160-af4b-83671334b630", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034591834, "stop": 1721034591834}], "start": 1721034591834, "stop": 1721034591878}
\ No newline at end of file
{"uuid": "d81836ac-9318-40b0-a4b6-2eab47e0bd6e", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034601137, "stop": 1721034601138}], "start": 1721034601137, "stop": 1721034601176}
\ No newline at end of file
{"uuid": "0f6581ef-9c7f-4b36-8bb9-7927385960b9", "befores": [{"name": "update_key", "status": "passed", "start": 1721034598555, "stop": 1721034598555}], "start": 1721034598555, "stop": 1721034598602}
\ No newline at end of file
{"uuid": "b47caf25-605b-40c0-975e-eb2a0b44f141", "befores": [{"name": "case_method", "status": "passed", "start": 1721034590747, "stop": 1721034590747}], "start": 1721034590747, "stop": 1721034590804}
\ No newline at end of file
{"uuid": "a94698a7-4187-4545-ad3e-a6c205bfb53a", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034603353, "stop": 1721034603353}], "start": 1721034603353, "stop": 1721034603396}
\ No newline at end of file
{"uuid": "c7b20645-d403-41dd-927c-a342011de611", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034587490, "stop": 1721034587490}], "start": 1721034587490, "stop": 1721034587542}
\ No newline at end of file
{"uuid": "7c7f5918-0899-4a10-90de-86186264208a", "befores": [{"name": "update_key", "status": "passed", "start": 1721034596130, "stop": 1721034596130}], "start": 1721034596130, "stop": 1721034596221}
\ No newline at end of file
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '需要更新'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":true,"message":"删除维度成功!","value":"","code":200}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '需要更新'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":true,"message":"删除维度成功!","value":"","code":200}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '1812776376546729984'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":false,"message":"","code":200,"logId":"1812776382011908096"}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '1812776376546729984'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":false,"message":"","code":200,"logId":"1812776386449481728"}
{"uuid": "8dd12d29-55ee-4245-afc3-1c2a6c64732f", "befores": [{"name": "case_method", "status": "passed", "start": 1721034601137, "stop": 1721034601137}], "start": 1721034601137, "stop": 1721034601177}
\ No newline at end of file
{"uuid": "61e6a7a8-2d9f-4e20-b7e5-c98e51fc96e8", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034588564, "stop": 1721034588564}], "start": 1721034588564, "stop": 1721034588611}
\ No newline at end of file
{"uuid": "ec43624e-a444-410e-b1b5-324293ba07cb", "befores": [{"name": "case_url", "status": "passed", "start": 1721034597454, "stop": 1721034597454}], "start": 1721034597454, "stop": 1721034597487}
\ No newline at end of file
{"uuid": "4db47ba3-2cb5-47ed-b173-1bd8cc3f3914", "befores": [{"name": "module_name", "status": "passed", "start": 1721034596129, "stop": 1721034596129}], "start": 1721034596129, "stop": 1721034596225}
\ No newline at end of file
{"uuid": "0cb7784e-9a72-4b16-9f40-16ea674777a0", "befores": [{"name": "case_title", "status": "passed", "start": 1721034590697, "stop": 1721034590697}], "start": 1721034590697, "stop": 1721034590740}
\ No newline at end of file
{"uuid": "bf015fe6-7edb-48b5-8c6f-6b5aa23e91c9", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034583942, "stop": 1721034583942}], "start": 1721034583942, "stop": 1721034583972}
\ No newline at end of file
{"uuid": "c7a24ebf-1b21-4e64-b3e6-3bc670290f0a", "befores": [{"name": "case_url", "status": "passed", "start": 1721034587490, "stop": 1721034587490}], "start": 1721034587490, "stop": 1721034587543}
\ No newline at end of file
{"uuid": "6335bf8e-ef20-487f-8ef7-96b250878d37", "befores": [{"name": "case_method", "status": "passed", "start": 1721034597274, "stop": 1721034597274}], "start": 1721034597274, "stop": 1721034597311}
\ No newline at end of file
{"uuid": "9e0629c7-a0d3-4a07-a053-b9076d4cda13", "befores": [{"name": "api_name", "status": "passed", "start": 1721034593969, "stop": 1721034593969}], "start": 1721034593969, "stop": 1721034594022}
\ No newline at end of file
{"uuid": "b003b44b-be0b-4afa-804e-e2062bd8bcba", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034585331, "stop": 1721034585331}], "start": 1721034585331, "stop": 1721034585368}
\ No newline at end of file
{"uuid": "df3546ea-cc01-4d80-9a4f-210b227978a3", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034602304, "stop": 1721034602304}], "start": 1721034602304, "stop": 1721034602337}
\ No newline at end of file
{"uuid": "59622aff-1e10-477d-8b18-6335a4871dad", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034592904, "stop": 1721034592904}], "start": 1721034592904, "stop": 1721034592946}
\ No newline at end of file
{"uuid": "3dacd884-0c98-4b47-ab9f-bf88322f5515", "befores": [{"name": "level", "status": "passed", "start": 1721034600988, "stop": 1721034600990}], "start": 1721034600988, "stop": 1721034601036}
\ No newline at end of file
{"uuid": "ff399d7e-7079-4803-9b3a-7d451290975d", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034600865, "stop": 1721034600865}], "start": 1721034600865, "stop": 1721034600887}
\ No newline at end of file
{"uuid": "9d7d2e80-069a-4b01-abdf-814013a8c0f8", "befores": [{"name": "update_key", "status": "passed", "start": 1721034597418, "stop": 1721034597418}], "start": 1721034597418, "stop": 1721034597445}
\ No newline at end of file
{"uuid": "375440e5-3e4a-4e48-8488-1f1dee433c8a", "befores": [{"name": "api_name", "status": "passed", "start": 1721034604419, "stop": 1721034604419}], "start": 1721034604419, "stop": 1721034604464}
\ No newline at end of file
{"uuid": "1cc28e78-ccb0-4c9e-bd47-84214421be2b", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034584090, "stop": 1721034584090}], "start": 1721034584090, "stop": 1721034584120}
\ No newline at end of file
{"uuid": "a45ad40f-d43b-4a1b-8375-f9dba2077559", "befores": [{"name": "api_name", "status": "passed", "start": 1721034584050, "stop": 1721034584050}], "start": 1721034584050, "stop": 1721034584084}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码为空", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63D60>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63D60>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "71d1ccd6-4916-430e-b83a-0503907d7820-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "96e72e62-f316-43a8-acbb-bd94ebe63d41-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码为空'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': ''}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034585331, "stop": 1721034585359, "uuid": "c120320f-783e-4ad2-9247-9713edecf4e1", "historyId": "f640363898931f48a2631389cf661c1a", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "06149751-1ba0-40df-a59b-73207cbb35fa", "befores": [{"name": "case_url", "status": "passed", "start": 1721034601225, "stop": 1721034601225}], "start": 1721034601225, "stop": 1721034601274}
\ No newline at end of file
{"uuid": "a93fcd54-1948-4637-b661-32c04e50a56e", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034595075, "stop": 1721034595075}], "start": 1721034595075, "stop": 1721034595108}
\ No newline at end of file
{"uuid": "d88366d4-dc36-49ce-9983-513364ee0616", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034597317, "stop": 1721034597317}], "start": 1721034597317, "stop": 1721034597344}
\ No newline at end of file
{"uuid": "d3aec233-6595-45cc-847b-0f7060b57b7c", "befores": [{"name": "module_name", "status": "passed", "start": 1721034598554, "stop": 1721034598554}], "start": 1721034598554, "stop": 1721034598607}
\ No newline at end of file
{"uuid": "4505cf95-9c5b-4885-8ab6-11df5768dda6", "befores": [{"name": "level", "status": "passed", "start": 1721034583942, "stop": 1721034583942}], "start": 1721034583942, "stop": 1721034583976}
\ No newline at end of file
{"uuid": "450b43e7-5500-42ac-99ac-1fb120dc642f", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034591834, "stop": 1721034591834}], "start": 1721034591834, "stop": 1721034591879}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /refresh HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /refresh HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /refresh HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "2ebebf6a-eab3-408e-9865-9bc1daa30484", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034597351, "stop": 1721034597351}], "start": 1721034597351, "stop": 1721034597412}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "51c817b1-76dc-4f68-8729-faa0725f7643", "befores": [{"name": "case_url", "status": "passed", "start": 1721034601137, "stop": 1721034601137}], "start": 1721034601137, "stop": 1721034601176}
\ No newline at end of file
{"uuid": "e1109e22-232c-4f9e-a48a-8a8b55c8a33e", "befores": [{"name": "module_name", "status": "passed", "start": 1721034593969, "stop": 1721034593969}], "start": 1721034593969, "stop": 1721034594022}
\ No newline at end of file
{"uuid": "a10d1990-79d9-4e38-96b7-d28e4a6fc9d8", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034602304, "stop": 1721034602304}], "start": 1721034602304, "stop": 1721034602337}
\ No newline at end of file
{"uuid": "400a5a95-541b-4466-b452-1b83a4c2f27e", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034601077, "stop": 1721034601077}], "start": 1721034601077, "stop": 1721034601130}
\ No newline at end of file
{"uuid": "f946733c-3dba-47cd-8953-58e832727165", "befores": [{"name": "case_method", "status": "passed", "start": 1721034602304, "stop": 1721034602304}], "start": 1721034602304, "stop": 1721034602339}
\ No newline at end of file
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '需要更新'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":true,"message":"删除维度成功!","value":"","code":200}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '1812776376546729984'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":false,"message":"","code":200,"logId":"1812776382011908096"}
{"uuid": "71dd8db0-8036-4300-b424-1f8952ebd6e0", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034587490, "stop": 1721034587490}], "start": 1721034587490, "stop": 1721034587541}
\ No newline at end of file
{"uuid": "44484cb1-20f4-4df6-a7c5-aeb65dc724ce", "befores": [{"name": "case_method", "status": "passed", "start": 1721034583942, "stop": 1721034583942}], "start": 1721034583942, "stop": 1721034583975}
\ No newline at end of file
{"uuid": "fc5e3033-9350-4a39-ad06-25cc7c0e6649", "befores": [{"name": "case_url", "status": "passed", "start": 1721034598555, "stop": 1721034598555}], "start": 1721034598555, "stop": 1721034598605}
\ No newline at end of file
{"uuid": "807042dd-dc8c-4701-b0bb-a3a1799bbad9", "befores": [{"name": "module_name", "status": "passed", "start": 1721034584089, "stop": 1721034584089}], "start": 1721034584089, "stop": 1721034584122}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/org/deleteOrg HTTP/11" 200 None
\ No newline at end of file
{"uuid": "284468c8-9ece-4dba-9490-9e389c580630", "befores": [{"name": "case_url", "status": "passed", "start": 1721034595075, "stop": 1721034595075}], "start": 1721034595075, "stop": 1721034595109}
\ No newline at end of file
{"uuid": "ce869ee2-7899-4117-8eb8-039736f4f121", "befores": [{"name": "case_data", "status": "passed", "start": 1721034584050, "stop": 1721034584050}], "start": 1721034584050, "stop": 1721034584082}
\ No newline at end of file
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '需要更新'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":true,"message":"删除维度成功!","value":"","code":200}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '1812776360943919104'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":false,"message":"","code":200,"logId":"1812776366333599744"}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '1812776360943919104'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":false,"message":"","code":200,"logId":"1812776370771173376"}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '1812776360943919104'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":false,"message":"","code":200,"logId":"1812776375204552704"}
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
\ No newline at end of file
{"uuid": "e06630fe-d89b-4bab-a100-3f2d19057bff", "befores": [{"name": "case_title", "status": "passed", "start": 1721034584009, "stop": 1721034584009}], "start": 1721034584009, "stop": 1721034584043}
\ No newline at end of file
{"uuid": "6de1c564-3364-43ae-b087-65526cec1e51", "befores": [{"name": "level", "status": "passed", "start": 1721034592904, "stop": 1721034592904}], "start": 1721034592904, "stop": 1721034592950}
\ No newline at end of file
{"name": "反向用例2", "status": "passed", "attachments": [{"name": "log", "source": "24275316-2632-4484-bf85-e0e6bf0c68bc-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "b73bcf77-a728-4509-a37b-f38ed600900e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "case_data", "value": "{'': 'abctest'}"}, {"name": "expect_data", "value": "{'message': \"Required String parameter 'code' is not present\"}"}, {"name": "title", "value": "'反向用例2'"}], "start": 1721034600893, "stop": 1721034600911, "uuid": "6e1209cc-17a3-4dd0-9d3f-139f0ea6e492", "historyId": "b4daa31cff4b552b412448af5e4ed813", "testCaseId": "2d43949fe9fc94a14d91b8791ac4ed5c", "fullName": "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_get_dem_msg", "labels": [{"name": "story", "value": "根据维度编码获取维度信息"}, {"name": "epic", "value": "bpm-场景测试"}, {"name": "feature", "value": "维度管理"}, {"name": "tag", "value": "dependency(depends=['TestBPM::test_add_dem'])"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_pytest_decorator"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_pytest_decorator"}]}
\ No newline at end of file
{"uuid": "11c6fc80-d74d-4343-972d-d2564c11402b", "befores": [{"name": "api_name", "status": "passed", "start": 1721034594025, "stop": 1721034594025}], "start": 1721034594025, "stop": 1721034594066}
\ No newline at end of file
{"uuid": "6a2d22ea-2f23-4443-beff-0bc5c9e4a5c9", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034597495, "stop": 1721034597495}], "start": 1721034597495, "stop": 1721034597536}
\ No newline at end of file
{"uuid": "8c07e8b3-0064-45af-961b-d5782c5c896b", "befores": [{"name": "case_title", "status": "passed", "start": 1721034598554, "stop": 1721034598554}], "start": 1721034598554, "stop": 1721034598606}
\ No newline at end of file
{"uuid": "aabbc96f-923c-4bdc-b664-25e1e14f6cce", "befores": [{"name": "case_data", "status": "passed", "start": 1721034598555, "stop": 1721034598555}], "start": 1721034598555, "stop": 1721034598605}
\ No newline at end of file
{"uuid": "7554886f-2074-4cfe-86f6-4d8a552756c2", "befores": [{"name": "case_method", "status": "passed", "start": 1721034600990, "stop": 1721034600990}], "start": 1721034600990, "stop": 1721034601034}
\ No newline at end of file
{"uuid": "2e98e375-def3-4748-bed2-b40f2b22b936", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034597351, "stop": 1721034597351}], "start": 1721034597351, "stop": 1721034597413}
\ No newline at end of file
{"uuid": "28d10b01-874b-41f7-bbd8-96c6fa90428b", "befores": [{"name": "update_key", "status": "passed", "start": 1721034590748, "stop": 1721034590748}], "start": 1721034590748, "stop": 1721034590800}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":false,\"message\":\"\",\"code\":200,\"logId\":\"1812776390916415488\"}", "trace": "self = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x00000203D7D7C0D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7E8DA00>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7EEB9D0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776376546729984'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_lao_zhang\\test_case.py:62: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x00000203D7D7C0D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7E8DA00>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7EEB9D0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776376546729984'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n # log.error(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\n # raise AssertionError(\"断言失败,描述失败的原因\")\n> raise AssertionError(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\nE AssertionError: 断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":false,\"message\":\"\",\"code\":200,\"logId\":\"1812776390916415488\"}\n\ntest_case\\test_lao_zhang\\test_case.py:66: AssertionError"}, "attachments": [{"name": "log", "source": "34a2e03b-b4f1-428b-ac4d-7462a541b351-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "b0d82455-2e50-4a75-ab60-aea02762a1c4-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'DELETE'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1812776376546729984'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1721034604419, "stop": 1721034604451, "uuid": "2f7d34d5-ea59-4b2c-ae3e-32016110fa98", "historyId": "f0328bee4933587079c3de404b5dc1cd", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"uuid": "8c4401bf-14ce-42d9-832c-cd7c85889cba", "befores": [{"name": "level", "status": "passed", "start": 1721034590697, "stop": 1721034590697}], "start": 1721034590697, "stop": 1721034590741}
\ No newline at end of file
{"uuid": "6d9b9928-0407-4fa3-9d58-e34b9d8f6752", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034585331, "stop": 1721034585331}], "start": 1721034585331, "stop": 1721034585368}
\ No newline at end of file
{"uuid": "99e68411-378e-44fe-aef7-9a6f96e83eff", "befores": [{"name": "case_method", "status": "passed", "start": 1721034597317, "stop": 1721034597317}], "start": 1721034597317, "stop": 1721034597346}
\ No newline at end of file
{"uuid": "83fc7a64-0dcd-4123-a3d4-f9e4829fec3a", "befores": [{"name": "case_url", "status": "passed", "start": 1721034585331, "stop": 1721034585331}], "start": 1721034585331, "stop": 1721034585369}
\ No newline at end of file
{"uuid": "9ee7cb24-511f-4462-bd0c-1c27df24eb29", "befores": [{"name": "level", "status": "passed", "start": 1721034597494, "stop": 1721034597495}], "start": 1721034597494, "stop": 1721034597540}
\ No newline at end of file
{"uuid": "a65d0f27-807d-4e2d-bd22-3e0aac6b051c", "befores": [{"name": "case_url", "status": "passed", "start": 1721034589631, "stop": 1721034589631}], "start": 1721034589631, "stop": 1721034589675}
\ No newline at end of file
{"uuid": "ca85e36d-8ed5-4f4b-ab88-86d1377ab224", "befores": [{"name": "update_key", "status": "passed", "start": 1721034592904, "stop": 1721034592904}], "start": 1721034592904, "stop": 1721034592945}
\ No newline at end of file
{"uuid": "cefcc86d-c010-42f5-9bc6-8cfdcc24b48b", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034601077, "stop": 1721034601077}], "start": 1721034601077, "stop": 1721034601130}
\ No newline at end of file
{"name": "bpm-场景测试-登录-正向", "status": "passed", "attachments": [{"name": "log", "source": "ccb86f47-dc55-4775-806c-748299d85a2b-attachment.txt", "type": "text/plain"}], "start": 1721034600723, "stop": 1721034600770, "uuid": "f2f6862c-5f82-49e9-93c7-f193980567c5", "historyId": "4569b0471702313459c9b42c94979bb4", "testCaseId": "4569b0471702313459c9b42c94979bb4", "fullName": "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_login", "labels": [{"name": "epic", "value": "bpm-场景测试"}, {"name": "story", "value": "登录系统"}, {"name": "feature", "value": "认证接口"}, {"name": "tag", "value": "dependency"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_pytest_decorator"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_pytest_decorator"}]}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /refresh HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "cd252c44-ba84-4c45-8158-923fdb22b9f1", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034595075, "stop": 1721034595075}], "start": 1721034595075, "stop": 1721034595108}
\ No newline at end of file
{"uuid": "88fa3e87-fca8-4192-9757-9ad3a9d97124", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034591834, "stop": 1721034591834}], "start": 1721034591834, "stop": 1721034591878}
\ No newline at end of file
{"uuid": "36b538c2-32c6-4810-b8f1-1e5c6142113f", "befores": [{"name": "level", "status": "passed", "start": 1721034584050, "stop": 1721034584050}], "start": 1721034584050, "stop": 1721034584083}
\ No newline at end of file
{"uuid": "49e73062-2002-49fe-8c15-1c2216c9e247", "befores": [{"name": "case_title", "status": "passed", "start": 1721034590747, "stop": 1721034590747}], "start": 1721034590747, "stop": 1721034590804}
\ No newline at end of file
{"uuid": "72778cb5-b20b-4a04-800b-002fa4baa549", "befores": [{"name": "api_name", "status": "passed", "start": 1721034587436, "stop": 1721034587436}], "start": 1721034587436, "stop": 1721034587485}
\ No newline at end of file
{"uuid": "bb034aa9-8c35-422c-9824-de16b9d12a89", "befores": [{"name": "case_data", "status": "passed", "start": 1721034584090, "stop": 1721034584090}], "start": 1721034584090, "stop": 1721034584120}
\ No newline at end of file
{"uuid": "f8f61cc6-7616-456d-9c2f-4b7439b698c3", "befores": [{"name": "level", "status": "passed", "start": 1721034603353, "stop": 1721034603353}], "start": 1721034603353, "stop": 1721034603398}
\ No newline at end of file
{"uuid": "5c0c7c01-dd14-448d-9bdf-7f7e8a4ac880", "befores": [{"name": "case_title", "status": "passed", "start": 1721034584089, "stop": 1721034584089}], "start": 1721034584089, "stop": 1721034584121}
\ No newline at end of file
{"uuid": "d2ffece9-a152-4e3c-8edb-cf70a790165f", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034584090, "stop": 1721034584090}], "start": 1721034584090, "stop": 1721034584120}
\ No newline at end of file
{"uuid": "2d3abd79-e3c0-47e3-8278-ad72870e5a58", "befores": [{"name": "case_method", "status": "passed", "start": 1721034597418, "stop": 1721034597418}], "start": 1721034597418, "stop": 1721034597449}
\ No newline at end of file
{"uuid": "feb0852a-4158-474a-aa1b-8fa9d1294073", "befores": [{"name": "module_name", "status": "passed", "start": 1721034594025, "stop": 1721034594025}], "start": 1721034594025, "stop": 1721034594066}
\ No newline at end of file
{"uuid": "37245962-881f-4c11-a2d4-d23017595439", "befores": [{"name": "update_key", "status": "passed", "start": 1721034601041, "stop": 1721034601041}], "start": 1721034601041, "stop": 1721034601069}
\ No newline at end of file
{"uuid": "f8a2a1cd-6c17-47bb-a666-c2e99b6c7d14", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034585331, "stop": 1721034585331}], "start": 1721034585331, "stop": 1721034585369}
\ No newline at end of file
{"uuid": "203c28f8-ca97-440a-b420-3b14a3a49fbc", "befores": [{"name": "case_url", "status": "passed", "start": 1721034600990, "stop": 1721034600990}], "start": 1721034600990, "stop": 1721034601034}
\ No newline at end of file
{"uuid": "ca6e7857-b560-4647-a6d3-fceb4c197047", "befores": [{"name": "case_data", "status": "passed", "start": 1721034586385, "stop": 1721034586385}], "start": 1721034586385, "stop": 1721034586426}
\ No newline at end of file
{"uuid": "f304d5cd-f896-4884-adbd-a80b96c25e02", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034584050, "stop": 1721034584050}], "start": 1721034584050, "stop": 1721034584081}
\ No newline at end of file
{"uuid": "4c669b5b-033a-42b0-a4a8-49201925d987", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034584127, "stop": 1721034584127}], "start": 1721034584125, "stop": 1721034584318}
\ No newline at end of file
{"uuid": "2a90f665-44cf-456f-a4fd-7ee6097ad856", "befores": [{"name": "api_name", "status": "passed", "start": 1721034601225, "stop": 1721034601225}], "start": 1721034601225, "stop": 1721034601276}
\ No newline at end of file
{"uuid": "d3a6516b-e689-44c2-bd51-3a3fa28cb31d", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034600990, "stop": 1721034600990}], "start": 1721034600990, "stop": 1721034601033}
\ No newline at end of file
{"uuid": "ffc84855-00cb-4348-b9cc-e3f8a744b9c2", "befores": [{"name": "case_method", "status": "passed", "start": 1721034600671, "stop": 1721034600671}], "start": 1721034600671, "stop": 1721034600716}
\ No newline at end of file
{"uuid": "ccb40ee2-1e62-46c2-97f1-121952ff0774", "befores": [{"name": "case_method", "status": "passed", "start": 1721034589631, "stop": 1721034589631}], "start": 1721034589631, "stop": 1721034589676}
\ No newline at end of file
{"uuid": "5fbab0ee-9425-4a9a-b050-5db52a45a38c", "befores": [{"name": "case_url", "status": "passed", "start": 1721034594025, "stop": 1721034594025}], "start": 1721034594025, "stop": 1721034594064}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码为空", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63D60>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63D60>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "1c4986bb-0226-4c15-a2ee-032581d4c410-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "9d093b5f-f707-4c5a-8e27-fcb5962559ee-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码为空'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': ''}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034584127, "stop": 1721034584153, "uuid": "03af75e1-fd96-40dd-b9fd-b2742831f454", "historyId": "f640363898931f48a2631389cf661c1a", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过短", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D790D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert False == None\nE + where None = <built-in method get of dict object at 0x00000203D7DEBC00>('state')\nE + where <built-in method get of dict object at 0x00000203D7DEBC00> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...UsImlhdCI6MTcyMTAzNDUzNX0.EWQ7C4SuS63E2IIJl_gfCgk16XVg_Z_m8o3mRp70XM1jNDBIYzYwy5okNX-9j5IQDSurUD9TsdwaQBvnCJhxSQ', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...UsImlhdCI6MTcyMTAzNDUzNX0.EWQ7C4SuS63E2IIJl_gfCgk16XVg_Z_m8o3mRp70XM1jNDBIYzYwy5okNX-9j5IQDSurUD9TsdwaQBvnCJhxSQ', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D790D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "4e8119c8-3164-41f3-a95a-c55ca852c895-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "de81a7df-31d2-451a-a343-f545c4b690df-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码过短'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034593970, "stop": 1721034594009, "uuid": "25a13bdd-a691-426d-926b-3f6689bba9a2", "historyId": "423b926d9c9c8e8a56af3847b1819589", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "6111fd48-d4a2-4162-a32d-371016eebd83", "befores": [{"name": "update_key", "status": "passed", "start": 1721034587437, "stop": 1721034587437}], "start": 1721034587437, "stop": 1721034587481}
\ No newline at end of file
{"uuid": "1299db30-a8cc-4215-8604-026f4ddaae26", "befores": [{"name": "case_data", "status": "passed", "start": 1721034584127, "stop": 1721034584127}], "start": 1721034584127, "stop": 1721034584317}
\ No newline at end of file
{"uuid": "906713e2-d700-427c-9c58-c5346c46a7af", "befores": [{"name": "case_url", "status": "passed", "start": 1721034597274, "stop": 1721034597274}], "start": 1721034597274, "stop": 1721034597311}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":false,\"message\":\"\",\"code\":200,\"logId\":\"1812776382011908096\"}", "trace": "self = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x00000203D7D7C0D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7E8DA00>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7EEB9D0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776376546729984'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_lao_zhang\\test_case.py:62: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x00000203D7D7C0D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7E8DA00>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7EEB9D0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776376546729984'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n # log.error(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\n # raise AssertionError(\"断言失败,描述失败的原因\")\n> raise AssertionError(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\nE AssertionError: 断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":false,\"message\":\"\",\"code\":200,\"logId\":\"1812776382011908096\"}\n\ntest_case\\test_lao_zhang\\test_case.py:66: AssertionError"}, "attachments": [{"name": "log", "source": "2f03a15c-c464-4b27-a9ca-84d126b8ce5f-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "7574fc44-8718-49dc-933d-1a99ada41894-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'DELETE'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1812776376546729984'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1721034602305, "stop": 1721034602326, "uuid": "efa56a97-4ba0-424c-b866-abe445d2054c", "historyId": "f0328bee4933587079c3de404b5dc1cd", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"uuid": "f9eca4c3-5e8f-439e-8f9d-e6ec7703aeab", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034599619, "stop": 1721034599619}], "start": 1721034599619, "stop": 1721034599658}
\ No newline at end of file
{"uuid": "30acc4cc-76f0-4e26-85fc-984058aaff32", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034594025, "stop": 1721034594025}], "start": 1721034594025, "stop": 1721034594064}
\ No newline at end of file
{"uuid": "6b189653-1ee7-4bf5-813a-db892503f5cf", "befores": [{"name": "case_data", "status": "passed", "start": 1721034603353, "stop": 1721034603353}], "start": 1721034603353, "stop": 1721034603396}
\ No newline at end of file
{"uuid": "7ba3d108-c3d9-44a3-96cb-bb9e77ca0601", "befores": [{"name": "level", "status": "passed", "start": 1721034585330, "stop": 1721034585331}], "start": 1721034585330, "stop": 1721034585370}
\ No newline at end of file
{"uuid": "41e4130d-fcd9-491e-aa88-0feec38670ab", "befores": [{"name": "module_name", "status": "passed", "start": 1721034601181, "stop": 1721034601181}], "start": 1721034601181, "stop": 1721034601221}
\ No newline at end of file
{"uuid": "d150a678-fd6a-4f36-a1c6-755bd16a837a", "befores": [{"name": "case_data", "status": "passed", "start": 1721034589631, "stop": 1721034589631}], "start": 1721034589631, "stop": 1721034589675}
\ No newline at end of file
{"uuid": "98b7dd9c-5e6e-416d-81d2-a16a159962f8", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034598555, "stop": 1721034598555}], "start": 1721034598555, "stop": 1721034598605}
\ No newline at end of file
{"uuid": "f1b811d3-8a4e-47c7-b4d3-77317dd5c63b", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034599619, "stop": 1721034599619}], "start": 1721034599618, "stop": 1721034599659}
\ No newline at end of file
{"uuid": "d93e2e5d-870d-4e79-93a0-a7bbc1624ad3", "befores": [{"name": "case_data", "status": "passed", "start": 1721034601225, "stop": 1721034601225}], "start": 1721034601225, "stop": 1721034601274}
\ No newline at end of file
{"uuid": "ef9bec1a-7b18-4f8a-8e80-fe352714729d", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034584010, "stop": 1721034584010}], "start": 1721034584010, "stop": 1721034584040}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79610>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776360943919104'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79610>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776360943919104'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "3841441a-5563-467f-ba12-aaf9d5c1c50f-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "c58087a7-9a68-4a5c-8636-d0c2ed3ff1a1-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'DELETE'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1812776360943919104'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1721034599619, "stop": 1721034599649, "uuid": "be4ed7ca-abac-4fab-b918-1e3927022be7", "historyId": "b1880520415454889e175a38974c597e", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': ''} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776305788821504"}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': ''} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776310842957824"}
PUT http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem query {'code': 'test_dem_xyz_123'} {'message': '设置默认维度成功!'} None None None
{"state":true,"message":"设置默认维度成功!","value":"","code":200}
断言成功
post http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams query|json {'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]} {'state': True, 'message': '保存组织参数成功!'} None None None
{"state":true,"message":"保存组织参数成功!","value":"","code":200}
断言成功
{"uuid": "ac72ae73-1b92-4891-8ed8-80d9d0849029", "befores": [{"name": "level", "status": "passed", "start": 1721034583981, "stop": 1721034583981}], "start": 1721034583981, "stop": 1721034584006}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'a', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1812776305310670848"}
断言成功
{"uuid": "d7a11b20-5fe7-4c47-a6a4-cfd22f00cb97", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034604419, "stop": 1721034604419}], "start": 1721034604419, "stop": 1721034604460}
\ No newline at end of file
{"uuid": "ea5f8f3a-57c0-4f71-9465-113ebfe81721", "befores": [{"name": "level", "status": "passed", "start": 1721034584125, "stop": 1721034584125}], "start": 1721034584125, "stop": 1721034584319}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":true,\"message\":\"删除维度成功!\",\"value\":\"\",\"code\":200}", "trace": "self = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x00000203D7D7C0D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7E8DA00>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7EEB9D0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776376546729984'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_lao_zhang\\test_case.py:62: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x00000203D7D7C0D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7E8DA00>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7EEB9D0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776376546729984'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n # log.error(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\n # raise AssertionError(\"断言失败,描述失败的原因\")\n> raise AssertionError(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\nE AssertionError: 断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":true,\"message\":\"删除维度成功!\",\"value\":\"\",\"code\":200}\n\ntest_case\\test_lao_zhang\\test_case.py:66: AssertionError"}, "attachments": [{"name": "log", "source": "bc77df80-b032-412c-adf2-3f929c1598f3-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "6706b992-195e-4176-b375-34e630870cfe-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'DELETE'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '需要更新'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1721034601226, "stop": 1721034601261, "uuid": "4538665b-b0ff-4a86-8398-4c997083e688", "historyId": "f0328bee4933587079c3de404b5dc1cd", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"uuid": "44a34f8b-9f8c-404c-8d49-1b81c94e9b20", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034591834, "stop": 1721034591834}], "start": 1721034591834, "stop": 1721034591879}
\ No newline at end of file
{"uuid": "f1c34de9-237e-4ac1-83a6-cf4a7a28eaa6", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034587437, "stop": 1721034587437}], "start": 1721034587437, "stop": 1721034587481}
\ No newline at end of file
{"uuid": "21b8cc32-124a-4f32-b52f-cf2412378b9c", "befores": [{"name": "case_data", "status": "passed", "start": 1721034594025, "stop": 1721034594025}], "start": 1721034594025, "stop": 1721034594064}
\ No newline at end of file
{"uuid": "4b4e345d-e5ab-4cf5-bc8a-0f8f1ad30cb4", "befores": [{"name": "case_method", "status": "passed", "start": 1721034601181, "stop": 1721034601181}], "start": 1721034601181, "stop": 1721034601220}
\ No newline at end of file
{"uuid": "7ca8a573-936c-4132-8010-52ea0236e5e6", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034601138, "stop": 1721034601138}], "start": 1721034601138, "stop": 1721034601175}
\ No newline at end of file
{"uuid": "cee4154e-795c-4883-ad82-18b0bb2fa02b", "befores": [{"name": "case_data", "status": "passed", "start": 1721034587490, "stop": 1721034587490}], "start": 1721034587490, "stop": 1721034587542}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': ''} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776305788821504"}
{"uuid": "4f6eff25-7ddb-4f3f-911d-3d736b693e33", "befores": [{"name": "case_title", "status": "passed", "start": 1721034597235, "stop": 1721034597235}], "start": 1721034597235, "stop": 1721034597269}
\ No newline at end of file
{"uuid": "3e7e891b-9968-4903-9642-2be477e8d940", "befores": [{"name": "case_url", "status": "passed", "start": 1721034597351, "stop": 1721034597351}], "start": 1721034597351, "stop": 1721034597413}
\ No newline at end of file
{"name": "反向用例-用户名为特殊字符-密码正确", "status": "passed", "attachments": [{"name": "log", "source": "ba4a1423-20e0-400e-9faa-4b53d38fb042-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "d2a97cc1-96f6-45ac-9937-f51b07684d34-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名为特殊字符-密码正确'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': '♡♣♤♥♦♧♨♩ε', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034584090, "stop": 1721034584118, "uuid": "b9670b8d-3df3-4e65-b3af-18336985f6be", "historyId": "84712d074d431df54c5e53fe70699f96", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "cdf79853-fc09-4baa-b821-6cb785deb960", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034600990, "stop": 1721034600990}], "start": 1721034600990, "stop": 1721034601033}
\ No newline at end of file
{"uuid": "6a6a4c31-5fa3-460f-a52f-c7de630c88d5", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034583981, "stop": 1721034583981}], "start": 1721034583981, "stop": 1721034584004}
\ No newline at end of file
{"uuid": "185c9aab-4915-4bcf-b593-561d670e877d", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034601181, "stop": 1721034601181}], "start": 1721034601181, "stop": 1721034601220}
\ No newline at end of file
{"uuid": "f414876a-3cc4-43b7-8abd-cb5d0760c718", "befores": [{"name": "module_name", "status": "passed", "start": 1721034604419, "stop": 1721034604419}], "start": 1721034604419, "stop": 1721034604464}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776360943919104 HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776360943919104 HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "8862b5b6-492f-495e-8c41-b9ac1ed430fa", "befores": [{"name": "update_key", "status": "passed", "start": 1721034597454, "stop": 1721034597454}], "start": 1721034597454, "stop": 1721034597485}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79190>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '刷新成功' == None\nE + where None = <built-in method get of dict object at 0x00000203D7EAED40>('message')\nE + where <built-in method get of dict object at 0x00000203D7EAED40> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyMTAzNDUzNn0.DY-ZBzr8K_Bb2KVq-ZyL2z9N6qXw4Jday3dIFbQalfdU0ur0gO3yuvFSLlJb7J9VqPw13FGiGTn755SgvJJikA', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyMTAzNDUzNn0.DY-ZBzr8K_Bb2KVq-ZyL2z9N6qXw4Jday3dIFbQalfdU0ur0gO3yuvFSLlJb7J9VqPw13FGiGTn755SgvJJikA', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79190>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "d21e7db7-3ac9-4caf-8ff7-a31ca47ae3d3-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "fad84ff8-731c-410a-b3f4-5a1123822065-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'刷新token'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'GET'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/refresh'"}, {"name": "case_mime", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新成功'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034595076, "stop": 1721034595097, "uuid": "10efdd30-6897-42c1-8b71-3d1a162fcdbe", "historyId": "0726b7ece66163239f4822447c1bd114", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "8dd724a8-2060-4246-9d89-c98943c3436c", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034603353, "stop": 1721034603353}], "start": 1721034603353, "stop": 1721034603395}
\ No newline at end of file
{"uuid": "5ac1603f-0721-4050-a300-f4383f94c72a", "befores": [{"name": "case_data", "status": "passed", "start": 1721034596129, "stop": 1721034596129}], "start": 1721034596129, "stop": 1721034596223}
\ No newline at end of file
{"uuid": "651ded3b-100a-4429-95ad-c26f55f414ff", "befores": [{"name": "api_name", "status": "passed", "start": 1721034597235, "stop": 1721034597235}], "start": 1721034597235, "stop": 1721034597269}
\ No newline at end of file
{"uuid": "40fb1799-7f3a-47ee-8973-405dadb0803c", "befores": [{"name": "api_name", "status": "passed", "start": 1721034599618, "stop": 1721034599618}], "start": 1721034599618, "stop": 1721034599662}
\ No newline at end of file
{"uuid": "ed9538a4-a91a-4551-b16f-0cc34ba13c9d", "befores": [{"name": "case_method", "status": "passed", "start": 1721034598555, "stop": 1721034598555}], "start": 1721034598554, "stop": 1721034598606}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
\ No newline at end of file
{"uuid": "6650c9f2-9cb5-4059-8928-3f7229864fc0", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034597317, "stop": 1721034597317}], "start": 1721034597317, "stop": 1721034597344}
\ No newline at end of file
{"uuid": "4e51594e-938d-4064-817f-5ee807d0b636", "befores": [{"name": "case_title", "status": "passed", "start": 1721034592904, "stop": 1721034592904}], "start": 1721034592904, "stop": 1721034592950}
\ No newline at end of file
{"uuid": "dacdb7bc-e900-4d82-b1b0-b1f9c636e7c2", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034598555, "stop": 1721034598555}], "start": 1721034598555, "stop": 1721034598604}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': ''} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776305788821504"}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': ''} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776310842957824"}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': ''} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776315267948544"}
{"uuid": "9c6cd214-6d23-4449-9038-d69c211bc7d7", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034597495, "stop": 1721034597495}], "start": 1721034597495, "stop": 1721034597538}
\ No newline at end of file
{"uuid": "2c5d556d-597b-4516-8e35-282cf63ac4f7", "befores": [{"name": "case_data", "status": "passed", "start": 1721034601181, "stop": 1721034601181}], "start": 1721034601181, "stop": 1721034601218}
\ No newline at end of file
{"uuid": "e3aa4a6c-a648-43f3-9b8f-61036fc8c278", "befores": [{"name": "level", "status": "passed", "start": 1721034601137, "stop": 1721034601137}], "start": 1721034601137, "stop": 1721034601177}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79610>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776360943919104'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79610>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776360943919104'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "4146a0e6-d7cf-4be1-9328-0f33a597d5b4-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "21c58e08-4fc7-470c-ad54-6d98edd8f731-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'DELETE'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '需要更新'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1721034597495, "stop": 1721034597526, "uuid": "8b96b081-1ba0-4ccf-8c2f-0ae89cdaca21", "historyId": "b1880520415454889e175a38974c597e", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "56118773-c4be-46a1-9002-2e63034b54c9", "befores": [{"name": "case_title", "status": "passed", "start": 1721034588563, "stop": 1721034588563}], "start": 1721034588563, "stop": 1721034588613}
\ No newline at end of file
{"uuid": "b164df6a-09d3-4118-ad0f-540755b43d05", "befores": [{"name": "case_data", "status": "passed", "start": 1721034600865, "stop": 1721034600865}], "start": 1721034600865, "stop": 1721034600887}
\ No newline at end of file
{"uuid": "4e8d5edb-5f84-41f3-b525-0b259505382a", "befores": [{"name": "case_data", "status": "passed", "start": 1721034597351, "stop": 1721034597351}], "start": 1721034597351, "stop": 1721034597413}
\ No newline at end of file
{"uuid": "385fb83a-dc16-4404-a1eb-cc15622eeb8a", "befores": [{"name": "api_name", "status": "passed", "start": 1721034601040, "stop": 1721034601041}], "start": 1721034601040, "stop": 1721034601073}
\ No newline at end of file
{"uuid": "7470e1e8-52bd-450f-a941-ed068372a162", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034601077, "stop": 1721034601077}], "start": 1721034601077, "stop": 1721034601129}
\ No newline at end of file
{"uuid": "fa84ce32-f088-4442-a8cc-7b6614624262", "befores": [{"name": "level", "status": "passed", "start": 1721034587490, "stop": 1721034587490}], "start": 1721034587490, "stop": 1721034587555}
\ No newline at end of file
DEBUG  pytest_dependency:pytest_dependency.py:87 check dependencies of test_get_dem_msg[case_data1-expect_data1-反向用例1] in module scope ...
DEBUG  pytest_dependency:pytest_dependency.py:92 ... TestBPM::test_add_dem succeeded
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /api/demension/v1/dem/getDem?code= HTTP/11" 500 None
\ No newline at end of file
{"uuid": "693de477-e82b-4ce9-ac27-b8bdf1856230", "befores": [{"name": "case_title", "status": "passed", "start": 1721034591833, "stop": 1721034591834}], "start": 1721034591833, "stop": 1721034591880}
\ No newline at end of file
{"uuid": "f9939f6f-bb07-4a04-9f79-4adcc4050d12", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034584090, "stop": 1721034584090}], "start": 1721034584090, "stop": 1721034584119}
\ No newline at end of file
{"uuid": "726ee19f-46da-440b-b75d-91cff49d444e", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034583981, "stop": 1721034583981}], "start": 1721034583981, "stop": 1721034584004}
\ No newline at end of file
{"uuid": "56e01571-e38d-4374-814d-73ce99c0c49d", "befores": [{"name": "level", "status": "passed", "start": 1721034593969, "stop": 1721034593969}], "start": 1721034593969, "stop": 1721034594021}
\ No newline at end of file
GET http://36.139.193.99:8088/refresh None None {'message': '刷新成功'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzUsImlhdCI6MTcyMTAzNDUzNX0.EWQ7C4SuS63E2IIJl_gfCgk16XVg_Z_m8o3mRp70XM1jNDBIYzYwy5okNX-9j5IQDSurUD9TsdwaQBvnCJhxSQ","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
{"uuid": "52030bf5-37df-4ae0-b06b-0875fe5ba60a", "befores": [{"name": "case_method", "status": "passed", "start": 1721034584050, "stop": 1721034584050}], "start": 1721034584050, "stop": 1721034584083}
\ No newline at end of file
{"uuid": "0a4304c2-1693-4db1-b2dc-1d5dec8d9dac", "befores": [{"name": "case_url", "status": "passed", "start": 1721034586384, "stop": 1721034586384}], "start": 1721034586384, "stop": 1721034586428}
\ No newline at end of file
{"uuid": "91d70ee5-fae7-4518-bc10-23d2c5e6994f", "befores": [{"name": "case_method", "status": "passed", "start": 1721034587490, "stop": 1721034587490}], "start": 1721034587490, "stop": 1721034587543}
\ No newline at end of file
{"uuid": "5b598a6b-f1ff-40b2-be9a-46ac39469590", "befores": [{"name": "api_name", "status": "passed", "start": 1721034598554, "stop": 1721034598554}], "start": 1721034598554, "stop": 1721034598607}
\ No newline at end of file
{"uuid": "bf7448d6-dc40-47f7-a362-36873b2e163d", "befores": [{"name": "case_title", "status": "passed", "start": 1721034597418, "stop": 1721034597418}], "start": 1721034597418, "stop": 1721034597449}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79190>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '刷新成功' == None\nE + where None = <built-in method get of dict object at 0x00000203D7ECDE40>('message')\nE + where <built-in method get of dict object at 0x00000203D7ECDE40> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...gsImlhdCI6MTcyMTAzNDUzOH0.U7gcrqu0zhrKsKGgIeNUm_zV57END02ZC0iYMOjkdSbOx5N8SyAT-xqH1VzcOqUznv0IMvn5QC6G6ZhoT5JJIA', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...gsImlhdCI6MTcyMTAzNDUzOH0.U7gcrqu0zhrKsKGgIeNUm_zV57END02ZC0iYMOjkdSbOx5N8SyAT-xqH1VzcOqUznv0IMvn5QC6G6ZhoT5JJIA', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79190>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "2b6fb794-db6e-47e5-b773-36dc70031a62-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "b3d20605-9315-4fa9-a8db-5dc3bdcb4434-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'刷新token'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'GET'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/refresh'"}, {"name": "case_mime", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新成功'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034597236, "stop": 1721034597257, "uuid": "a90245f1-8d9d-4861-b729-f20edeaaacd4", "historyId": "0726b7ece66163239f4822447c1bd114", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "39c031ee-0361-418e-95a0-a61da0921b70", "befores": [{"name": "case_title", "status": "passed", "start": 1721034597351, "stop": 1721034597351}], "start": 1721034597351, "stop": 1721034597415}
\ No newline at end of file
{"uuid": "3393f18b-e97e-4ece-ad84-d35af148c17f", "befores": [{"name": "case_url", "status": "passed", "start": 1721034601181, "stop": 1721034601181}], "start": 1721034601181, "stop": 1721034601220}
\ No newline at end of file
PUT http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem query {'code': 'test_dem_xyz_123'} {'message': '设置默认维度成功!'} None None None
{"state":true,"message":"设置默认维度成功!","value":"","code":200}
断言成功
{"uuid": "c79a3c5c-2496-41b1-8e3c-4d076583a4fd", "befores": [{"name": "level", "status": "passed", "start": 1721034601225, "stop": 1721034601225}], "start": 1721034601225, "stop": 1721034601275}
\ No newline at end of file
{"uuid": "09cb51e7-c0e3-45e5-ba39-c79551aba659", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034596130, "stop": 1721034596130}], "start": 1721034596130, "stop": 1721034596222}
\ No newline at end of file
{"uuid": "07f7ce93-f634-4173-8f26-9331fafe7381", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034598555, "stop": 1721034598555}], "start": 1721034598555, "stop": 1721034598604}
\ No newline at end of file
{"uuid": "83a8c179-ede7-43fb-a34a-168c244eae29", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034587490, "stop": 1721034587490}], "start": 1721034587490, "stop": 1721034587541}
\ No newline at end of file
{"uuid": "be36015e-9a9b-482e-b3dd-e10a8428525f", "befores": [{"name": "module_name", "status": "passed", "start": 1721034601075, "stop": 1721034601077}], "start": 1721034601075, "stop": 1721034601133}
\ No newline at end of file
{"uuid": "4ca20a63-af52-4504-ab3b-0ef1a9b9e649", "befores": [{"name": "level", "status": "passed", "start": 1721034599618, "stop": 1721034599618}], "start": 1721034599618, "stop": 1721034599660}
\ No newline at end of file
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '需要更新'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":true,"message":"删除维度成功!","value":"","code":200}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '1812776376546729984'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":false,"message":"","code":200,"logId":"1812776382011908096"}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '1812776376546729984'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":false,"message":"","code":200,"logId":"1812776386449481728"}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '1812776376546729984'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":false,"message":"","code":200,"logId":"1812776390916415488"}
{"uuid": "6addb0d1-157e-44ca-a158-7f8e2038fecc", "befores": [{"name": "module_name", "status": "passed", "start": 1721034587436, "stop": 1721034587436}], "start": 1721034587436, "stop": 1721034587486}
\ No newline at end of file
{"uuid": "967475bf-29d4-438a-8abd-64aae1c4a325", "befores": [{"name": "case_url", "status": "passed", "start": 1721034596129, "stop": 1721034596129}], "start": 1721034596129, "stop": 1721034596223}
\ No newline at end of file
{"uuid": "ad88868f-2590-4a02-a8d2-46c8a2b8092e", "befores": [{"name": "case_title", "status": "passed", "start": 1721034584125, "stop": 1721034584125}], "start": 1721034584125, "stop": 1721034584318}
\ No newline at end of file
{"uuid": "37ef68c5-bda1-49e7-bb1c-d1f981344c11", "befores": [{"name": "module_name", "status": "passed", "start": 1721034586384, "stop": 1721034586384}], "start": 1721034586384, "stop": 1721034586429}
\ No newline at end of file
GET http://36.139.193.99:8088/refresh None None {'message': '刷新成功'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzUsImlhdCI6MTcyMTAzNDUzNX0.EWQ7C4SuS63E2IIJl_gfCgk16XVg_Z_m8o3mRp70XM1jNDBIYzYwy5okNX-9j5IQDSurUD9TsdwaQBvnCJhxSQ","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
GET http://36.139.193.99:8088/refresh None None {'message': '刷新成功'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzYsImlhdCI6MTcyMTAzNDUzNn0.DY-ZBzr8K_Bb2KVq-ZyL2z9N6qXw4Jday3dIFbQalfdU0ur0gO3yuvFSLlJb7J9VqPw13FGiGTn755SgvJJikA","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
GET http://36.139.193.99:8088/refresh None None {'message': '刷新成功'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzcsImlhdCI6MTcyMTAzNDUzN30.zkgRxYc1ZSTXBzUlR1fDosGafOqytm5L0ZR7nZa7QXfuBl-xiPMLsJbCd_AhLh7AgQzbDDwlUjxL0XijsDh7tA","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
GET http://36.139.193.99:8088/refresh None None {'message': '刷新成功'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzgsImlhdCI6MTcyMTAzNDUzOH0.U7gcrqu0zhrKsKGgIeNUm_zV57END02ZC0iYMOjkdSbOx5N8SyAT-xqH1VzcOqUznv0IMvn5QC6G6ZhoT5JJIA","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
{"uuid": "f2137a29-11b5-4bd2-8ac0-61c06299eac8", "befores": [{"name": "update_key", "status": "passed", "start": 1721034597317, "stop": 1721034597317}], "start": 1721034597317, "stop": 1721034597342}
\ No newline at end of file
{"uuid": "15fa07f8-bc75-4dc8-a03a-c1fc76da4f3b", "befores": [{"name": "api_name", "status": "passed", "start": 1721034597494, "stop": 1721034597494}], "start": 1721034597494, "stop": 1721034597540}
\ No newline at end of file
{"uuid": "b487ca61-8ac3-4e35-87ff-9a8cd56e3894", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034595075, "stop": 1721034595075}], "start": 1721034595075, "stop": 1721034595107}
\ No newline at end of file
{"uuid": "162162e7-4898-4dae-98e1-81a5cc48ad36", "befores": [{"name": "update_key", "status": "passed", "start": 1721034594025, "stop": 1721034594025}], "start": 1721034594025, "stop": 1721034594062}
\ No newline at end of file
{"uuid": "e92925ac-c7fe-44c9-846a-e7806329b0b0", "befores": [{"name": "level", "status": "passed", "start": 1721034598554, "stop": 1721034598554}], "start": 1721034598554, "stop": 1721034598606}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
\ No newline at end of file
{"uuid": "ea920c5b-9fcd-46b7-be70-196123b56b92", "befores": [{"name": "level", "status": "passed", "start": 1721034595075, "stop": 1721034595075}], "start": 1721034595075, "stop": 1721034595109}
\ No newline at end of file
{"uuid": "a2955ecc-0e8d-43ff-aa15-6d8924732be1", "befores": [{"name": "case_method", "status": "passed", "start": 1721034584125, "stop": 1721034584125}], "start": 1721034584125, "stop": 1721034584318}
\ No newline at end of file
{"uuid": "f17325de-2a12-4bbc-b8a1-84c07a6b448f", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034597454, "stop": 1721034597454}], "start": 1721034597454, "stop": 1721034597487}
\ No newline at end of file
{"uuid": "9623533a-c5c6-44d8-90df-ea1dd35e97e9", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034583942, "stop": 1721034583942}], "start": 1721034583942, "stop": 1721034583974}
\ No newline at end of file
{"uuid": "20c81891-48f0-4fbf-9d59-cf651c0d173f", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034597454, "stop": 1721034597454}], "start": 1721034597454, "stop": 1721034597486}
\ No newline at end of file
DEBUG  pytest_dependency:pytest_dependency.py:87 check dependencies of test_add_dem in module scope ...
DEBUG  pytest_dependency:pytest_dependency.py:92 ... TestBPM::test_login succeeded
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/demension/v1/dem/addDem HTTP/11" 200 None
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812776376546729984 HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19报错,错误为:断言失败, 用例数据为:{'ids': '1812776376546729984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":"","code":200}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzIsImlhdCI6MTcyMTAzNDUzMn0.tu06EnO4tD8z_gd1aVcpa8H9uPWBWnZkMTh_iri0E6FBDiLZjvteZ5l-bHzpjo0Gp4XQjiD8XrbdHG3t_BrKGQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
{"uuid": "4f68e265-8572-494f-8e64-2cf661aac4bf", "befores": [{"name": "case_url", "status": "passed", "start": 1721034601077, "stop": 1721034601077}], "start": 1721034601077, "stop": 1721034601131}
\ No newline at end of file
{"uuid": "5d514700-a5e8-4cd7-9e42-6ab32df07a66", "befores": [{"name": "module_name", "status": "passed", "start": 1721034597316, "stop": 1721034597316}], "start": 1721034597316, "stop": 1721034597347}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过长", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63FD0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63FD0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "42694659-b8cf-49d7-bde0-a1a701c0b46f-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "e63d6011-a312-4f7c-9a66-f0452a1b2bee-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码过长'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': '1'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034589631, "stop": 1721034589665, "uuid": "fd5e42f7-b98a-4152-8da8-295efd258d0b", "historyId": "63bcb2c305b7f0bcb7fd2d55d671e0a6", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "3ecbf130-b3d8-4a35-a242-2a4c5d771533", "befores": [{"name": "case_data", "status": "passed", "start": 1721034593970, "stop": 1721034593970}], "start": 1721034593970, "stop": 1721034594020}
\ No newline at end of file
{"uuid": "d966a275-3a87-4293-908d-63af9c8cb746", "befores": [{"name": "module_name", "status": "passed", "start": 1721034591833, "stop": 1721034591833}], "start": 1721034591833, "stop": 1721034591881}
\ No newline at end of file
{"uuid": "6e169548-0dcc-4888-a8bb-5d6fcfc1d91e", "befores": [{"name": "case_data", "status": "passed", "start": 1721034584010, "stop": 1721034584010}], "start": 1721034584010, "stop": 1721034584042}
\ No newline at end of file
{"uuid": "536af7ff-a574-4a0b-905a-ed89e138623d", "befores": [{"name": "case_title", "status": "passed", "start": 1721034585331, "stop": 1721034585331}], "start": 1721034585331, "stop": 1721034585370}
\ No newline at end of file
{"uuid": "950f32df-12e5-45d2-9f3e-9c8dbb828c22", "befores": [{"name": "update_key", "status": "passed", "start": 1721034591834, "stop": 1721034591834}], "start": 1721034591834, "stop": 1721034591877}
\ No newline at end of file
{"uuid": "e3afd8aa-253f-4fdd-a8b1-ba996a627ee9", "befores": [{"name": "update_key", "status": "passed", "start": 1721034597235, "stop": 1721034597235}], "start": 1721034597235, "stop": 1721034597265}
\ No newline at end of file
{"uuid": "08e4d1a6-b52b-4953-b462-9c2a845026e6", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034602304, "stop": 1721034602304}], "start": 1721034602304, "stop": 1721034602338}
\ No newline at end of file
{"uuid": "e19b9cef-cf10-4fe6-8ba9-8e9c97155222", "befores": [{"name": "update_key", "status": "passed", "start": 1721034600990, "stop": 1721034600990}], "start": 1721034600990, "stop": 1721034601031}
\ No newline at end of file
{"uuid": "b2420512-e634-4980-a2e8-1397afd0e6d0", "befores": [{"name": "case_url", "status": "passed", "start": 1721034597418, "stop": 1721034597418}], "start": 1721034597418, "stop": 1721034597447}
\ No newline at end of file
{"uuid": "f46c9e54-0667-4820-aea1-99ccdbfa840e", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034587437, "stop": 1721034587437}], "start": 1721034587437, "stop": 1721034587481}
\ No newline at end of file
{"name": "bpm-场景测试-添加维度-正向", "status": "passed", "attachments": [{"name": "log", "source": "bbb52858-4614-48b0-ba21-f58f5a185cf9-attachment.txt", "type": "text/plain"}], "start": 1721034600781, "stop": 1721034600828, "uuid": "aac81012-fc8b-4e5c-bba6-588dd9c6e9e0", "historyId": "128da70acc78e495205cae38c86a3095", "testCaseId": "128da70acc78e495205cae38c86a3095", "fullName": "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_add_dem", "labels": [{"name": "epic", "value": "bpm-场景测试"}, {"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "tag", "value": "dependency(depends=['TestBPM::test_login'])"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_pytest_decorator"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_pytest_decorator"}]}
\ No newline at end of file
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '需要更新'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":true,"message":"删除维度成功!","value":"","code":200}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '1812776360943919104'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":false,"message":"","code":200,"logId":"1812776366333599744"}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '1812776360943919104'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":false,"message":"","code":200,"logId":"1812776370771173376"}
{"uuid": "65f7a18a-b535-4a21-952a-bb6b834688ee", "befores": [{"name": "case_title", "status": "passed", "start": 1721034603353, "stop": 1721034603353}], "start": 1721034603353, "stop": 1721034603398}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过短", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D790D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert False == None\nE + where None = <built-in method get of dict object at 0x00000203D7DEB800>('state')\nE + where <built-in method get of dict object at 0x00000203D7DEB800> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...MsImlhdCI6MTcyMTAzNDUzM30.SqAWrztyPxfay5i2OdcjSuCtztadhco-CGEHS4gYd7ZjGPPxwX6Si0OLn25FzD5plH2WFib6N7NdqQEnx0Cv9Q', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...MsImlhdCI6MTcyMTAzNDUzM30.SqAWrztyPxfay5i2OdcjSuCtztadhco-CGEHS4gYd7ZjGPPxwX6Si0OLn25FzD5plH2WFib6N7NdqQEnx0Cv9Q', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D790D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "ff1a2854-5d41-4fc8-9edf-338055c24243-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "ead68264-4cb1-4ab9-b557-6561aef8b646-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码过短'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034591834, "stop": 1721034591869, "uuid": "52c52622-860d-44d6-90ce-2bde77d3294e", "historyId": "423b926d9c9c8e8a56af3847b1819589", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "9b42f213-aa40-416d-94b4-3f13ef2d15dc", "befores": [{"name": "case_title", "status": "passed", "start": 1721034583981, "stop": 1721034583981}], "start": 1721034583981, "stop": 1721034584005}
\ No newline at end of file
{"uuid": "94a5f3ec-9526-4ea1-a8af-1baf16705243", "befores": [{"name": "case_data", "status": "passed", "start": 1721034590697, "stop": 1721034590697}], "start": 1721034590697, "stop": 1721034590737}
\ No newline at end of file
{"uuid": "c8377853-0a95-4940-8e02-fe2c54c362a8", "befores": [{"name": "case_url", "status": "passed", "start": 1721034584089, "stop": 1721034584089}], "start": 1721034584089, "stop": 1721034584121}
\ No newline at end of file
{"uuid": "c932cea6-3073-4d71-bdac-221501179460", "befores": [{"name": "case_url", "status": "passed", "start": 1721034590747, "stop": 1721034590747}], "start": 1721034590747, "stop": 1721034590803}
\ No newline at end of file
{"uuid": "817a41dc-da1f-4436-ab4d-59d65efd6ef3", "befores": [{"name": "case_method", "status": "passed", "start": 1721034590697, "stop": 1721034590697}], "start": 1721034590697, "stop": 1721034590740}
\ No newline at end of file
{"uuid": "d12ac831-ad6c-4655-8e66-49237fe7608a", "befores": [{"name": "api_name", "status": "passed", "start": 1721034597418, "stop": 1721034597418}], "start": 1721034597418, "stop": 1721034597451}
\ No newline at end of file
{"uuid": "893c84e6-fdb6-4220-b52d-b247e001421d", "befores": [{"name": "module_name", "status": "passed", "start": 1721034597494, "stop": 1721034597494}], "start": 1721034597494, "stop": 1721034597540}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "0218b602-3581-482e-9c01-0628f1574ccf-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "9802445a-3247-4e90-97d7-416609fb954f-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'设置默认维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'PUT'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'code': 'test_dem_xyz_123'}"}, {"name": "expect_data", "value": "{'message': '设置默认维度成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034597317, "stop": 1721034597342, "uuid": "1ab7a0e1-62ae-411f-b04b-d3ca2c436e5a", "historyId": "ab9675ee712bd87eed823fadbd2abe6a", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "设置默认维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "f58b0e40-deb1-494a-ac24-e7f95370b994", "befores": [{"name": "api_name", "status": "passed", "start": 1721034600988, "stop": 1721034600988}], "start": 1721034600988, "stop": 1721034601036}
\ No newline at end of file
{"uuid": "e9550fcc-9616-4d4d-9e1c-de91e1bb701d", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034596129, "stop": 1721034596129}], "start": 1721034596129, "stop": 1721034596223}
\ No newline at end of file
{"uuid": "9ed18b42-cf62-46db-a6f5-83b7c582d193", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034597235, "stop": 1721034597235}], "start": 1721034597235, "stop": 1721034597266}
\ No newline at end of file
{"uuid": "6dafb5bb-9272-43a3-baa1-f26b31d23374", "befores": [{"name": "case_data", "status": "passed", "start": 1721034585331, "stop": 1721034585331}], "start": 1721034585331, "stop": 1721034585368}
\ No newline at end of file
{"uuid": "4fefe6cf-5c36-488b-b2a0-4014640af91f", "befores": [{"name": "case_title", "status": "passed", "start": 1721034584050, "stop": 1721034584050}], "start": 1721034584050, "stop": 1721034584083}
\ No newline at end of file
{"uuid": "0218ba04-0f10-4fd2-b61c-80a3665bf9d0", "befores": [{"name": "case_method", "status": "passed", "start": 1721034596129, "stop": 1721034596129}], "start": 1721034596129, "stop": 1721034596224}
\ No newline at end of file
{"uuid": "79fffbae-3346-4e01-940e-563283c21e25", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034600833, "stop": 1721034600833}], "start": 1721034600833, "stop": 1721034600860}
\ No newline at end of file
{"uuid": "bb059f35-7e3d-4904-9ec2-90619f01adbf", "befores": [{"name": "case_data", "status": "passed", "start": 1721034600891, "stop": 1721034600891}], "start": 1721034600891, "stop": 1721034600913}
\ No newline at end of file
{"uuid": "0437c6d0-7d47-4f86-8c82-2a7cc6ee920a", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034589631, "stop": 1721034589631}], "start": 1721034589631, "stop": 1721034589674}
\ No newline at end of file
{"uuid": "70116bc4-2c45-43d3-be06-fb95755dd43f", "befores": [{"name": "module_name", "status": "passed", "start": 1721034588563, "stop": 1721034588563}], "start": 1721034588563, "stop": 1721034588613}
\ No newline at end of file
{"uuid": "6f6b5d9b-61bc-4a01-a714-3eda4a115b60", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034597274, "stop": 1721034597274}], "start": 1721034597274, "stop": 1721034597310}
\ No newline at end of file
{"uuid": "0157128e-05be-4d98-a88a-8a83feb566eb", "befores": [{"name": "case_title", "status": "passed", "start": 1721034597316, "stop": 1721034597316}], "start": 1721034597316, "stop": 1721034597346}
\ No newline at end of file
{"uuid": "1d832fc6-d826-4243-a947-54fbb6bcbd24", "befores": [{"name": "update_key", "status": "passed", "start": 1721034590697, "stop": 1721034590697}], "start": 1721034590697, "stop": 1721034590736}
\ No newline at end of file
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "d7ebe364-60f0-4a79-ba01-f89b36ac2c90-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "dfa3702a-cb02-4624-8e9a-901d28d15c91-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'添加维度'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "case_mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}"}, {"name": "expect_data", "value": "{'message': '添加维度成功!'}"}, {"name": "sql_type", "value": "'delete'"}, {"name": "sql_data", "value": "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "None"}], "start": 1721034600991, "stop": 1721034601031, "uuid": "a00cec9e-4128-45c0-abdf-685cafd7eda5", "historyId": "66a9541ee6ddd173bc3735e2e4285b95", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"uuid": "8761875b-1a45-40b4-89e0-f63d778511a6", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034584010, "stop": 1721034584010}], "start": 1721034584010, "stop": 1721034584040}
\ No newline at end of file
{"uuid": "bc3fe896-c90c-4b17-9632-d35f688fddbd", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034590697, "stop": 1721034590697}], "start": 1721034590697, "stop": 1721034590737}
\ No newline at end of file
{"uuid": "06fa0452-ffe0-4eb6-944b-f30234718765", "befores": [{"name": "case_url", "status": "passed", "start": 1721034597235, "stop": 1721034597235}], "start": 1721034597235, "stop": 1721034597268}
\ No newline at end of file
{"uuid": "b2c7bef8-bf66-4950-8da9-273bcea39d45", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034597274, "stop": 1721034597274}], "start": 1721034597274, "stop": 1721034597311}
\ No newline at end of file
DEBUG  pytest_dependency:pytest_dependency.py:87 check dependencies of test_get_dem_msg[case_data0-expect_data0-正向用例] in module scope ...
DEBUG  pytest_dependency:pytest_dependency.py:92 ... TestBPM::test_add_dem succeeded
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /api/demension/v1/dem/getDem?code=BlMIcVhzeOHa HTTP/11" 200 None
\ No newline at end of file
{"uuid": "0cd3f27e-b14e-4866-8880-6cc8e49d0b52", "befores": [{"name": "case_url", "status": "passed", "start": 1721034587436, "stop": 1721034587437}], "start": 1721034587436, "stop": 1721034587482}
\ No newline at end of file
{"uuid": "c828f1ac-f62d-4fca-8936-7159335a052c", "befores": [{"name": "case_url", "status": "passed", "start": 1721034590697, "stop": 1721034590697}], "start": 1721034590697, "stop": 1721034590739}
\ No newline at end of file
{"uuid": "468108e6-3cab-46b7-87fa-536292016f97", "befores": [{"name": "level", "status": "passed", "start": 1721034597351, "stop": 1721034597351}], "start": 1721034597351, "stop": 1721034597415}
\ No newline at end of file
{"uuid": "3a498611-42ba-42e1-8ffe-4d44900883e6", "befores": [{"name": "case_title", "status": "passed", "start": 1721034597453, "stop": 1721034597454}], "start": 1721034597453, "stop": 1721034597488}
\ No newline at end of file
{"uuid": "d08cf9ff-1daa-47b7-9b66-dd1ce1865c77", "befores": [{"name": "case_url", "status": "passed", "start": 1721034597495, "stop": 1721034597495}], "start": 1721034597495, "stop": 1721034597539}
\ No newline at end of file
{"uuid": "72c99417-7c2d-4082-9714-bddf3b7acfaa", "befores": [{"name": "level", "status": "passed", "start": 1721034601041, "stop": 1721034601041}], "start": 1721034601041, "stop": 1721034601072}
\ No newline at end of file
{"uuid": "b1b94ce6-cbc7-4d2c-a574-7561af715018", "befores": [{"name": "module_name", "status": "passed", "start": 1721034584125, "stop": 1721034584125}], "start": 1721034584125, "stop": 1721034584321}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /refresh HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /refresh HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': '♡♣♤♥♦♧♨♩ε', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1812776305646215168"}
断言成功
{"uuid": "7d87efe3-c612-4fb0-97df-c1aab7f7ec2c", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034601077, "stop": 1721034601077}], "start": 1721034601077, "stop": 1721034601129}
\ No newline at end of file
{"uuid": "6645a9b3-9bd1-46a1-8d57-bb2ff6d9a3c5", "befores": [{"name": "case_title", "status": "passed", "start": 1721034596129, "stop": 1721034596129}], "start": 1721034596129, "stop": 1721034596224}
\ No newline at end of file
{"uuid": "14f88d56-217d-4536-bc38-96ae943f0956", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034602304, "stop": 1721034602304}], "start": 1721034602304, "stop": 1721034602338}
\ No newline at end of file
{"uuid": "43f725fb-9bd4-4e79-85f0-a7366c351edf", "befores": [{"name": "case_url", "status": "passed", "start": 1721034601041, "stop": 1721034601041}], "start": 1721034601041, "stop": 1721034601071}
\ No newline at end of file
{"uuid": "2f624416-7e82-4de6-9d8f-9750cc619acb", "befores": [{"name": "case_title", "status": "passed", "start": 1721034587436, "stop": 1721034587436}], "start": 1721034587436, "stop": 1721034587484}
\ No newline at end of file
{"uuid": "4ec69b39-6e9a-4d7f-8683-2f2265cb559b", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034587490, "stop": 1721034587490}], "start": 1721034587490, "stop": 1721034587542}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': '', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1812776305151287296"}
断言成功
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/org/addOrg HTTP/11" 200 None
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"name": "反向用例1", "status": "passed", "attachments": [{"name": "log", "source": "a5a1bc6c-f854-4e37-8b8e-17339edadf55-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "ccc65a35-3f19-4473-8132-b54adf00ebee-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "case_data", "value": "{'code': ''}"}, {"name": "expect_data", "value": "{'message': '必填:code维度编码必填!'}"}, {"name": "title", "value": "'反向用例1'"}], "start": 1721034600866, "stop": 1721034600886, "uuid": "a003f455-de2b-44cb-b743-074120e943d1", "historyId": "8b5c6ab7c7d5d427ca8434dcfe2f2220", "testCaseId": "2d43949fe9fc94a14d91b8791ac4ed5c", "fullName": "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_get_dem_msg", "labels": [{"name": "story", "value": "根据维度编码获取维度信息"}, {"name": "epic", "value": "bpm-场景测试"}, {"name": "feature", "value": "维度管理"}, {"name": "tag", "value": "dependency(depends=['TestBPM::test_add_dem'])"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_pytest_decorator"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_pytest_decorator"}]}
\ No newline at end of file
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/demension/v1/dem/addDem HTTP/11" 200 None
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "4e3c3ccf-20e2-4565-b461-0b1026d996c5-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "5787a99a-4aa0-4c37-8a19-9a04f198fc53-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'保存组织参数'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}, {"name": "case_mime", "value": "'query|json'"}, {"name": "case_data", "value": "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}"}, {"name": "expect_data", "value": "{'state': True, 'message': '保存组织参数成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034601138, "stop": 1721034601174, "uuid": "882294a5-7052-4113-8092-cb9112f399a2", "historyId": "a846fa27705c7e18d3cf0d1b13ce62eb", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "保存组织参数"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"uuid": "d1a39caf-1379-4c41-9c4d-734f1073703d", "befores": [{"name": "level", "status": "passed", "start": 1721034597316, "stop": 1721034597316}], "start": 1721034597316, "stop": 1721034597347}
\ No newline at end of file
{"uuid": "2bdb2871-c08b-4f61-8be3-581765fb05b2", "befores": [{"name": "case_data", "status": "passed", "start": 1721034600833, "stop": 1721034600833}], "start": 1721034600833, "stop": 1721034600861}
\ No newline at end of file
{"uuid": "9637484e-dce1-47bd-b3c8-731dda2c8727", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034589631, "stop": 1721034589631}], "start": 1721034589631, "stop": 1721034589675}
\ No newline at end of file
{"uuid": "bfdf5e4e-b379-482a-8c23-7e212b7c797d", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034599619, "stop": 1721034599619}], "start": 1721034599619, "stop": 1721034599658}
\ No newline at end of file
{"uuid": "1bc67f47-52e2-4ec5-a827-dd2c12d497b5", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034590697, "stop": 1721034590697}], "start": 1721034590697, "stop": 1721034590739}
\ No newline at end of file
{"uuid": "e34a819f-4725-4ae1-b1be-dc1d871468b6", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034592904, "stop": 1721034592904}], "start": 1721034592904, "stop": 1721034592947}
\ No newline at end of file
{"uuid": "1b7db2ae-31e8-44a0-8702-487a9f2e8d13", "befores": [{"name": "case_title", "status": "passed", "start": 1721034600671, "stop": 1721034600671}], "start": 1721034600671, "stop": 1721034600717}
\ No newline at end of file
{"uuid": "2c36768b-fd98-49a7-bb7d-5053767de90f", "befores": [{"name": "case_data", "status": "passed", "start": 1721034597495, "stop": 1721034597495}], "start": 1721034597495, "stop": 1721034597538}
\ No newline at end of file
{"uuid": "90a66093-9e46-4768-a871-92bb2e8d44fc", "befores": [{"name": "case_title", "status": "passed", "start": 1721034601181, "stop": 1721034601181}], "start": 1721034601181, "stop": 1721034601221}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "47032406-43d6-4bd9-b429-520af9046e6e-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "098ef29e-ac40-4bd9-bc3e-00cb25ec4127-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'添加维度'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "case_mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}"}, {"name": "expect_data", "value": "{'message': '添加维度成功!'}"}, {"name": "sql_type", "value": "'delete'"}, {"name": "sql_data", "value": "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "None"}], "start": 1721034597274, "stop": 1721034597308, "uuid": "438573b2-fae0-4c48-9aba-49070f351893", "historyId": "ccc47dd491dda4f012668830aede7239", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "7735d89e-c035-468b-9b25-9880d58b73e9-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "29544c66-0704-4c7b-b4b3-70974445c5de-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'删除组织'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"}, {"name": "case_mime", "value": "'form'"}, {"name": "case_data", "value": "'test_org'"}, {"name": "expect_data", "value": "{'state': True, 'message': '删除组织成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034597454, "stop": 1721034597484, "uuid": "a63aa4db-cb40-485f-b656-b552114f3f73", "historyId": "817beae3f290f38d2fbd5f74a7b72a55", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "删除组织"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码为空", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63D60>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63D60>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "d6df0d43-5dfd-4f9e-ad6c-2f3f677fe9d9-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "a3b9337d-9f62-4ae9-9c43-db2a7f940f18-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码为空'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': ''}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034586385, "stop": 1721034586417, "uuid": "a54bafcf-68e9-45a5-af0c-71a1751ed3b3", "historyId": "f640363898931f48a2631389cf661c1a", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MjUsImlhdCI6MTcyMTAzNDUyNX0.I7FZxXjzADTsZvZVtg3ZyzvkOzRmQuYrbVh-D89FibHI-lbbnfe00Xd7fM64IYs5LwH6B7BZBHwLzxUtrp1TJQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
断言成功
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '需要更新'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":true,"message":"删除维度成功!","value":"","code":200}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '1812776360943919104'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":false,"message":"","code":200,"logId":"1812776366333599744"}
{"uuid": "e0adaf4b-061f-47a5-a063-c32b644f119d", "befores": [{"name": "level", "status": "passed", "start": 1721034594025, "stop": 1721034594025}], "start": 1721034594025, "stop": 1721034594066}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': '1'} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776319948791808"}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': '1'} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776324440891392"}
{"uuid": "e30589f4-6571-44bf-bbc5-bea4d9e00dff", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034583981, "stop": 1721034583981}], "start": 1721034583981, "stop": 1721034584002}
\ No newline at end of file
{"uuid": "75ee0947-c0e8-4d7b-9678-61b37e21e311", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034600671, "stop": 1721034600671}], "start": 1721034600671, "stop": 1721034600714}
\ No newline at end of file
{"uuid": "4241ed32-c42a-4097-83d6-e6a805b660f1", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034597235, "stop": 1721034597235}], "start": 1721034597235, "stop": 1721034597267}
\ No newline at end of file
{"uuid": "79cf944b-b21b-4aed-9d35-f108f4d666b6", "befores": [{"name": "case_title", "status": "passed", "start": 1721034597274, "stop": 1721034597274}], "start": 1721034597274, "stop": 1721034597311}
\ No newline at end of file
{"uuid": "a9cf15c0-054d-45d5-a045-9b096dfcff45", "befores": [{"name": "case_method", "status": "passed", "start": 1721034593969, "stop": 1721034593969}], "start": 1721034593969, "stop": 1721034594021}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzIsImlhdCI6MTcyMTAzNDUzMn0.tu06EnO4tD8z_gd1aVcpa8H9uPWBWnZkMTh_iri0E6FBDiLZjvteZ5l-bHzpjo0Gp4XQjiD8XrbdHG3t_BrKGQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzMsImlhdCI6MTcyMTAzNDUzM30.SqAWrztyPxfay5i2OdcjSuCtztadhco-CGEHS4gYd7ZjGPPxwX6Si0OLn25FzD5plH2WFib6N7NdqQEnx0Cv9Q","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzQsImlhdCI6MTcyMTAzNDUzNH0.KulD_YVLlpPYa59XmHg4iD8jnK0cot2R_44MgEN5Dv2vcV_D9hnDXB_ymJW0yO6GmWgXnQLuav0GrMPoTC-h8w","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzUsImlhdCI6MTcyMTAzNDUzNX0.EWQ7C4SuS63E2IIJl_gfCgk16XVg_Z_m8o3mRp70XM1jNDBIYzYwy5okNX-9j5IQDSurUD9TsdwaQBvnCJhxSQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
{"uuid": "70a9da5a-1ec6-4312-a314-ade5a300ac3c", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034593970, "stop": 1721034593970}], "start": 1721034593970, "stop": 1721034594019}
\ No newline at end of file
{"uuid": "ba90bfe7-8348-4990-828f-f7788a84e720", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034604419, "stop": 1721034604419}], "start": 1721034604419, "stop": 1721034604460}
\ No newline at end of file
{"uuid": "f77ac0dd-64c1-4a8d-9e9d-b35898562cdc", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034600990, "stop": 1721034600990}], "start": 1721034600990, "stop": 1721034601034}
\ No newline at end of file
post http://36.139.193.99:8088/api/demension/v1/dem/addDem json {'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'} {'message': '添加维度成功!'} delete DELETE FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; None
{"state":true,"message":"添加维度成功!","value":"","code":200}
断言成功
{"uuid": "5ae1b6bc-0db7-4b8b-a1ec-d8f2535ee021", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034603353, "stop": 1721034603353}], "start": 1721034603353, "stop": 1721034603395}
\ No newline at end of file
{"uuid": "d1c8a764-8d24-4f42-87f6-77e9aa103a4f", "befores": [{"name": "case_title", "status": "passed", "start": 1721034589631, "stop": 1721034589631}], "start": 1721034589631, "stop": 1721034589676}
\ No newline at end of file
{"uuid": "d7cea753-047d-4bb7-9499-d5200a06778d", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034590748, "stop": 1721034590748}], "start": 1721034590748, "stop": 1721034590801}
\ No newline at end of file
{"uuid": "b21dfc7a-fc05-4a76-8b43-5151044adccb", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034603353, "stop": 1721034603353}], "start": 1721034603353, "stop": 1721034603397}
\ No newline at end of file
{"uuid": "ebd3ba7b-df9e-45d2-9e4e-a02ce410fbf3", "befores": [{"name": "module_name", "status": "passed", "start": 1721034583981, "stop": 1721034583981}], "start": 1721034583981, "stop": 1721034584006}
\ No newline at end of file
{"name": "反向用例-用户名为空-密码正确", "status": "passed", "attachments": [{"name": "log", "source": "34cab3f6-4e38-4f94-8511-adbf9683a945-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "d67b385c-01d4-46c6-bc0c-bfb965ec1f46-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名为空-密码正确'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': '', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034583981, "stop": 1721034584001, "uuid": "825893a1-3017-409b-a584-3a64f8b75e9b", "historyId": "4a35e629ced594be4e64e255839f5624", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "PUT /api/demension/v1/dem/setDefaultDem?code=test_dem_xyz_123 HTTP/11" 200 None
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "356b774e-23f3-4cf7-8e52-81424f67e708-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "987b7870-4e32-4755-b08c-a3e574ec9bdd-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'保存组织参数'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}, {"name": "case_mime", "value": "'query|json'"}, {"name": "case_data", "value": "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}"}, {"name": "expect_data", "value": "{'state': True, 'message': '保存组织参数成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034597419, "stop": 1721034597445, "uuid": "fb713191-6e48-44ee-9d43-d398beb7d629", "historyId": "764d3ad32e20031839427f75fe32737a", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "保存组织参数"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "5359cf69-de5e-42ee-ac76-fc0d71e5a6de", "befores": [{"name": "case_data", "status": "passed", "start": 1721034587437, "stop": 1721034587437}], "start": 1721034587437, "stop": 1721034587482}
\ No newline at end of file
{"uuid": "dae2dc5f-3bd5-4762-92ee-a91bf9cc6dfe", "befores": [{"name": "module_name", "status": "passed", "start": 1721034599618, "stop": 1721034599618}], "start": 1721034599618, "stop": 1721034599662}
\ No newline at end of file
{"uuid": "77f4433e-2280-4997-a803-d6f84d8e2e91", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034584050, "stop": 1721034584050}], "start": 1721034584050, "stop": 1721034584080}
\ No newline at end of file
{"uuid": "d257edeb-d762-4a21-8bc4-a0dbb7ce7f78", "befores": [{"name": "api_name", "status": "passed", "start": 1721034590747, "stop": 1721034590747}], "start": 1721034590747, "stop": 1721034590805}
\ No newline at end of file
{"uuid": "ca4cfb4d-23c8-497f-b372-9ee71bc0f52d", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034589631, "stop": 1721034589631}], "start": 1721034589631, "stop": 1721034589674}
\ No newline at end of file
{"uuid": "9e422237-5bb5-4753-a6a4-4be4af11e997", "befores": [{"name": "api_name", "status": "passed", "start": 1721034590697, "stop": 1721034590697}], "start": 1721034590697, "stop": 1721034590741}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': '1'} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776319948791808"}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': '1'} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776324440891392"}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': '1'} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776328899436544"}
post http://36.139.193.99:8088/api/org/v1/org/addOrg json {'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'} {'message': '添加组织成功!'} select|delete {'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123";', 'delete': 'delete from uc_org where CODE_="test_org";'} demId
{"state":true,"message":"添加组织成功!","value":"","code":200}
断言成功
{"uuid": "17d1f8a5-42d2-4e54-84c3-1d9bfedc0378", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034584090, "stop": 1721034584090}], "start": 1721034584090, "stop": 1721034584119}
\ No newline at end of file
{"uuid": "2e0390a5-71c3-4282-b99a-d396c2c8f465", "befores": [{"name": "case_data", "status": "passed", "start": 1721034592904, "stop": 1721034592904}], "start": 1721034592904, "stop": 1721034592947}
\ No newline at end of file
{"uuid": "97d4fd43-7038-454d-927f-ae765282a7ad", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034584127, "stop": 1721034584127}], "start": 1721034584127, "stop": 1721034584317}
\ No newline at end of file
{"uuid": "1cb26cbf-08b7-404a-8ed2-f190d7e0b5fc", "befores": [{"name": "level", "status": "passed", "start": 1721034602304, "stop": 1721034602304}], "start": 1721034602304, "stop": 1721034602339}
\ No newline at end of file
{"uuid": "e1729603-6ed0-43bf-87c4-eef35510e270", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034596129, "stop": 1721034596129}], "start": 1721034596129, "stop": 1721034596223}
\ No newline at end of file
{"uuid": "a1d405cd-7b23-492f-83be-81f26cd6508d", "befores": [{"name": "level", "status": "passed", "start": 1721034591833, "stop": 1721034591833}], "start": 1721034591833, "stop": 1721034591880}
\ No newline at end of file
{"uuid": "b0de123c-62ec-4abd-96f0-6e90cd57128b", "befores": [{"name": "update_key", "status": "passed", "start": 1721034600671, "stop": 1721034600671}], "start": 1721034600671, "stop": 1721034600713}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': '1'} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776319948791808"}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': '1'} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776324440891392"}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': '1'} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776328899436544"}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': '1'} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812776333366370304"}
{"uuid": "b97c816c-88fd-46a8-8fad-159bdd69da35", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034586385, "stop": 1721034586385}], "start": 1721034586385, "stop": 1721034586426}
\ No newline at end of file
{"uuid": "0b676b34-e8a0-4331-b331-1db90b128949", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034587437, "stop": 1721034587437}], "start": 1721034587437, "stop": 1721034587482}
\ No newline at end of file
{"uuid": "79cd1cc5-3b92-42ec-8bc3-82ca7843a13a", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034594025, "stop": 1721034594025}], "start": 1721034594025, "stop": 1721034594062}
\ No newline at end of file
{"uuid": "04b457e8-2d96-4532-8480-c72f9da16208", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034592904, "stop": 1721034592904}], "start": 1721034592904, "stop": 1721034592945}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzIsImlhdCI6MTcyMTAzNDUzMn0.tu06EnO4tD8z_gd1aVcpa8H9uPWBWnZkMTh_iri0E6FBDiLZjvteZ5l-bHzpjo0Gp4XQjiD8XrbdHG3t_BrKGQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzMsImlhdCI6MTcyMTAzNDUzM30.SqAWrztyPxfay5i2OdcjSuCtztadhco-CGEHS4gYd7ZjGPPxwX6Si0OLn25FzD5plH2WFib6N7NdqQEnx0Cv9Q","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
{"uuid": "899e782c-22d8-4276-b7d7-0d94754c9c49", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034588564, "stop": 1721034588564}], "start": 1721034588564, "stop": 1721034588611}
\ No newline at end of file
{"uuid": "e7ba75d9-6ede-4982-af48-282c0d98a0e9", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034601041, "stop": 1721034601041}], "start": 1721034601041, "stop": 1721034601071}
\ No newline at end of file
{"uuid": "90e546df-2b79-4920-9fb1-640ccbe9d833", "befores": [{"name": "sql_type", "status": "passed", "start": 1721034584127, "stop": 1721034584127}], "start": 1721034584127, "stop": 1721034584316}
\ No newline at end of file
{"uuid": "6aa8a4de-aba9-4654-a62d-774f46a07f99", "befores": [{"name": "case_data", "status": "passed", "start": 1721034600671, "stop": 1721034600671}], "start": 1721034600671, "stop": 1721034600715}
\ No newline at end of file
{"uuid": "44bebfe3-7a34-49db-955b-6231c03fac8d", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034597235, "stop": 1721034597235}], "start": 1721034597235, "stop": 1721034597268}
\ No newline at end of file
{"uuid": "1a388cb0-38ec-42fd-97bb-b955abc93617", "befores": [{"name": "module_name", "status": "passed", "start": 1721034601040, "stop": 1721034601040}], "start": 1721034601040, "stop": 1721034601073}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79610>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776360943919104'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D79610>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812776360943919104'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "a01b287a-ddd8-42ba-9d33-29952abf7285-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "dcdd2902-897f-4774-8e01-f7a7b45df011-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'DELETE'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1812776360943919104'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1721034598555, "stop": 1721034598590, "uuid": "32631fde-0f1e-4465-8925-85dc3bbfa377", "historyId": "b1880520415454889e175a38974c597e", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "bbc48e96-2d9b-4425-af7c-06d8c04db557", "befores": [{"name": "case_method", "status": "passed", "start": 1721034599618, "stop": 1721034599618}], "start": 1721034599618, "stop": 1721034599660}
\ No newline at end of file
{"uuid": "80eea6bb-679a-4a3b-95ca-af12dc781ef4", "befores": [{"name": "title", "status": "passed", "start": 1721034600891, "stop": 1721034600891}], "start": 1721034600891, "stop": 1721034600912}
\ No newline at end of file
{"uuid": "c4352aa7-59d3-4292-b46e-e0fdf1972edf", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034604419, "stop": 1721034604419}], "start": 1721034604419, "stop": 1721034604462}
\ No newline at end of file
{"uuid": "5709bb64-3c20-4426-b510-d025b068f4df", "befores": [{"name": "level", "status": "passed", "start": 1721034601077, "stop": 1721034601077}], "start": 1721034601077, "stop": 1721034601132}
\ No newline at end of file
{"uuid": "81c15d1d-df25-47fd-bcea-4bf2735e8f1e", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034600891, "stop": 1721034600891}], "start": 1721034600891, "stop": 1721034600913}
\ No newline at end of file
{"uuid": "aa100a29-d26c-48e3-a65a-94a61888f47a", "befores": [{"name": "api_name", "status": "passed", "start": 1721034588563, "stop": 1721034588563}], "start": 1721034588563, "stop": 1721034588613}
\ No newline at end of file
{"uuid": "100b73b9-3ee0-47c5-b37a-7ea14567343c", "befores": [{"name": "case_url", "status": "passed", "start": 1721034584050, "stop": 1721034584050}], "start": 1721034584050, "stop": 1721034584083}
\ No newline at end of file
{"uuid": "f8eff2b1-8471-4237-b2f1-a40e1bea373b", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034597317, "stop": 1721034597317}], "start": 1721034597317, "stop": 1721034597345}
\ No newline at end of file
{"uuid": "7275435b-5dfd-4ac1-9352-b0511b0185db", "befores": [{"name": "update_key", "status": "passed", "start": 1721034597495, "stop": 1721034597495}], "start": 1721034597495, "stop": 1721034597535}
\ No newline at end of file
{"uuid": "4a93e2c4-58c5-4673-ae7e-fe8753418b90", "befores": [{"name": "case_method", "status": "passed", "start": 1721034584089, "stop": 1721034584089}], "start": 1721034584089, "stop": 1721034584121}
\ No newline at end of file
{"uuid": "b46c7c0a-6b5e-4350-b066-52b43675de8a", "befores": [{"name": "level", "status": "passed", "start": 1721034604419, "stop": 1721034604419}], "start": 1721034604419, "stop": 1721034604464}
\ No newline at end of file
{"uuid": "bb362c4a-2fb0-49cd-a5b2-8869ab7a5613", "befores": [{"name": "api_name", "status": "passed", "start": 1721034595075, "stop": 1721034595075}], "start": 1721034595075, "stop": 1721034595111}
\ No newline at end of file
{"uuid": "92c9593c-a427-44f5-b83f-c885cd4386dc", "befores": [{"name": "level", "status": "passed", "start": 1721034586384, "stop": 1721034586384}], "start": 1721034586384, "stop": 1721034586428}
\ No newline at end of file
{"uuid": "663f1b40-d95b-4272-8d59-3130483c1001", "befores": [{"name": "case_data", "status": "passed", "start": 1721034602304, "stop": 1721034602304}], "start": 1721034602304, "stop": 1721034602338}
\ No newline at end of file
{"uuid": "33db05d1-b9f5-44e2-80b6-8566215236ac", "befores": [{"name": "case_title", "status": "passed", "start": 1721034597495, "stop": 1721034597495}], "start": 1721034597495, "stop": 1721034597540}
\ No newline at end of file
{"uuid": "40e21dc0-0385-4317-a403-b946469c39c4", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034586385, "stop": 1721034586385}], "start": 1721034586385, "stop": 1721034586425}
\ No newline at end of file
{"uuid": "96ba7489-a840-4cbc-bae7-f42cf54b1ba4", "befores": [{"name": "update_key", "status": "passed", "start": 1721034587490, "stop": 1721034587490}], "start": 1721034587490, "stop": 1721034587541}
\ No newline at end of file
{"uuid": "5d3d892e-7c4d-4eef-b7f3-ff6409452ffb", "befores": [{"name": "case_data", "status": "passed", "start": 1721034601041, "stop": 1721034601041}], "start": 1721034601041, "stop": 1721034601071}
\ No newline at end of file
{"uuid": "83c94d94-96ff-4183-a8d1-84f5e6c8a243", "befores": [{"name": "api_name", "status": "passed", "start": 1721034583981, "stop": 1721034583981}], "start": 1721034583981, "stop": 1721034584006}
\ No newline at end of file
{"uuid": "3d06d8be-6d3f-45cf-be02-100f9b46360c", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034601225, "stop": 1721034601225}], "start": 1721034601225, "stop": 1721034601271}
\ No newline at end of file
{"uuid": "528bdbb3-9081-4185-8542-e3787003c815", "befores": [{"name": "case_url", "status": "passed", "start": 1721034583942, "stop": 1721034583942}], "start": 1721034583942, "stop": 1721034583975}
\ No newline at end of file
{"uuid": "9f561bb6-7c69-4a57-a557-4179774ad73b", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034601041, "stop": 1721034601041}], "start": 1721034601041, "stop": 1721034601071}
\ No newline at end of file
{"uuid": "26629d6e-a327-41d5-974e-54cf4588a5e0", "befores": [{"name": "level", "status": "passed", "start": 1721034597235, "stop": 1721034597235}], "start": 1721034597235, "stop": 1721034597269}
\ No newline at end of file
{"uuid": "f8d09ede-5442-43bb-9682-972f1d71f490", "befores": [{"name": "case_title", "status": "passed", "start": 1721034602304, "stop": 1721034602304}], "start": 1721034602304, "stop": 1721034602339}
\ No newline at end of file
{"uuid": "0de5bbc5-4da6-45f9-883b-7a1479f975e7", "befores": [{"name": "case_title", "status": "passed", "start": 1721034601041, "stop": 1721034601041}], "start": 1721034601041, "stop": 1721034601072}
\ No newline at end of file
{"uuid": "8ede65e1-78e8-473f-bf4d-2279f246b2f5", "befores": [{"name": "case_title", "status": "passed", "start": 1721034586384, "stop": 1721034586384}], "start": 1721034586384, "stop": 1721034586428}
\ No newline at end of file
{"uuid": "ef4b0da6-01c1-4fb4-9fcf-787def59046c", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034593970, "stop": 1721034593970}], "start": 1721034593970, "stop": 1721034594020}
\ No newline at end of file
{"uuid": "88ba9c91-f831-4c3c-87e0-c99420e21eb8", "befores": [{"name": "update_key", "status": "passed", "start": 1721034588564, "stop": 1721034588564}], "start": 1721034588564, "stop": 1721034588609}
\ No newline at end of file
{"uuid": "79ad7549-22b6-4496-9b5b-a5f20bd83828", "befores": [{"name": "level", "status": "passed", "start": 1721034588563, "stop": 1721034588563}], "start": 1721034588563, "stop": 1721034588613}
\ No newline at end of file
{"uuid": "4b5e2752-275d-4696-b53b-b9314440e7de", "befores": [{"name": "case_mime", "status": "passed", "start": 1721034601137, "stop": 1721034601137}], "start": 1721034601137, "stop": 1721034601176}
\ No newline at end of file
{"uuid": "b4b082f0-a910-45d7-8b05-e8aff6348642", "befores": [{"name": "case_title", "status": "passed", "start": 1721034600990, "stop": 1721034600990}], "start": 1721034600990, "stop": 1721034601036}
\ No newline at end of file
{"uuid": "0aebf1ce-3e1f-48d1-b0ab-e1651436ca09", "befores": [{"name": "case_data", "status": "passed", "start": 1721034597454, "stop": 1721034597454}], "start": 1721034597454, "stop": 1721034597487}
\ No newline at end of file
{"name": "反向用例-用户名过短-密码正确", "status": "passed", "attachments": [{"name": "log", "source": "a3125c11-8a5d-4b77-add9-76c2c918ddb1-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "996c3b00-b895-4678-a485-a04be8039d0b-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名过短-密码正确'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'a', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034584010, "stop": 1721034584039, "uuid": "dce93a4d-8a1f-49b1-9d6d-fe1478aa3b99", "historyId": "c75e95c5293a2f59a8de238e57454e2c", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "24660ffd-5287-4734-b8c5-1f7ee959905b", "befores": [{"name": "module_name", "status": "passed", "start": 1721034597418, "stop": 1721034597418}], "start": 1721034597418, "stop": 1721034597451}
\ No newline at end of file
{"uuid": "b33bf5f6-a627-4f62-8445-c47c7d6087db", "befores": [{"name": "case_url", "status": "passed", "start": 1721034603353, "stop": 1721034603353}], "start": 1721034603353, "stop": 1721034603397}
\ No newline at end of file
{"uuid": "f0c9a3b3-d9d2-4110-9f56-d2a513fa6dc8", "befores": [{"name": "case_method", "status": "passed", "start": 1721034601225, "stop": 1721034601225}], "start": 1721034601225, "stop": 1721034601275}
\ No newline at end of file
{"uuid": "1aeb4949-2688-4fa5-8ab1-d6afd298722f", "befores": [{"name": "case_url", "status": "passed", "start": 1721034602304, "stop": 1721034602304}], "start": 1721034602304, "stop": 1721034602339}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过短", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D790D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert False == None\nE + where None = <built-in method get of dict object at 0x00000203D7E65AC0>('state')\nE + where <built-in method get of dict object at 0x00000203D7E65AC0> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...IsImlhdCI6MTcyMTAzNDUzMn0.tu06EnO4tD8z_gd1aVcpa8H9uPWBWnZkMTh_iri0E6FBDiLZjvteZ5l-bHzpjo0Gp4XQjiD8XrbdHG3t_BrKGQ', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...IsImlhdCI6MTcyMTAzNDUzMn0.tu06EnO4tD8z_gd1aVcpa8H9uPWBWnZkMTh_iri0E6FBDiLZjvteZ5l-bHzpjo0Gp4XQjiD8XrbdHG3t_BrKGQ', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D790D0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "5c29bb70-a38b-42f9-a3fd-7abe73e908c7-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "bd0c6c08-127e-4ffd-aeed-a50966bc850d-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码过短'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034590748, "stop": 1721034590790, "uuid": "d28ad5ac-a54b-4df7-817f-ab0b489a3a0f", "historyId": "423b926d9c9c8e8a56af3847b1819589", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
GET http://36.139.193.99:8088/refresh None None {'message': '刷新成功'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzUsImlhdCI6MTcyMTAzNDUzNX0.EWQ7C4SuS63E2IIJl_gfCgk16XVg_Z_m8o3mRp70XM1jNDBIYzYwy5okNX-9j5IQDSurUD9TsdwaQBvnCJhxSQ","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
GET http://36.139.193.99:8088/refresh None None {'message': '刷新成功'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMjA5MzYsImlhdCI6MTcyMTAzNDUzNn0.DY-ZBzr8K_Bb2KVq-ZyL2z9N6qXw4Jday3dIFbQalfdU0ur0gO3yuvFSLlJb7J9VqPw13FGiGTn755SgvJJikA","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
{"uuid": "ab9de1ee-e2f3-4274-87c6-3ddf73ac2d22", "befores": [{"name": "sql_data", "status": "passed", "start": 1721034601041, "stop": 1721034601041}], "start": 1721034601041, "stop": 1721034601070}
\ No newline at end of file
{"uuid": "fbe06348-3a82-4a2b-a60c-e95864e3c9cc", "befores": [{"name": "update_key", "status": "passed", "start": 1721034584127, "stop": 1721034584127}], "start": 1721034584127, "stop": 1721034584308}
\ No newline at end of file
{"uuid": "d256ce36-6921-4c1b-9783-ef19b61ba427", "befores": [{"name": "api_name", "status": "passed", "start": 1721034596129, "stop": 1721034596129}], "start": 1721034596129, "stop": 1721034596225}
\ No newline at end of file
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
INFO  root:__init__.py:79 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
ERROR  root:__init__.py:82 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "3736d5a8-37a9-4593-9b52-31dc20927889", "befores": [{"name": "update_key", "status": "passed", "start": 1721034603353, "stop": 1721034603353}], "start": 1721034603353, "stop": 1721034603394}
\ No newline at end of file
{"uuid": "7c550e18-e8a2-4e60-86ec-67dc2ae86dc5", "befores": [{"name": "expect_data", "status": "passed", "start": 1721034594025, "stop": 1721034594025}], "start": 1721034594025, "stop": 1721034594063}
\ No newline at end of file
{"uuid": "b617332f-19de-47e3-b621-f60bba0ac335", "befores": [{"name": "api_name", "status": "passed", "start": 1721034602304, "stop": 1721034602304}], "start": 1721034602304, "stop": 1721034602341}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment