re.html

Report generated on 07-Sep-2024 at 16:31:47 by pytest-html v3.1.0

Summary

31 tests ran in 2.81 seconds.

10 passed, 0 skipped, 21 failed, 0 errors, 0 expected failures, 0 unexpected passes, 0 rerun

Results

Result Test Duration Links
Failed test_case/test_brightlord/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-username为空-中-http://36.139.193.99:8088/auth-POST-application/json-case_data1-expect_data1-None-None-None] 0.05
self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B2949DEE0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username为空'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': ''}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'
E
E - 账号或密码错误
E + 账户错误或该租户未启用

test_case\test_brightlord\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B2949DEE0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username为空'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': ''}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_brightlord\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='},服务器返回数据为{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1832335462422388736"}
Failed test_case/test_brightlord/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-username为特殊字符-中-http://36.139.193.99:8088/auth-POST-application/json-case_data2-expect_data2-None-None-None] 0.06
self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B29854FE0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统'
title = '反向用例-username为特殊字符', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': '#!$!@#!@#'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'
E
E - 账号或密码错误
E + 账户错误或该租户未启用

test_case\test_brightlord\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B29854FE0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统'
title = '反向用例-username为特殊字符', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': '#!$!@#!@#'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_brightlord\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='},服务器返回数据为{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1832335463340941312"}
Failed test_case/test_brightlord/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-username过长-中-http://36.139.193.99:8088/auth-POST-application/json-case_data3-expect_data3-None-None-None] 0.05
self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B298C7890>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username过长'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminadminadminadminadminadminadminadminadmin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'
E
E - 账号或密码错误
E + 账户错误或该租户未启用

test_case\test_brightlord\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B298C7890>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username过长'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminadminadminadminadminadminadminadminadmin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_brightlord\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='},服务器返回数据为{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1832335463668097024"}
Failed test_case/test_brightlord/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-username短-中-http://36.139.193.99:8088/auth-POST-json-case_data4-expect_data4-None-None-None] 0.06
self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B2984C500>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username短'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'a'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'
E
E - 账号或密码错误
E + 账户错误或该租户未启用

test_case\test_brightlord\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B2984C500>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username短'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'a'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_brightlord\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='},服务器返回数据为{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1832335463944921088"}
Failed test_case/test_brightlord/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-username错误-中-http://36.139.193.99:8088/auth-POST-application/json-case_data5-expect_data5-None-None-None] 0.05
self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B2984C6E0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username错误'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminxyz'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'
E
E - 账号或密码错误
E + 账户错误或该租户未启用

test_case\test_brightlord\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B2984C6E0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username错误'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminxyz'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_brightlord\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='},服务器返回数据为{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1832335464267882496"}
Failed test_case/test_brightlord/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-password过长-中-http://36.139.193.99:8088/auth-post-application/json-case_data8-expect_data8-None-None-None] 0.05
self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B29C920F0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-password过长'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'post', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...aEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn', 'username': 'admin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '解密密码异常,请检查RSA公钥和私钥配置' == '账号或密码错误'
E
E - 账号或密码错误
E + 解密密码异常,请检查RSA公钥和私钥配置

test_case\test_brightlord\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B29C920F0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-password过长'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'post', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...aEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn', 'username': 'admin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_brightlord\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'},服务器返回数据为{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1832335465073188864"}
Failed test_case/test_brightlord/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-password过短-中-http://36.139.193.99:8088/auth-POST-application/json-case_data9-expect_data9-None-None-None] 0.05
self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B29C92060>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-password过短'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json', case_data = {'password': '123456', 'username': 'admin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '解密密码异常,请检查RSA公钥和私钥配置' == '账号或密码错误'
E
E - 账号或密码错误
E + 解密密码异常,请检查RSA公钥和私钥配置

test_case\test_brightlord\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B29C92060>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-password过短'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json', case_data = {'password': '123456', 'username': 'admin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_brightlord\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'admin', 'password': '123456'},服务器返回数据为{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1832335465354207232"}
Failed test_case/test_brightlord/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-password错误-中-http://36.139.193.99:8088/auth-POST-application/json-case_data10-expect_data10-None-None-None] 0.06
self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B29C91FD0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-password错误'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ', 'username': 'admin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert None == '账号或密码错误'
E + where None = <built-in method get of dict object at 0x0000022B29E38780>('message')
E + where <built-in method get of dict object at 0x0000022B29E38780> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTIsImlhdCI6MTcyNTY5Nzc5Mn0.NSjZuPLy3RWbBec8Di_zypHJxkZUd36z5ZJZzr22SGECtPAiZ-ed9SmcT0q6wN0vLB55UonAjebX6_2sWn-kww', ...}.get
E + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTIsImlhdCI6MTcyNTY5Nzc5Mn0.NSjZuPLy3RWbBec8Di_zypHJxkZUd36z5ZJZzr22SGECtPAiZ-ed9SmcT0q6wN0vLB55UonAjebX6_2sWn-kww', ...} = json()
E + where json = <Response [200]>.json

test_case\test_brightlord\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B29C91FD0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-password错误'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ', 'username': 'admin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_brightlord\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'},服务器返回数据为{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTIsImlhdCI6MTcyNTY5Nzc5Mn0.NSjZuPLy3RWbBec8Di_zypHJxkZUd36z5ZJZzr22SGECtPAiZ-ed9SmcT0q6wN0vLB55UonAjebX6_2sWn-kww","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
Failed test_case/test_brightlord/test_bpm.py::TestBpm::test_bpm[认证接口-刷新token-正向用例-高-http://36.139.193.99:8088/refresh-GET-None-None-expect_data11-None-None-None] 0.05
self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B29C91F40>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '刷新token', title = '正向用例'
level = '高', url = 'http://36.139.193.99:8088/refresh', method = 'GET', mime = None, case_data = None, expect_data = {'message': '刷新token成功'}, sql_type = None
sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert None == '刷新token成功'
E + where None = <built-in method get of dict object at 0x0000022B29E38680>('message')
E + where <built-in method get of dict object at 0x0000022B29E38680> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTIsImlhdCI6MTcyNTY5Nzc5Mn0.NSjZuPLy3RWbBec8Di_zypHJxkZUd36z5ZJZzr22SGECtPAiZ-ed9SmcT0q6wN0vLB55UonAjebX6_2sWn-kww', ...}.get
E + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTIsImlhdCI6MTcyNTY5Nzc5Mn0.NSjZuPLy3RWbBec8Di_zypHJxkZUd36z5ZJZzr22SGECtPAiZ-ed9SmcT0q6wN0vLB55UonAjebX6_2sWn-kww', ...} = json()
E + where json = <Response [200]>.json

test_case\test_brightlord\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_brightlord.test_bpm.TestBpm object at 0x0000022B29C91F40>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B2985AB10>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29858950>, module_name = '认证接口', api_name = '刷新token', title = '正向用例'
level = '高', url = 'http://36.139.193.99:8088/refresh', method = 'GET', mime = None, case_data = None, expect_data = {'message': '刷新token成功'}, sql_type = None
sql_data = None, update_key = None

@allure.epic("BPM项目-brightlord")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_brightlord\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/refresh,期望数据为{'message': '刷新token成功'},用例数据为None,服务器返回数据为{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTIsImlhdCI6MTcyNTY5Nzc5Mn0.NSjZuPLy3RWbBec8Di_zypHJxkZUd36z5ZJZzr22SGECtPAiZ-ed9SmcT0q6wN0vLB55UonAjebX6_2sWn-kww","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
Failed test_case/test_darkknight/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-username为空-中-http://36.139.193.99:8088/auth-POST-application/json-case_data1-expect_data1-None-None-None] 0.05
self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF5A00>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username为空'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': ''}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'
E
E - 账号或密码错误
E + 账户错误或该租户未启用

test_case\test_darkknight\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF5A00>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username为空'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': ''}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_darkknight\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='},服务器返回数据为{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1832335466755104768"}
Failed test_case/test_darkknight/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-username为特殊字符-中-http://36.139.193.99:8088/auth-POST-application/json-case_data2-expect_data2-None-None-None] 0.05
self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF5490>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统'
title = '反向用例-username为特殊字符', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': '#!$!@#!@#'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'
E
E - 账号或密码错误
E + 账户错误或该租户未启用

test_case\test_darkknight\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF5490>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统'
title = '反向用例-username为特殊字符', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': '#!$!@#!@#'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_darkknight\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='},服务器返回数据为{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1832335467065483264"}
Failed test_case/test_darkknight/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-username过长-中-http://36.139.193.99:8088/auth-POST-application/json-case_data3-expect_data3-None-None-None] 0.05
self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF5400>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username过长'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminadminadminadminadminadminadminadminadmin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'
E
E - 账号或密码错误
E + 账户错误或该租户未启用

test_case\test_darkknight\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF5400>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username过长'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminadminadminadminadminadminadminadminadmin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_darkknight\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='},服务器返回数据为{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1832335467359084544"}
Failed test_case/test_darkknight/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-username短-中-http://36.139.193.99:8088/auth-POST-json-case_data4-expect_data4-None-None-None] 0.06
self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF5370>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username短'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'a'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'
E
E - 账号或密码错误
E + 账户错误或该租户未启用

test_case\test_darkknight\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF5370>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username短'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'a'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_darkknight\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='},服务器返回数据为{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1832335467707211776"}
Failed test_case/test_darkknight/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-username错误-中-http://36.139.193.99:8088/auth-POST-application/json-case_data5-expect_data5-None-None-None] 0.05
self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF5040>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username错误'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminxyz'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'
E
E - 账号或密码错误
E + 账户错误或该租户未启用

test_case\test_darkknight\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF5040>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-username错误'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminxyz'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_darkknight\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='},服务器返回数据为{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1832335468000813056"}
Failed test_case/test_darkknight/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-password过长-中-http://36.139.193.99:8088/auth-post-application/json-case_data8-expect_data8-None-None-None] 0.05
self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF4E90>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-password过长'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'post', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...aEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn', 'username': 'admin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '解密密码异常,请检查RSA公钥和私钥配置' == '账号或密码错误'
E
E - 账号或密码错误
E + 解密密码异常,请检查RSA公钥和私钥配置

test_case\test_darkknight\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF4E90>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-password过长'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'post', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...aEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn', 'username': 'admin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_darkknight\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'},服务器返回数据为{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1832335468806119424"}
Failed test_case/test_darkknight/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-password过短-中-http://36.139.193.99:8088/auth-POST-application/json-case_data9-expect_data9-None-None-None] 0.04
self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF4B60>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-password过短'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json', case_data = {'password': '123456', 'username': 'admin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '解密密码异常,请检查RSA公钥和私钥配置' == '账号或密码错误'
E
E - 账号或密码错误
E + 解密密码异常,请检查RSA公钥和私钥配置

test_case\test_darkknight\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF4B60>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-password过短'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json', case_data = {'password': '123456', 'username': 'admin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_darkknight\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'admin', 'password': '123456'},服务器返回数据为{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1832335469045194752"}
Failed test_case/test_darkknight/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-password错误-中-http://36.139.193.99:8088/auth-POST-application/json-case_data10-expect_data10-None-None-None] 0.06
self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF4AD0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-password错误'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ', 'username': 'admin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert None == '账号或密码错误'
E + where None = <built-in method get of dict object at 0x0000022B29E58900>('message')
E + where <built-in method get of dict object at 0x0000022B29E58900> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTMsImlhdCI6MTcyNTY5Nzc5M30.SKi0dzxq9rMGnpzcOxWm5Nc8Fg8sksJqRsQeftBZkxLpI2xN60brnHNYq7ThKz5ejb2ZQFulCxKJ1ec1_90EtA', ...}.get
E + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTMsImlhdCI6MTcyNTY5Nzc5M30.SKi0dzxq9rMGnpzcOxWm5Nc8Fg8sksJqRsQeftBZkxLpI2xN60brnHNYq7ThKz5ejb2ZQFulCxKJ1ec1_90EtA', ...} = json()
E + where json = <Response [200]>.json

test_case\test_darkknight\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF4AD0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '登录系统', title = '反向用例-password错误'
level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'
case_data = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ', 'username': 'admin'}
expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_darkknight\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'},服务器返回数据为{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTMsImlhdCI6MTcyNTY5Nzc5M30.SKi0dzxq9rMGnpzcOxWm5Nc8Fg8sksJqRsQeftBZkxLpI2xN60brnHNYq7ThKz5ejb2ZQFulCxKJ1ec1_90EtA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
Failed test_case/test_darkknight/test_bpm.py::TestBpm::test_bpm[认证接口-刷新token-正向用例-高-http://36.139.193.99:8088/refresh-GET-None-None-expect_data11-None-None-None] 0.05
self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF4A10>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '刷新token', title = '正向用例'
level = '高', url = 'http://36.139.193.99:8088/refresh', method = 'GET', mime = None, case_data = None, expect_data = {'message': '刷新token成功'}, sql_type = None
sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert None == '刷新token成功'
E + where None = <built-in method get of dict object at 0x0000022B29E28940>('message')
E + where <built-in method get of dict object at 0x0000022B29E28940> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTMsImlhdCI6MTcyNTY5Nzc5M30.SKi0dzxq9rMGnpzcOxWm5Nc8Fg8sksJqRsQeftBZkxLpI2xN60brnHNYq7ThKz5ejb2ZQFulCxKJ1ec1_90EtA', ...}.get
E + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTMsImlhdCI6MTcyNTY5Nzc5M30.SKi0dzxq9rMGnpzcOxWm5Nc8Fg8sksJqRsQeftBZkxLpI2xN60brnHNYq7ThKz5ejb2ZQFulCxKJ1ec1_90EtA', ...} = json()
E + where json = <Response [200]>.json

test_case\test_darkknight\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_darkknight.test_bpm.TestBpm object at 0x0000022B29CF4A10>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29E8CD70>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B298852B0>, module_name = '认证接口', api_name = '刷新token', title = '正向用例'
level = '高', url = 'http://36.139.193.99:8088/refresh', method = 'GET', mime = None, case_data = None, expect_data = {'message': '刷新token成功'}, sql_type = None
sql_data = None, update_key = None

@allure.epic("BPM项目-darkknight")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_darkknight\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/refresh,期望数据为{'message': '刷新token成功'},用例数据为None,服务器返回数据为{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTMsImlhdCI6MTcyNTY5Nzc5M30.SKi0dzxq9rMGnpzcOxWm5Nc8Fg8sksJqRsQeftBZkxLpI2xN60brnHNYq7ThKz5ejb2ZQFulCxKJ1ec1_90EtA","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
Failed test_case/test_demo/test_bpm.py::TestBpm::test_bpm[维度管理-添加维度-正向用例-高-http://36.139.193.99:8088/api/demension/v1/dem/addDem-post-application/json-case_data0-expect_data0-delete-sql_data0-None] 0.11
self = <apiAutoTest_v4.test_case.test_demo.test_bpm.TestBpm object at 0x0000022B29D1E8D0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29EB9D60>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29EB8EF0>, module_name = '维度管理', api_name = '添加维度', title = '正向用例', level = '高'
url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', method = 'post', mime = 'application/json'
case_data = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}, expect_data = {'message': '添加维度成功'}
sql_type = 'delete', sql_data = {'delete': 'dELETE FROM uc_demension WHERE `CODE_`="requestsAddDem";'}, update_key = None

@allure.epic("BPM项目-Demo")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '添加维度成功!' == '添加维度成功'
E
E - 添加维度成功
E + 添加维度成功!
E ? +

test_case\test_demo\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_demo.test_bpm.TestBpm object at 0x0000022B29D1E8D0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29EB9D60>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29EB8EF0>, module_name = '维度管理', api_name = '添加维度', title = '正向用例', level = '高'
url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', method = 'post', mime = 'application/json'
case_data = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}, expect_data = {'message': '添加维度成功'}
sql_type = 'delete', sql_data = {'delete': 'dELETE FROM uc_demension WHERE `CODE_`="requestsAddDem";'}, update_key = None

@allure.epic("BPM项目-Demo")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_demo\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/api/demension/v1/dem/addDem,期望数据为{'message': '添加维度成功'},用例数据为{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'},服务器返回数据为{"state":true,"message":"添加维度成功!","value":"","code":200}
Failed test_case/test_demo/test_bpm.py::TestBpm::test_bpm[维度管理-更新维度-正向用例-中-http://36.139.193.99:8088/api/demension/v1/dem/updateDem-put-json-case_data1-expect_data1-None-None-None] 0.04
self = <apiAutoTest_v4.test_case.test_demo.test_bpm.TestBpm object at 0x0000022B29CAF2F0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29EB9D60>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29EB8EF0>, module_name = '维度管理', api_name = '更新维度', title = '正向用例', level = '中'
url = 'http://36.139.193.99:8088/api/demension/v1/dem/updateDem', method = 'put', mime = 'json'
case_data = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}, expect_data = {'message': '更新维度成功'}, sql_type = None
sql_data = None, update_key = None

@allure.epic("BPM项目-Demo")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '更新维度成功!' == '更新维度成功'
E
E - 更新维度成功
E + 更新维度成功!
E ? +

test_case\test_demo\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_demo.test_bpm.TestBpm object at 0x0000022B29CAF2F0>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29EB9D60>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29EB8EF0>, module_name = '维度管理', api_name = '更新维度', title = '正向用例', level = '中'
url = 'http://36.139.193.99:8088/api/demension/v1/dem/updateDem', method = 'put', mime = 'json'
case_data = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}, expect_data = {'message': '更新维度成功'}, sql_type = None
sql_data = None, update_key = None

@allure.epic("BPM项目-Demo")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_demo\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/api/demension/v1/dem/updateDem,期望数据为{'message': '更新维度成功'},用例数据为{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'},服务器返回数据为{"state":true,"message":"更新维度成功!","value":"","code":200}
Failed test_case/test_demo/test_bpm.py::TestBpm::test_bpm[组织管理-添加组织-正向用例-高-http://36.139.193.99:8088/api/org/v1/org/addOrg-POST-json-case_data2-expect_data2-delete|select-sql_data2-demId] 0.06
self = <apiAutoTest_v4.test_case.test_demo.test_bpm.TestBpm object at 0x0000022B29CAEF00>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29EB9D60>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29EB8EF0>, module_name = '组织管理', api_name = '添加组织', title = '正向用例', level = '高'
url = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', method = 'POST', mime = 'json'
case_data = {'code': 'testAddOrg', 'demId': '1832335470131519488', 'exceedLimitNum': 0, 'grade': '', ...}, expect_data = {'message': '添加组织成功'}
sql_type = 'delete|select'
sql_data = {'delete': 'delete from uc_org where CODE_="testAddOrg";', 'select': 'select ID_ from uc_demension where CODE_="requestsAddDem"; '}, update_key = 'demId'

@allure.epic("BPM项目-Demo")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
> assert res.json().get(key) == expect_data[key]
E AssertionError: assert '添加组织成功!' == '添加组织成功'
E
E - 添加组织成功
E + 添加组织成功!
E ? +

test_case\test_demo\test_bpm.py:64: AssertionError

During handling of the above exception, another exception occurred:

self = <apiAutoTest_v4.test_case.test_demo.test_bpm.TestBpm object at 0x0000022B29CAEF00>, fix_db = <apiAutoTest_v4.common.db.DB object at 0x0000022B29EB9D60>
fix_req = <apiAutoTest_v4.request_method.request_method.RequestMethod object at 0x0000022B29EB8EF0>, module_name = '组织管理', api_name = '添加组织', title = '正向用例', level = '高'
url = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', method = 'POST', mime = 'json'
case_data = {'code': 'testAddOrg', 'demId': '1832335470131519488', 'exceedLimitNum': 0, 'grade': '', ...}, expect_data = {'message': '添加组织成功'}
sql_type = 'delete|select'
sql_data = {'delete': 'delete from uc_org where CODE_="testAddOrg";', 'select': 'select ID_ from uc_demension where CODE_="requestsAddDem"; '}, update_key = 'demId'

@allure.epic("BPM项目-Demo")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("用例标题")
# @allure.severity("用例等级")
@pytest.mark.parametrize("module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key", excel.get_data())
def test_bpm(self, fix_db, fix_req, module_name, api_name, title, level, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(title)
allure.dynamic.severity(level)

# 判断sql语句类型是否为delete
if sql_type == "delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])

# 判断sql语句类型是否为select
if sql_type == "select":
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 判断sql语句是否是delete|select 或 select|delete, 是则执行sql语句
if sql_type == "delete|select" or sql_type == "select|delete":
# 使用fix_db调用DB类对象的delete方法执行sql语句
fix_db.delete(sql_data['delete'])
# 使用fix_db调用DB类对象的select方法执行sql语句
res_select = fix_db.select(sql_data['select'])
# 将查询到的结果更新到用例数据中去
case_data[update_key] = res_select

# 使用RequestMethod对象调用request_all方法发送请求
res = RequestMethod().request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)

# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,接口为{url},期望数据为{expect_data},用例数据为{case_data},服务器返回数据为{res.text}")
> raise AssertionError("断言失败")
E AssertionError: 断言失败

test_case\test_demo\test_bpm.py:67: AssertionError
-------------------------------Captured log call--------------------------------
ERROR why:test_bpm.py:66 断言失败,接口为http://36.139.193.99:8088/api/org/v1/org/addOrg,期望数据为{'message': '添加组织成功'},用例数据为{'code': 'testAddOrg', 'demId': '1832335470131519488', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},服务器返回数据为{"state":true,"message":"添加组织成功!","value":"","code":200}
Passed test_case/test_brightlord/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-登录的正向用例-高-http://36.139.193.99:8088/auth-POST-application/json-case_data0-expect_data0-None-None-None] 0.21
-------------------------------Captured log call--------------------------------
INFO why:test_bpm.py:69 断言成功,接口为http://36.139.193.99:8088/auth,期望数据为{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True},用例数据为{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='},服务器返回数据为{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTEsImlhdCI6MTcyNTY5Nzc5MX0.bKr1eDcWwtvJuwrF6IZxv_xYEfw2vBChZG7G0GcSL6rkBCj-fNhgmyRLfMnSnFQiCYDd-HnWodiibFPcN_4T2A","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
Passed test_case/test_brightlord/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-password为空-中-http://36.139.193.99:8088/auth-POST-application/json-case_data6-expect_data6-None-None-None] 0.06
-------------------------------Captured log call--------------------------------
INFO why:test_bpm.py:69 断言成功,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'admin', 'password': ''},服务器返回数据为{"state":false,"message":"账号或密码错误","code":200,"logId":"1832335464561483776"}
Passed test_case/test_brightlord/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-password为特殊字符-中-http://36.139.193.99:8088/auth-POST-application/json-case_data7-expect_data7-None-None-None] 0.06
-------------------------------Captured log call--------------------------------
INFO why:test_bpm.py:69 断言成功,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'admin', 'password': '#!$!@#!@#'},服务器返回数据为{"state":false,"message":"账号或密码错误","code":200,"logId":"1832335464842502144"}
Passed test_case/test_darkknight/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-登录的正向用例-高-http://36.139.193.99:8088/auth-POST-application/json-case_data0-expect_data0-None-None-None] 0.12
-------------------------------Captured log call--------------------------------
INFO why:test_bpm.py:69 断言成功,接口为http://36.139.193.99:8088/auth,期望数据为{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True},用例数据为{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='},服务器返回数据为{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU3ODQxOTMsImlhdCI6MTcyNTY5Nzc5M30.SKi0dzxq9rMGnpzcOxWm5Nc8Fg8sksJqRsQeftBZkxLpI2xN60brnHNYq7ThKz5ejb2ZQFulCxKJ1ec1_90EtA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
Passed test_case/test_darkknight/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-password为空-中-http://36.139.193.99:8088/auth-POST-application/json-case_data6-expect_data6-None-None-None] 0.05
-------------------------------Captured log call--------------------------------
INFO why:test_bpm.py:69 断言成功,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'admin', 'password': ''},服务器返回数据为{"state":false,"message":"账号或密码错误","code":200,"logId":"1832335468269248512"}
Passed test_case/test_darkknight/test_bpm.py::TestBpm::test_bpm[认证接口-登录系统-反向用例-password为特殊字符-中-http://36.139.193.99:8088/auth-POST-application/json-case_data7-expect_data7-None-None-None] 0.06
-------------------------------Captured log call--------------------------------
INFO why:test_bpm.py:69 断言成功,接口为http://36.139.193.99:8088/auth,期望数据为{'message': '账号或密码错误'},用例数据为{'username': 'admin', 'password': '#!$!@#!@#'},服务器返回数据为{"state":false,"message":"账号或密码错误","code":200,"logId":"1832335468558655488"}
Passed test_case/test_demo/test_bpm.py::TestBpm::test_bpm[组织管理-用户加入组织-正向用例-高-http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg-POST-query-case_data3-expect_data3-None-None-None] 0.07
-------------------------------Captured log call--------------------------------
INFO why:test_bpm.py:69 断言成功,接口为http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg,期望数据为{'message': '加入成功'},用例数据为{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'},服务器返回数据为{"state":true,"message":"加入成功","value":"","code":200}
Passed test_case/test_demo/test_bpm.py::TestBpm::test_bpm[组织管理-保存组织参数-正向用例-中-http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams-POST-query|json-case_data4-expect_data4-None-None-None] 0.06
-------------------------------Captured log call--------------------------------
INFO why:test_bpm.py:69 断言成功,接口为http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams,期望数据为{'message': '保存组织参数成功!'},用例数据为{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]},服务器返回数据为{"state":true,"message":"保存组织参数成功!","value":"","code":200}
Passed test_case/test_demo/test_bpm.py::TestBpm::test_bpm[组织管理-删除组织-正向用例-中-http://36.139.193.99:8088/api/org/v1/org/deleteOrg-POST-form-testAddOrg-expect_data5-None-None-None] 0.06
-------------------------------Captured log call--------------------------------
INFO why:test_bpm.py:69 断言成功,接口为http://36.139.193.99:8088/api/org/v1/org/deleteOrg,期望数据为{'message': '删除组织成功!'},用例数据为testAddOrg,服务器返回数据为{"state":true,"message":"删除组织成功!","value":"","code":200}
Passed test_case/test_demo/test_bpm.py::TestBpm::test_bpm[维度管理-根据维度编码删除维度-正向用例-中-http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds-delete-query-case_data6-expect_data6-select-sql_data6-ids] 0.05
-------------------------------Captured log call--------------------------------
INFO why:test_bpm.py:69 断言成功,接口为http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds,期望数据为{'message': '删除维度成功!'},用例数据为{'ids': '1832335470131519488'},服务器返回数据为{"state":true,"message":"删除维度成功!","value":"","code":200}