Commit 7704578b by Lin

pytest_API_test_framework

parent 8cac4ad3
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description: 设置日志
-----------------(❁´◡`❁)---------------------------------------------------
"""
import logging
import os
import time
import functools
def api_log():
# 创建Logger对象 root
logger = logging.getLogger()
# 设置级别
logger.level = logging.INFO
# 日志文件存放的路径
log_dir_path = os.path.join(os.path.join(os.path.dirname(__file__), "report"), "log")
log_file_name = time.strftime("%Y-%m-%d %H-%M-%S", time.localtime()) + ".log"
log_path = os.path.join(log_dir_path, log_file_name)
# 创建日志文件的Handler对象
handler = logging.FileHandler(filename=log_path, mode="a", encoding="utf-8")
# 设置日志显示的格式
formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
# 给Handler设置日志的格式
handler.setFormatter(formatter)
# 给Logger添加Handler对象
logger.addHandler(handler)
return logger
log = api_log()
def logor(func_name):
@functools.wraps(func_name)
def inner(*args, **kwargs):
log.info(f"py文件为{func_name.__code__.co_filename},第{func_name.__code__.co_firstlineno}行,"
f"执行的功能为{func_name.__name__},功能描述为{func_name.__doc__},形参为{args}或{kwargs}")
try:
result = func_name(*args, **kwargs)
except Exception as e:
log.error(
f"py文件为{func_name.__code__.co_filename},第{func_name.__code__.cofirstlineno}行,错误类型{type(e)},错误描述{e},"
f"执行的功能为{func_name.__name__},功能描述为{func_name.__doc__},形参为{args}或{kwargs}")
raise e
else:
return result
return inner
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description:
-----------------(❁´◡`❁)---------------------------------------------------
"""
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description: 数据库的连接
-----------------(❁´◡`❁)---------------------------------------------------
"""
import pymysql
from APIAutomaticTesting import log, logor
from APIAutomaticTesting.common.read_basic_ini import ReadBasicIni
class DB:
def __init__(self):
"""连接数据库"""
ini = ReadBasicIni()
try:
self.conn = pymysql.connect(
host=ini.get_connect_sql_msg("host"),
port=int(ini.get_connect_sql_msg("port")),
user=ini.get_connect_sql_msg("user"),
password=ini.get_connect_sql_msg("pwd"),
database=ini.get_connect_sql_msg("database"),
charset="utf8"
)
self.cursor = self.conn.cursor()
except Exception as e:
log.error(f"链接数据库时出错,请求检查ini配置文件,发生的错误类型为:{type(e)}, 错误的描述为:{e}")
raise e
def delete(self, sql_sentence):
"""执行删除的sql语句"""
log.info(f"执行的方法为:delete,功能描述为:执行删除的sql语句,传入的参数为:{sql_sentence}")
if isinstance(sql_sentence, str) and sql_sentence.strip().lower().startswith("delete"):
try:
self.cursor.execute(sql_sentence)
self.conn.commit()
except Exception as e:
log.error(
f"执行的方法为:delete,功能描述为:执行删除的sql语句,传入的参数为:{sql_sentence}, 错误类型为:{type(e)}, 错误的描述为:{e}")
raise e
else:
log.error(f"执行的方法为:delete,功能描述为:执行删除的sql语句,传入的参数为:{sql_sentence}, 错误类型为:ValueError, 错误的描述为:sql语句错误")
raise ValueError("sql语句错误")
def select(self, sql_sentence):
"""执行查询的sql语句"""
log.info(f"执行的方法为:select,功能描述为:执行查询的sql语句,传入的参数为:{sql_sentence}")
if isinstance(sql_sentence, str) and sql_sentence.strip().lower().startswith("select"):
try:
self.cursor.execute(sql_sentence)
except Exception as e:
log.error(
f"执行的方法为:select,功能描述为:执行查询的sql语句,传入的参数为:{sql_sentence}, 错误类型为:{type(e)}, 错误的描述为:{e}")
raise e
else:
select_result = self.cursor.fetchall()
if select_result:
return select_result[0][0]
else:
log.error(f"执行的方法为:select,功能描述为:执行查询的sql语句,传入的参数为:{sql_sentence}, 错误类型为:ValueError, 错误的描述为:sql语句错误")
raise ValueError("sql语句错误")
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description: 读取公共的ini文件
-----------------(❁´◡`❁)---------------------------------------------------
"""
import configparser
import os
from APIAutomaticTesting import log, logor
class ReadBasicIni:
def __init__(self):
"""读取ini文件"""
self.data_config = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config")
ini_path = os.path.join(self.data_config, "basic_config.ini")
self.conf = configparser.ConfigParser()
self.conf.read(ini_path, encoding="utf-8")
def get_host(self, key):
"""根据key获取host节点下被测系统的域名"""
log.info(f"执行get_host方法,功能为:根据key获取host节点下被测系统的域名, 传入的参数为:{key}")
try:
return self.conf.get("host", key)
except Exception as e:
log.info(f"执行get_host方法,功能为:根据key获取host节点下被测系统的域名, 传入的参数为:{key}"
f"发生错误,错误的类型为:{type(e)}, 错误的描述为:{e}")
raise e
def get_connect_sql_msg(self, key):
"""根据key获取sql节点下数据库的连接信息"""
log.info(f"执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:{key}")
try:
return self.conf.get("sql", key)
except Exception as e:
log.info(f"执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:{key}"
f"发生错误,错误的类型为:{type(e)}, 错误的描述为:{e}")
raise e
if __name__ == '__main__':
ini = ReadBasicIni()
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description: 读取excel文件
-----------------(❁´◡`❁)---------------------------------------------------
"""
import openpyxl
from APIAutomaticTesting import log, logor
from APIAutomaticTesting.data_config.settings import *
from APIAutomaticTesting.common.read_basic_ini import ReadBasicIni
from APIAutomaticTesting.common.read_user_ini import ReadUserIni
from APIAutomaticTesting.common.read_json import read_json
class ReadExcel:
@logor
def __init__(self, user):
"""读取所有的json文件,获取excel的工作簿和工作表"""
# 读取指定用户的ini文件
ini = ReadUserIni(user)
# 获取指定用户的存放数据的json文件路径
case_data_path = ini.get_file_path("case")
expect_data_path = ini.get_file_path("expect")
sql_data_path = ini.get_file_path("sql")
self.case_data_dict = read_json(case_data_path)
self.expect_data_dict = read_json(expect_data_path)
self.sql_data_dict = read_json(sql_data_path)
# 获取指定用户的excel文件路径
excel_path = ini.get_file_path("excel")
# 获取指定用户的工作表名称
table_name = ini.get_table_name("name")
try:
wb = openpyxl.load_workbook(excel_path)
self.ws = wb[table_name]
except Exception as e:
raise e
@logor
def __get_cell_value(self, column: str, row: int) -> str:
"""获取指定单元格数据"""
try:
cell_value = self.ws[column+str(row)].value
except Exception as e:
raise e
else:
if cell_value is None:
return None
elif cell_value.strip():
return cell_value.strip()
@logor
def module_name(self, row):
"""根据行号,获取模块名称"""
return self.__get_cell_value("B", row)
@logor
def api_name(self, row):
"""根据行号,获取接口名称"""
return self.__get_cell_value("c", row)
@logor
def case_title(self, row):
"""根据行号,获取用例的标题"""
return (self.__get_cell_value("D", row))
@logor
def case_level(self, row):
"""根据行号,获取用例的等级"""
return self.__get_cell_value("e", row)
@logor
def req_method(self, row):
"""根据行号,获取用例的请求方法"""
return self.__get_cell_value("f", row)
@logor
def req_url(self, row):
"""根据行号,获取用例的请求url"""
path = self.__get_cell_value("g", row)
if path:
# 创建ReadBasicIni类对象,调用get_host获取被测系统的域名,在和接口路径拼接完整的url
return ReadBasicIni().get_host("bpm") + path
@logor
def req_mime(self, row):
"""根据行号,获取用例的请求媒体类型"""
mime = self.__get_cell_value("h", row)
if mime:
return mime.lower()
@logor
def case_data(self, row):
"""根据行号,获取用例数据"""
case_data_key = self.__get_cell_value("i", row)
module_name = self.module_name(row)
api_name = self.api_name(row)
if case_data_key and module_name and api_name:
return self.case_data_dict[module_name][api_name][case_data_key]
@logor
def expect_data(self, row):
"""根据行号,获取期望数据"""
expect_data_key = self.__get_cell_value("j", row)
module_name = self.module_name(row)
api_name = self.api_name(row)
if expect_data_key and module_name and api_name:
return self.expect_data_dict[module_name][api_name][expect_data_key]
@logor
def sql_type(self, row):
"""根据行号,获取sql语句类型"""
value = self.__get_cell_value("k", row)
if value:
return value.lower()
@logor
def sql_data(self, row):
"""根据行号,获取sql语句"""
sql_data_key = self.__get_cell_value("l", row)
module_name = self.module_name(row)
api_name = self.api_name(row)
if sql_data_key and module_name and api_name:
return self.sql_data_dict[module_name][api_name][sql_data_key]
@logor
def update_key(self, row):
"""根据行号,获取用例的更新的key"""
return self.__get_cell_value("m", row)
def get_data(self):
"""将测试使用到的数据存放在二维列表中"""
list_data = []
for row in range(2, self.ws.max_row+1):
method = self.req_method(row)
url = self.req_url(row)
mime = self.req_mime(row)
case_data = self.case_data(row)
expect_data = self.expect_data(row)
sql_type = self.sql_type(row)
sql_data = self.sql_data(row)
update_key = self.update_key(row)
module = self.module_name(row)
api = self.api_name(row)
title = self.__get_cell_value("D", row)
level = self.__get_cell_value("E", row)
if method and url and expect_data:
list_data.append([method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level])
else:
return list_data
if __name__ == '__main__':
excel = ReadExcel("Kumiko")
print(excel.get_data())
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:19
--Description: 读取json文件
-----------------(❁´◡`❁)---------------------------------------------------
"""
import json
import os
from APIAutomaticTesting import log, logor
def read_json(file_path):
"""读取json文件,将json文件的内容序列化为python对象在返回"""
log.info(f"执行的函数为:read_json,描述为:读取json文件,将json文件的内容序列化为python对象在返回,传入的参数为:{file_path}")
if isinstance(file_path, str) and os.path.isfile(file_path) and file_path.endswith(".json"):
with open(file_path, mode="r", encoding="utf-8") as f:
try:
return json.loads(f.read())
except Exception as e:
log.error(
f"执行的函数为:read_json,描述为:读取json文件,将json文件的内容序列化为python对象在返回,传入的参数为:{file_path}, 文件路径不存在"
f"错误类型为:{type(e)}, 错误的描述为:{e}")
raise e
else:
log.error(f"执行的函数为:read_json,描述为:读取json文件,将json文件的内容序列化为python对象在返回,传入的参数为:{file_path}, 文件路径不存在"
f"错误类型为:FileNotFoundError, 错误的描述为:文件路径错误")
raise FileNotFoundError("文件路径错误")
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:01
--Description: 读取用户个人的ini文件
-----------------(❁´◡`❁)---------------------------------------------------
"""
import configparser
import os
from APIAutomaticTesting import log, logor
class ReadUserIni:
def __init__(self, user):
"""读取ini文件, 需要指明读取哪个用户的ini配置文件"""
# 获取数据配置层的路径
data_config = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config")
# 获取用户存放数据的目录路径
self.user_data_config = os.path.join(data_config, user)
# 获取用户的ini文件路径
ini_path = os.path.join(self.user_data_config, "config.ini")
self.conf = configparser.ConfigParser()
res = self.conf.read(ini_path, encoding="utf-8")
if not res:
log.error(f"读取ini文件失败,请检查用户名是否传入正确,用户名为:{user}, 对应的ini文件路径为:{ini_path}")
raise ValueError("用户名错误")
@logor
def get_file_path(self, key):
"""根据key获取file节点下文件的路径"""
try:
file_name = self.conf.get("file", key)
except Exception as e:
raise e
else:
return os.path.join(self.user_data_config, file_name)
@logor
def get_table_name(self, key):
"""根据key获取table节点下工作表的名称"""
try:
return self.conf.get("table", key)
except Exception as e:
raise e
if __name__ == '__main__':
ini = ReadUserIni("Kumiko")
\ No newline at end of file
{
"认证接口": {
"登录系统": {
"LoginSuccess": {
"username": "admin",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
},
"LoginErrorPasswordIsError": {
"username": "admin",
"password": "dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
},
"LoginErrorPasswordIsLong": {
"username": "admin",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
},
"LoginErrorPasswordIsShort": {
"username": "admin",
"password": "a"
},
"LoginErrorPasswordIsSpecial": {
"username": "admin",
"password": "✿❀♧♡♥"
},
"LoginErrorPasswordIsNone": {
"username": "admin",
"password": ""
},
"LoginErrorUsernameIsNone": {
"username": "",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
},
"LoginErrorUsernameIsShort": {
"username": "a",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
},
"LoginErrorUsernameIsLong": {
"username": "adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
},
"LoginErrorUsernameIsSpecial": {
"username": "✿❀♧♡♥",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {
"code": "Kumiko",
"description": "Kumiko添加的维度",
"isDefault": 0,
"name": "Kumiko"
},
"AddDemErrorCodeIsNone": {
"code": "",
"description": "Kumiko1添加的维度",
"isDefault": 0,
"name": "Kumiko1"
},
"AddDemErrorCodeIsSpecial": {
"code": "✿❀♧♡♥",
"description": "Kumiko1添加的维度",
"isDefault": 0,
"name": "Kumiko1"
}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {
"ids": "需要更新"
},
"DeleteDemErrorIdIsNone": {
"ids": ""
}
},
"设置默认维度": {
"SetDefaultDemSuccess": {
"code": "Kumiko"
}
},
"更新维度": {
"UpdateDemSuccess": {
"code": "Kumiko",
"description": "Yukino添加的维度",
"isDefault": 0,
"name": "Yukino"
}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "Kumiko",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "高",
"limitNum": 0,
"name": "Kumiko",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"根据组织编码删除组织": {
"DelOrgSuccess": "Kumiko"
},
"保存组织参数": {
"SaveOrgParamSuccess": {
"query": {"orgCode": "Kumiko"},
"body": [{"alias": "sz", "value": 1}]
}
}
}
}
[file]
# 用例管理文件名称
excel=apiAutoTest.xlsx
# 用例json文件名称
case=case_data.json
# 期望数据名称名称
expect=expect_data.json
# sql语句文件的名称
sql=sql_data.json
# 工作表的名称
[table]
name=BPM接口测试
# 域名
[host]
bpm=http://36.139.193.99:8088
# 数据库
[sql]
host=36.139.193.99
port=3306
user=root
pwd=Rhrc@2024
database=eip8
\ No newline at end of file
{
"认证接口":{
"登录系统":{
"LoginSuccess":{"username":"超级管理员","account":"admin","userId":"1","loginStatus":true},
"LoginErrorPasswordIsError":{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置"},
"LoginErrorPasswordIsLong":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorPasswordIsShort":{"state":false,"message":"账号或密码错误"},
"LoginErrorPasswordIsSpecial":{"state":false,"message":"账号或密码错误"},
"LoginErrorPasswordIsNone":{"state":false,"message":"账号或密码错误"},
"LoginErrorUsernameIsNone":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsShort":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsLong":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsSpecial":{"state":false,"message":"账户错误或该租户未启用"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"state": true, "message": "添加维度成功!"},
"AddDemErrorCodeIsNone": {"state": false},
"AddDemErrorCodeIsSpecial": {"state": false, "message": "维度编码只能由数字、字母、下划线组成!"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"state":true,"message":"删除维度成功!"},
"DeleteDemErrorIdIsNone": {"state":false,"message":"删除维度失败,维度ids必填"}
},
"设置默认维度": {
"SetDefaultDemSuccess": {"state": true, "message": "设置默认维度成功!"}
},
"更新维度": {
"UpdateDemSuccess": {"state": true, "message": "更新维度成功!"}
}
},
"组织管理": {
"添加组织":{
"AddOrgSuccess": {"state": true, "message": "添加组织成功!"}
},
"根据组织编码删除组织": {
"DelOrgSuccess": {"state": true, "message": "删除组织成功!"}
},
"保存组织参数": {
"SaveOrgParamSuccess": {"state": true, "message": "保存组织参数成功!"}
}
}
}
{
"维度管理": {
"添加维度": {
"AddDemSuccess": "DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"delete":"DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";",
"select": "SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";"
}
}
}
}
\ No newline at end of file
{
"认证接口": {
"登录系统": {
"LoginSuccess": {
"username": "admin",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
},
"LoginErrorPasswordIsError": {
"username": "admin",
"password": "dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
},
"LoginErrorPasswordIsLong": {
"username": "admin",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
},
"LoginErrorPasswordIsShort": {
"username": "admin",
"password": "a"
},
"LoginErrorPasswordIsSpecial": {
"username": "admin",
"password": "✿❀♧♡♥"
},
"LoginErrorPasswordIsNone": {
"username": "admin",
"password": ""
},
"LoginErrorUsernameIsNone": {
"username": "",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
},
"LoginErrorUsernameIsShort": {
"username": "a",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
},
"LoginErrorUsernameIsLong": {
"username": "adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
},
"LoginErrorUsernameIsSpecial": {
"username": "✿❀♧♡♥",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="
}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {
"code": "Kumiko",
"description": "Kumiko添加的维度",
"isDefault": 0,
"name": "Kumiko"
},
"AddDemErrorCodeIsNone": {
"code": "",
"description": "Kumiko1添加的维度",
"isDefault": 0,
"name": "Kumiko1"
},
"AddDemErrorCodeIsSpecial": {
"code": "✿❀♧♡♥",
"description": "Kumiko1添加的维度",
"isDefault": 0,
"name": "Kumiko1"
}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {
"ids": "需要更新"
},
"DeleteDemErrorIdIsNone": {
"ids": ""
}
},
"设置默认维度": {
"SetDefaultDemSuccess": {
"code": "Kumiko"
}
},
"更新维度": {
"UpdateDemSuccess": {
"code": "Kumiko",
"description": "Yukino添加的维度",
"isDefault": 0,
"name": "Yukino"
}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "Kumiko",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "高",
"limitNum": 0,
"name": "Kumiko",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"根据组织编码删除组织": {
"DelOrgSuccess": "Kumiko"
},
"保存组织参数": {
"SaveOrgParamSuccess": {
"query": {"orgCode": "Kumiko"},
"body": [{"alias": "sz", "value": 1}]
}
}
}
}
[file]
# 用例管理文件名称
excel=apiAutoTest.xlsx
# 用例json文件名称
case=case_data.json
# 期望数据名称名称
expect=expect_data.json
# sql语句文件的名称
sql=sql_data.json
# 工作表的名称
[table]
name=BPM接口测试
# 域名
[host]
bpm=http://36.139.193.99:8088
# 数据库
[sql]
host=36.139.193.99
port=3306
user=root
pwd=Rhrc@2024
database=eip8
\ No newline at end of file
{
"认证接口":{
"登录系统":{
"LoginSuccess":{"username":"超级管理员","account":"admin","userId":"1","loginStatus":true},
"LoginErrorPasswordIsError":{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置"},
"LoginErrorPasswordIsLong":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorPasswordIsShort":{"state":false,"message":"账号或密码错误"},
"LoginErrorPasswordIsSpecial":{"state":false,"message":"账号或密码错误"},
"LoginErrorPasswordIsNone":{"state":false,"message":"账号或密码错误"},
"LoginErrorUsernameIsNone":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsShort":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsLong":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsSpecial":{"state":false,"message":"账户错误或该租户未启用"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"state": true, "message": "添加维度成功!"},
"AddDemErrorCodeIsNone": {"state": false},
"AddDemErrorCodeIsSpecial": {"state": false, "message": "维度编码只能由数字、字母、下划线组成!"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"state":true,"message":"删除维度成功!"},
"DeleteDemErrorIdIsNone": {"state":false,"message":"删除维度失败,维度ids必填"}
},
"设置默认维度": {
"SetDefaultDemSuccess": {"state": true, "message": "设置默认维度成功!"}
},
"更新维度": {
"UpdateDemSuccess": {"state": true, "message": "更新维度成功!"}
}
},
"组织管理": {
"添加组织":{
"AddOrgSuccess": {"state": true, "message": "添加组织成功!"}
},
"根据组织编码删除组织": {
"DelOrgSuccess": {"state": true, "message": "删除组织成功!"}
},
"保存组织参数": {
"SaveOrgParamSuccess": {"state": true, "message": "保存组织参数成功!"}
}
}
}
{
"维度管理": {
"添加维度": {
"AddDemSuccess": "DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"delete":"DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";",
"select": "SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";"
}
}
}
}
\ No newline at end of file
# 配置被测系统的域名
[host]
bpm=http://36.139.193.99:8088
# 数据库的链接信息
[sql]
host=36.139.193.99
port=3306
user=root
pwd=Rhrc@2024
database=eip8
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: settings.py
--Author: Lin
--Datetime: 2024/11/6 上午11:50
--Description: Please read this file before running the project
---------------- 垂死病中惊坐起,扶摇直上九万里 ----------------------------------
"""
'''配置excel文件中数据的列号,如果有不同,请修改对应的列号'''
NUMBER = 'A'
MODULE = "B"
API = "C"
TITLE = "D"
LEVEL = 'E'
METHOD = "F"
PATH = "G"
MIME = "H"
CASE = "I"
EXPECT = 'J'
SQLTYPE = "K"
SQL = "L"
UPDATEKEY = 'M'
# ================================
EXCEL_NAME = "excel"
CASE_NAME = "case"
EXPECT_NAME = "expect"
SQL_NAME = 'sql'
TABLE_NAME = 'name'
HOST_NAME = 'bpm'
This source diff could not be displayed because it is too large. You can view the blob instead.
ERROR  root:requests_method.py:90 方法:request_all,传入的媒体类型为:query | json, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖
\ No newline at end of file
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:host
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:port
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:user
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:pwd
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:database
INFO  root:read_basic_ini.py:27 执行get_host方法,功能为:根据key获取host节点下被测系统的域名, 传入的参数为:bpm
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MzA5NjcxODgsImlhdCI6MTczMDg4MDc4OH0.ROOdZI7At5MqtwVwvwLiI6Zrj8hE1wGZldHfO8135Z4rC2FNRCGC09YfV_94VDimRwosuPP1SDmaUYP43CUL_A","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
ERROR  root:test_bpm.py:36 断言失败,用例数据为:{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'}, 服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[Kumiko]已存在!","value":"保存失败","code":200}
\ No newline at end of file
INFO  root:db.py:52 执行的方法为:select,功能描述为:执行查询的sql语句,传入的参数为:SELECT ID_ FROM uc_demension WHERE CODE_ like "Kumiko%";
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'ids': '1854074528767516672'},期望数据为:{'state': True, 'message': '删除维度成功!'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":"","code":200}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074525605011456"}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'admin', 'password': '✿❀♧♡♥'},期望数据为:{'state': False, 'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1854074525214941184"}
\ No newline at end of file
ERROR  root:test_bpm.py:37 断言失败,用例数据为:{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MzA5NjcxODksImlhdCI6MTczMDg4MDc4OX0.n-jQSuY-n2ZNHgB6KPBA1zlyfFopummPl1u5YLdqXIW3VZ23VS7iM9ARa-V3vNFN1dtycor5go8W55u15nxypg","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'code': 'Kumiko'},期望数据为:{'state': True, 'message': '设置默认维度成功!'}, 服务器返回的数据为:{"state":true,"message":"设置默认维度成功!","value":"","code":200}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074525474988032"}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'admin', 'password': '✿❀♧♡♥'},期望数据为:{'state': False, 'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1854074527907684352"}
\ No newline at end of file
INFO  root:db.py:37 执行的方法为:delete,功能描述为:执行删除的sql语句,传入的参数为:DELETE FROM uc_demension WHERE CODE_ like "Kumiko%";
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'},期望数据为:{'state': True, 'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":"","code":200}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}, 服务器返回的数据为:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1854074524459966464"}
\ No newline at end of file
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:host
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:port
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:user
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:pwd
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:database
INFO  root:read_basic_ini.py:27 执行get_host方法,功能为:根据key获取host节点下被测系统的域名, 传入的参数为:bpm
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MzA5NjcxODksImlhdCI6MTczMDg4MDc4OX0.n-jQSuY-n2ZNHgB6KPBA1zlyfFopummPl1u5YLdqXIW3VZ23VS7iM9ARa-V3vNFN1dtycor5go8W55u15nxypg","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'},期望数据为:{'state': False}, 服务器返回的数据为:{"state":false,"message":"添加维度信息失败,维度别名【code】必填!","code":200,"logId":"1854074528876568576"}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074528163536896"}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074528431972352"}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'},期望数据为:{'state': True, 'message': '更新维度成功!'}, 服务器返回的数据为:{"state":true,"message":"更新维度成功!","value":"","code":200}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'ids': ''},期望数据为:{'state': False, 'message': '删除维度失败,维度ids必填'}, 服务器返回的数据为:{"state":false,"message":"删除维度失败,维度ids必填","code":200,"logId":"1854074526871691264"}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'admin', 'password': 'a'},期望数据为:{'state': False, 'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1854074525089112064"}
\ No newline at end of file
ERROR  root:requests_method.py:90 方法:request_all,传入的媒体类型为:data, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074525860864000"}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'},期望数据为:{'state': False}, 服务器返回的数据为:{"state":false,"message":"添加维度信息失败,维度别名【code】必填!","code":200,"logId":"1854074526158659584"}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074528293560320"}
\ No newline at end of file
INFO  root:db.py:52 执行的方法为:select,功能描述为:执行查询的sql语句,传入的参数为:SELECT ID_ FROM uc_demension WHERE CODE_ like "Kumiko%";
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'ids': '1854074526024441856'},期望数据为:{'state': True, 'message': '删除维度成功!'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":"","code":200}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'admin', 'password': ''},期望数据为:{'state': False, 'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1854074528037707776"}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'},期望数据为:{'state': True, 'message': '更新维度成功!'}, 服务器返回的数据为:{"state":true,"message":"更新维度成功!","value":"","code":200}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'ids': ''},期望数据为:{'state': False, 'message': '删除维度失败,维度ids必填'}, 服务器返回的数据为:{"state":false,"message":"删除维度失败,维度ids必填","code":200,"logId":"1854074529635737600"}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'code': 'Kumiko'},期望数据为:{'state': True, 'message': '设置默认维度成功!'}, 服务器返回的数据为:{"state":true,"message":"设置默认维度成功!","value":"","code":200}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'admin', 'password': ''},期望数据为:{'state': False, 'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1854074525344964608"}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}, 服务器返回的数据为:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1854074527471476736"}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074525730840576"}
\ No newline at end of file
ERROR  root:test_bpm.py:36 断言失败,用例数据为:{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MzA5NjcxODgsImlhdCI6MTczMDg4MDc4OH0.ROOdZI7At5MqtwVwvwLiI6Zrj8hE1wGZldHfO8135Z4rC2FNRCGC09YfV_94VDimRwosuPP1SDmaUYP43CUL_A","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
INFO  root:db.py:37 执行的方法为:delete,功能描述为:执行删除的sql语句,传入的参数为:DELETE FROM uc_demension WHERE CODE_ like "Kumiko%";
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'},期望数据为:{'state': True, 'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":"","code":200}
\ No newline at end of file
ERROR  root:test_bpm.py:36 断言失败,用例数据为:{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'},期望数据为:{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}, 服务器返回的数据为:{"state":false,"message":"添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!","value":"","code":200}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074528578772992"}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'admin', 'password': 'a'},期望数据为:{'state': False, 'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1854074527769272320"}
\ No newline at end of file
ERROR  root:requests_method.py:90 方法:request_all,传入的媒体类型为:query | json, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖
\ No newline at end of file
ERROR  root:test_bpm.py:37 断言失败,用例数据为:{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'},期望数据为:{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}, 服务器返回的数据为:{"state":false,"message":"添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!","value":"","code":200}
\ No newline at end of file
ERROR  root:test_bpm.py:37 断言失败,用例数据为:{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'}, 服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[Kumiko]已存在!","value":"保存失败","code":200}
\ No newline at end of file
ERROR  root:requests_method.py:90 方法:request_all,传入的媒体类型为:data, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖
\ No newline at end of file
"BROKEN","EPIC","FAILED","FEATURE","PASSED","SKIPPED","STORY","UNKNOWN"
"0","BPM_Kumiko","0","维度管理","4","0","根据维度编码删除维度","0"
"0","BPM_Kumiko","2","认证接口","18","0","登录系统","0"
"2","BPM_Kumiko","0","组织管理","0","0","根据组织编码删除组织","0"
"0","BPM_Kumiko","2","维度管理","4","0","添加维度","0"
"0","BPM_Kumiko","0","维度管理","2","0","更新维度","0"
"2","BPM_Kumiko","0","组织管理","0","0","保存组织参数","0"
"0","BPM_Kumiko","2","组织管理","0","0","添加组织","0"
"0","BPM_Kumiko","0","维度管理","2","0","设置默认维度","0"
{"uid":"b1a8273437954620fa374b796ffaacdd","name":"behaviors","children":[{"name":"BPM_Kumiko","children":[{"name":"认证接口","children":[{"name":"登录系统","children":[{"name":"正向用例-用户和密码正确","uid":"30ff1ffde3541d50","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960040,"stop":1730880960068,"duration":28},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}","'高'","'post'","'application/json'","'认证接口'","None","None","'正向用例-用户和密码正确'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码错误","uid":"9e3c8f86704ce12","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960074,"stop":1730880960087,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码错误'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码过长","uid":"8713c074b31a659f","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"failed","time":{"start":1730880960091,"stop":1730880960123,"duration":32},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码过短","uid":"4dd74b11ffac19f0","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960216,"stop":1730880960236,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'a'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为特殊字符","uid":"4748929033dea291","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960241,"stop":1730880960266,"duration":25},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': '✿❀♧♡♥'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为空","uid":"c84c20bfeabe6446","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960271,"stop":1730880960297,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': ''}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为空","uid":"86349294de05edfa","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960301,"stop":1730880960328,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'Post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过短","uid":"f8903e812fe69fab","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960332,"stop":1730880960358,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过长","uid":"a0d28bf51dbb3a56","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960363,"stop":1730880960389,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为特殊字符","uid":"2b722454d868a398","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960394,"stop":1730880960420,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例-用户和密码正确","uid":"32f81ab018ee398e","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960751,"stop":1730880960788,"duration":37},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}","'高'","'post'","'application/json'","'认证接口'","None","None","'正向用例-用户和密码正确'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码错误","uid":"52507a5647169f8f","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960792,"stop":1730880960804,"duration":12},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码错误'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码过长","uid":"c1dd66b6a0617f42","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"failed","time":{"start":1730880960809,"stop":1730880960843,"duration":34},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码过短","uid":"bd4fd94683e768bd","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960854,"stop":1730880960874,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'a'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为特殊字符","uid":"920635ecc05b414d","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960880,"stop":1730880960908,"duration":28},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': '✿❀♧♡♥'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为空","uid":"74685dcb82d103ae","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960913,"stop":1730880960939,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': ''}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为空","uid":"5a3ad245ee5fb42d","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960945,"stop":1730880960968,"duration":23},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'Post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过短","uid":"a02e88f8352014e9","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880960974,"stop":1730880961001,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过长","uid":"bd5e5f942338a27c","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880961007,"stop":1730880961034,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为特殊字符","uid":"362afe1344613e2d","parentUid":"0f5355628ecb1e2ccdfa10274dfdcfb2","status":"passed","time":{"start":1730880961040,"stop":1730880961069,"duration":29},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]}],"uid":"0f5355628ecb1e2ccdfa10274dfdcfb2"}],"uid":"e3239f204a031349f6780f80e9f9c2d0"},{"name":"维度管理","children":[{"name":"添加维度","children":[{"name":"正向用例","uid":"38b1e09279ff245","parentUid":"1c6ac332596062b0b6dee8103530cf1c","status":"passed","time":{"start":1730880960425,"stop":1730880960474,"duration":49},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}","{'state': True, 'message': '添加维度成功!'}","'高'","'post'","'json'","'维度管理'","'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'delete'","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"f38a59bbb8fc9de4","parentUid":"1c6ac332596062b0b6dee8103530cf1c","status":"passed","time":{"start":1730880960480,"stop":1730880960490,"duration":10},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-维度id有特殊字符","uid":"35fcf91474563641","parentUid":"1c6ac332596062b0b6dee8103530cf1c","status":"failed","time":{"start":1730880960494,"stop":1730880960513,"duration":19},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id有特殊字符'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"正向用例","uid":"d9a8308f1e697d8d","parentUid":"1c6ac332596062b0b6dee8103530cf1c","status":"passed","time":{"start":1730880961075,"stop":1730880961121,"duration":46},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}","{'state': True, 'message': '添加维度成功!'}","'高'","'post'","'json'","'维度管理'","'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'delete'","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"5b57448cb22cd038","parentUid":"1c6ac332596062b0b6dee8103530cf1c","status":"passed","time":{"start":1730880961126,"stop":1730880961139,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-维度id有特殊字符","uid":"7c7924517644a2a2","parentUid":"1c6ac332596062b0b6dee8103530cf1c","status":"failed","time":{"start":1730880961144,"stop":1730880961164,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id有特殊字符'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]}],"uid":"1c6ac332596062b0b6dee8103530cf1c"},{"name":"设置默认维度","children":[{"name":"正向用例","uid":"bb849c36f37c40c8","parentUid":"b9c9535478df1efa2a747623a14bab77","status":"passed","time":{"start":1730880960521,"stop":1730880960544,"duration":23},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'设置默认维度'","{'code': 'Kumiko'}","{'state': True, 'message': '设置默认维度成功!'}","'中'","'put'","'query'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"],"tags":[]},{"name":"正向用例","uid":"9e0a065bf71713de","parentUid":"b9c9535478df1efa2a747623a14bab77","status":"passed","time":{"start":1730880961174,"stop":1730880961200,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'设置默认维度'","{'code': 'Kumiko'}","{'state': True, 'message': '设置默认维度成功!'}","'中'","'put'","'query'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"],"tags":[]}],"uid":"b9c9535478df1efa2a747623a14bab77"},{"name":"更新维度","children":[{"name":"正向用例","uid":"538d13f0f734d324","parentUid":"8d52045c780aa87c678439ec2a611e0e","status":"passed","time":{"start":1730880960585,"stop":1730880960606,"duration":21},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'更新维度'","{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}","{'state': True, 'message': '更新维度成功!'}","'高'","'put'","'application/json'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"],"tags":[]},{"name":"正向用例","uid":"cc8cdbd6fe3bbbd","parentUid":"8d52045c780aa87c678439ec2a611e0e","status":"passed","time":{"start":1730880961245,"stop":1730880961271,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'更新维度'","{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}","{'state': True, 'message': '更新维度成功!'}","'高'","'put'","'application/json'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"],"tags":[]}],"uid":"8d52045c780aa87c678439ec2a611e0e"},{"name":"根据维度编码删除维度","children":[{"name":"正向用例","uid":"66842018fe89f40b","parentUid":"1375fdee338796e4a8836daaf88f0ca2","status":"passed","time":{"start":1730880960611,"stop":1730880960643,"duration":32},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': '需要更新'}","{'state': True, 'message': '删除维度成功!'}","'高'","'DELETE'","'query'","'维度管理'","'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'select'","'正向用例'","'ids'","'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"fb9b01518ffdb3b2","parentUid":"1375fdee338796e4a8836daaf88f0ca2","status":"passed","time":{"start":1730880960649,"stop":1730880960662,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': ''}","{'state': False, 'message': '删除维度失败,维度ids必填'}","'高'","'DELETE'","'query'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"],"tags":[]},{"name":"正向用例","uid":"36e22ffa2036c8a7","parentUid":"1375fdee338796e4a8836daaf88f0ca2","status":"passed","time":{"start":1730880961276,"stop":1730880961303,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': '需要更新'}","{'state': True, 'message': '删除维度成功!'}","'高'","'DELETE'","'query'","'维度管理'","'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'select'","'正向用例'","'ids'","'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"9d255dc3f8334a4","parentUid":"1375fdee338796e4a8836daaf88f0ca2","status":"passed","time":{"start":1730880961308,"stop":1730880961321,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': ''}","{'state': False, 'message': '删除维度失败,维度ids必填'}","'高'","'DELETE'","'query'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"],"tags":[]}],"uid":"1375fdee338796e4a8836daaf88f0ca2"}],"uid":"cb9e6ec5995a37bafd812322e289da4b"},{"name":"组织管理","children":[{"name":"添加组织","children":[{"name":"正向用例","uid":"da6814c4756d9463","parentUid":"7187e2b54ab5fec55e681f2c3824ae65","status":"failed","time":{"start":1730880960548,"stop":1730880960562,"duration":14},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加组织'","{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}","{'state': True, 'message': '添加组织成功!'}","'高'","'post'","'json'","'组织管理'","{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}","'delete | select'","'正向用例'","'demId'","'http://36.139.193.99:8088/api/org/v1/org/addOrg'"],"tags":[]},{"name":"正向用例","uid":"415f874d4706a568","parentUid":"7187e2b54ab5fec55e681f2c3824ae65","status":"failed","time":{"start":1730880961206,"stop":1730880961219,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加组织'","{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}","{'state': True, 'message': '添加组织成功!'}","'高'","'post'","'json'","'组织管理'","{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}","'delete | select'","'正向用例'","'demId'","'http://36.139.193.99:8088/api/org/v1/org/addOrg'"],"tags":[]}],"uid":"7187e2b54ab5fec55e681f2c3824ae65"},{"name":"保存组织参数","children":[{"name":"正向用例","uid":"9cbcb244ea400311","parentUid":"1a87e3c5846e9fe9a328543b2c7db936","status":"broken","time":{"start":1730880960570,"stop":1730880960570,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'保存组织参数'","{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}","{'state': True, 'message': '保存组织参数成功!'}","'高'","'post'","'query | json'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"],"tags":[]},{"name":"正向用例","uid":"13178474907f0092","parentUid":"1a87e3c5846e9fe9a328543b2c7db936","status":"broken","time":{"start":1730880961229,"stop":1730880961229,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'保存组织参数'","{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}","{'state': True, 'message': '保存组织参数成功!'}","'高'","'post'","'query | json'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"],"tags":[]}],"uid":"1a87e3c5846e9fe9a328543b2c7db936"},{"name":"根据组织编码删除组织","children":[{"name":"正向用例","uid":"225eb6ab2f03c528","parentUid":"2a0c7dc7909f33cdae2c3c9fe5e2fe9d","status":"broken","time":{"start":1730880960577,"stop":1730880960577,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据组织编码删除组织'","'Kumiko'","{'state': True, 'message': '删除组织成功!'}","'高'","'post'","'data'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"],"tags":[]},{"name":"正向用例","uid":"643278c0ce06b3f6","parentUid":"2a0c7dc7909f33cdae2c3c9fe5e2fe9d","status":"broken","time":{"start":1730880961237,"stop":1730880961237,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据组织编码删除组织'","'Kumiko'","{'state': True, 'message': '删除组织成功!'}","'高'","'post'","'data'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"],"tags":[]}],"uid":"2a0c7dc7909f33cdae2c3c9fe5e2fe9d"}],"uid":"05a51212b22c0b04eeab47fb67f3b619"}],"uid":"9cf7ce22457f2bdeb218a067297869b5"}]}
\ No newline at end of file
"BROKEN","CATEGORY","FAILED","PASSED","SKIPPED","UNKNOWN"
"0","Product defects","6","0","0","0"
"4","Test defects","0","0","0","0"
{"uid":"4b4757e66a1912dae1a509f688f20b0f","name":"categories","children":[{"name":"Product defects","children":[{"name":"AssertionError: 断言失败","children":[{"name":"反向用例-用户名正确-密码过长","uid":"8713c074b31a659f","parentUid":"19135fd4a1c65086de1dc2a02ed9d4e0","status":"failed","time":{"start":1730880960091,"stop":1730880960123,"duration":32},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-维度id有特殊字符","uid":"35fcf91474563641","parentUid":"19135fd4a1c65086de1dc2a02ed9d4e0","status":"failed","time":{"start":1730880960494,"stop":1730880960513,"duration":19},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id有特殊字符'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"正向用例","uid":"da6814c4756d9463","parentUid":"19135fd4a1c65086de1dc2a02ed9d4e0","status":"failed","time":{"start":1730880960548,"stop":1730880960562,"duration":14},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加组织'","{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}","{'state': True, 'message': '添加组织成功!'}","'高'","'post'","'json'","'组织管理'","{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}","'delete | select'","'正向用例'","'demId'","'http://36.139.193.99:8088/api/org/v1/org/addOrg'"],"tags":[]},{"name":"反向用例-用户名正确-密码过长","uid":"c1dd66b6a0617f42","parentUid":"19135fd4a1c65086de1dc2a02ed9d4e0","status":"failed","time":{"start":1730880960809,"stop":1730880960843,"duration":34},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-维度id有特殊字符","uid":"7c7924517644a2a2","parentUid":"19135fd4a1c65086de1dc2a02ed9d4e0","status":"failed","time":{"start":1730880961144,"stop":1730880961164,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id有特殊字符'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"正向用例","uid":"415f874d4706a568","parentUid":"19135fd4a1c65086de1dc2a02ed9d4e0","status":"failed","time":{"start":1730880961206,"stop":1730880961219,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加组织'","{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}","{'state': True, 'message': '添加组织成功!'}","'高'","'post'","'json'","'组织管理'","{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}","'delete | select'","'正向用例'","'demId'","'http://36.139.193.99:8088/api/org/v1/org/addOrg'"],"tags":[]}],"uid":"19135fd4a1c65086de1dc2a02ed9d4e0"}],"uid":"8fb3a91ba5aaf9de24cc8a92edc82b5d"},{"name":"Test defects","children":[{"name":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","children":[{"name":"正向用例","uid":"9cbcb244ea400311","parentUid":"e25c3861137a86dfd7b4b5eed77c5e85","status":"broken","time":{"start":1730880960570,"stop":1730880960570,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'保存组织参数'","{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}","{'state': True, 'message': '保存组织参数成功!'}","'高'","'post'","'query | json'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"],"tags":[]},{"name":"正向用例","uid":"225eb6ab2f03c528","parentUid":"e25c3861137a86dfd7b4b5eed77c5e85","status":"broken","time":{"start":1730880960577,"stop":1730880960577,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据组织编码删除组织'","'Kumiko'","{'state': True, 'message': '删除组织成功!'}","'高'","'post'","'data'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"],"tags":[]},{"name":"正向用例","uid":"13178474907f0092","parentUid":"e25c3861137a86dfd7b4b5eed77c5e85","status":"broken","time":{"start":1730880961229,"stop":1730880961229,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'保存组织参数'","{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}","{'state': True, 'message': '保存组织参数成功!'}","'高'","'post'","'query | json'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"],"tags":[]},{"name":"正向用例","uid":"643278c0ce06b3f6","parentUid":"e25c3861137a86dfd7b4b5eed77c5e85","status":"broken","time":{"start":1730880961237,"stop":1730880961237,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据组织编码删除组织'","'Kumiko'","{'state': True, 'message': '删除组织成功!'}","'高'","'post'","'data'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"],"tags":[]}],"uid":"e25c3861137a86dfd7b4b5eed77c5e85"}],"uid":"bdbf199525818fae7a8651db9eafe741"}]}
\ No newline at end of file
{"uid":"83edc06c07f9ae9e47eb6dd1b683e4e2","name":"packages","children":[{"name":"test_case","children":[{"name":"test_Kumiko.test_bpm","children":[{"name":"正向用例-用户和密码正确","uid":"30ff1ffde3541d50","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960040,"stop":1730880960068,"duration":28},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}","'高'","'post'","'application/json'","'认证接口'","None","None","'正向用例-用户和密码正确'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码错误","uid":"9e3c8f86704ce12","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960074,"stop":1730880960087,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码错误'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码过长","uid":"8713c074b31a659f","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"failed","time":{"start":1730880960091,"stop":1730880960123,"duration":32},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码过短","uid":"4dd74b11ffac19f0","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960216,"stop":1730880960236,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'a'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为特殊字符","uid":"4748929033dea291","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960241,"stop":1730880960266,"duration":25},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': '✿❀♧♡♥'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为空","uid":"c84c20bfeabe6446","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960271,"stop":1730880960297,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': ''}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为空","uid":"86349294de05edfa","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960301,"stop":1730880960328,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'Post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过短","uid":"f8903e812fe69fab","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960332,"stop":1730880960358,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过长","uid":"a0d28bf51dbb3a56","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960363,"stop":1730880960389,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为特殊字符","uid":"2b722454d868a398","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960394,"stop":1730880960420,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例","uid":"38b1e09279ff245","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960425,"stop":1730880960474,"duration":49},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}","{'state': True, 'message': '添加维度成功!'}","'高'","'post'","'json'","'维度管理'","'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'delete'","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"f38a59bbb8fc9de4","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960480,"stop":1730880960490,"duration":10},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-维度id有特殊字符","uid":"35fcf91474563641","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"failed","time":{"start":1730880960494,"stop":1730880960513,"duration":19},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id有特殊字符'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"正向用例","uid":"bb849c36f37c40c8","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960521,"stop":1730880960544,"duration":23},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'设置默认维度'","{'code': 'Kumiko'}","{'state': True, 'message': '设置默认维度成功!'}","'中'","'put'","'query'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"],"tags":[]},{"name":"正向用例","uid":"da6814c4756d9463","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"failed","time":{"start":1730880960548,"stop":1730880960562,"duration":14},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加组织'","{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}","{'state': True, 'message': '添加组织成功!'}","'高'","'post'","'json'","'组织管理'","{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}","'delete | select'","'正向用例'","'demId'","'http://36.139.193.99:8088/api/org/v1/org/addOrg'"],"tags":[]},{"name":"正向用例","uid":"9cbcb244ea400311","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"broken","time":{"start":1730880960570,"stop":1730880960570,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'保存组织参数'","{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}","{'state': True, 'message': '保存组织参数成功!'}","'高'","'post'","'query | json'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"],"tags":[]},{"name":"正向用例","uid":"225eb6ab2f03c528","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"broken","time":{"start":1730880960577,"stop":1730880960577,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据组织编码删除组织'","'Kumiko'","{'state': True, 'message': '删除组织成功!'}","'高'","'post'","'data'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"],"tags":[]},{"name":"正向用例","uid":"538d13f0f734d324","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960585,"stop":1730880960606,"duration":21},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'更新维度'","{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}","{'state': True, 'message': '更新维度成功!'}","'高'","'put'","'application/json'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"],"tags":[]},{"name":"正向用例","uid":"66842018fe89f40b","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960611,"stop":1730880960643,"duration":32},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': '需要更新'}","{'state': True, 'message': '删除维度成功!'}","'高'","'DELETE'","'query'","'维度管理'","'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'select'","'正向用例'","'ids'","'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"fb9b01518ffdb3b2","parentUid":"55bc6faeb5f15c41d2cb2c6b84307836","status":"passed","time":{"start":1730880960649,"stop":1730880960662,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': ''}","{'state': False, 'message': '删除维度失败,维度ids必填'}","'高'","'DELETE'","'query'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"],"tags":[]}],"uid":"test_Kumiko.test_bpm"},{"name":"test_Yukino.test_bpm","children":[{"name":"正向用例-用户和密码正确","uid":"32f81ab018ee398e","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880960751,"stop":1730880960788,"duration":37},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}","'高'","'post'","'application/json'","'认证接口'","None","None","'正向用例-用户和密码正确'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码错误","uid":"52507a5647169f8f","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880960792,"stop":1730880960804,"duration":12},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码错误'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码过长","uid":"c1dd66b6a0617f42","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"failed","time":{"start":1730880960809,"stop":1730880960843,"duration":34},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码过短","uid":"bd4fd94683e768bd","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880960854,"stop":1730880960874,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'a'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为特殊字符","uid":"920635ecc05b414d","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880960880,"stop":1730880960908,"duration":28},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': '✿❀♧♡♥'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为空","uid":"74685dcb82d103ae","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880960913,"stop":1730880960939,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': ''}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为空","uid":"5a3ad245ee5fb42d","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880960945,"stop":1730880960968,"duration":23},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'Post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过短","uid":"a02e88f8352014e9","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880960974,"stop":1730880961001,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过长","uid":"bd5e5f942338a27c","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880961007,"stop":1730880961034,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为特殊字符","uid":"362afe1344613e2d","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880961040,"stop":1730880961069,"duration":29},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例","uid":"d9a8308f1e697d8d","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880961075,"stop":1730880961121,"duration":46},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}","{'state': True, 'message': '添加维度成功!'}","'高'","'post'","'json'","'维度管理'","'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'delete'","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"5b57448cb22cd038","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880961126,"stop":1730880961139,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-维度id有特殊字符","uid":"7c7924517644a2a2","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"failed","time":{"start":1730880961144,"stop":1730880961164,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id有特殊字符'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"正向用例","uid":"9e0a065bf71713de","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880961174,"stop":1730880961200,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'设置默认维度'","{'code': 'Kumiko'}","{'state': True, 'message': '设置默认维度成功!'}","'中'","'put'","'query'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"],"tags":[]},{"name":"正向用例","uid":"415f874d4706a568","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"failed","time":{"start":1730880961206,"stop":1730880961219,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加组织'","{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}","{'state': True, 'message': '添加组织成功!'}","'高'","'post'","'json'","'组织管理'","{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}","'delete | select'","'正向用例'","'demId'","'http://36.139.193.99:8088/api/org/v1/org/addOrg'"],"tags":[]},{"name":"正向用例","uid":"13178474907f0092","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"broken","time":{"start":1730880961229,"stop":1730880961229,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'保存组织参数'","{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}","{'state': True, 'message': '保存组织参数成功!'}","'高'","'post'","'query | json'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"],"tags":[]},{"name":"正向用例","uid":"643278c0ce06b3f6","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"broken","time":{"start":1730880961237,"stop":1730880961237,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据组织编码删除组织'","'Kumiko'","{'state': True, 'message': '删除组织成功!'}","'高'","'post'","'data'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"],"tags":[]},{"name":"正向用例","uid":"cc8cdbd6fe3bbbd","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880961245,"stop":1730880961271,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'更新维度'","{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}","{'state': True, 'message': '更新维度成功!'}","'高'","'put'","'application/json'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"],"tags":[]},{"name":"正向用例","uid":"36e22ffa2036c8a7","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880961276,"stop":1730880961303,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': '需要更新'}","{'state': True, 'message': '删除维度成功!'}","'高'","'DELETE'","'query'","'维度管理'","'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'select'","'正向用例'","'ids'","'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"9d255dc3f8334a4","parentUid":"369d4be1f047c6bb02443356c379e10b","status":"passed","time":{"start":1730880961308,"stop":1730880961321,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': ''}","{'state': False, 'message': '删除维度失败,维度ids必填'}","'高'","'DELETE'","'query'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"],"tags":[]}],"uid":"test_Yukino.test_bpm"}],"uid":"3b2e467b921b0ea8d4803b9c79d92d0c"}]}
\ No newline at end of file
"DESCRIPTION","DURATION IN MS","NAME","PARENT SUITE","START TIME","STATUS","STOP TIME","SUB SUITE","SUITE","TEST CLASS","TEST METHOD"
"","27","正向用例","test_case.test_Yukino","Wed Nov 06 16:16:01 CST 2024","passed","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","27","反向用例-密码正确-用户名过短","test_case.test_Yukino","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","0","正向用例","test_case.test_Yukino","Wed Nov 06 16:16:01 CST 2024","broken","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","37","正向用例-用户和密码正确","test_case.test_Yukino","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","34","反向用例-用户名正确-密码过长","test_case.test_Yukino","Wed Nov 06 16:16:00 CST 2024","failed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","46","正向用例","test_case.test_Yukino","Wed Nov 06 16:16:01 CST 2024","passed","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","32","正向用例","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","23","反向用例-密码正确-用户名为空","test_case.test_Yukino","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","27","反向用例-密码正确-用户名为空","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","19","反向用例-维度id有特殊字符","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","failed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","20","反向用例-用户名正确-密码过短","test_case.test_Yukino","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","21","正向用例","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","0","正向用例","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","broken","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","28","正向用例-用户和密码正确","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","32","反向用例-用户名正确-密码过长","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","failed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","13","反向用例-维度id为空","test_case.test_Yukino","Wed Nov 06 16:16:01 CST 2024","passed","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","20","反向用例-维度id有特殊字符","test_case.test_Yukino","Wed Nov 06 16:16:01 CST 2024","failed","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","0","正向用例","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","broken","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","26","反向用例-用户名正确-密码为空","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","13","正向用例","test_case.test_Yukino","Wed Nov 06 16:16:01 CST 2024","failed","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","25","反向用例-用户名正确-密码为特殊字符","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","26","反向用例-密码正确-用户名为特殊字符","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","13","反向用例-维度id为空","test_case.test_Yukino","Wed Nov 06 16:16:01 CST 2024","passed","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","20","反向用例-用户名正确-密码过短","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","13","反向用例-维度id为空","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","26","反向用例-用户名正确-密码为空","test_case.test_Yukino","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","23","正向用例","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","26","正向用例","test_case.test_Yukino","Wed Nov 06 16:16:01 CST 2024","passed","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","49","正向用例","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","10","反向用例-维度id为空","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","14","正向用例","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","failed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","29","反向用例-密码正确-用户名为特殊字符","test_case.test_Yukino","Wed Nov 06 16:16:01 CST 2024","passed","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","26","反向用例-密码正确-用户名过短","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","27","反向用例-密码正确-用户名过长","test_case.test_Yukino","Wed Nov 06 16:16:01 CST 2024","passed","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","26","反向用例-密码正确-用户名过长","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","0","正向用例","test_case.test_Yukino","Wed Nov 06 16:16:01 CST 2024","broken","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","26","正向用例","test_case.test_Yukino","Wed Nov 06 16:16:01 CST 2024","passed","Wed Nov 06 16:16:01 CST 2024","TestBPM","test_bpm","",""
"","12","反向用例-用户名正确-密码错误","test_case.test_Yukino","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","13","反向用例-用户名正确-密码错误","test_case.test_Kumiko","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
"","28","反向用例-用户名正确-密码为特殊字符","test_case.test_Yukino","Wed Nov 06 16:16:00 CST 2024","passed","Wed Nov 06 16:16:00 CST 2024","TestBPM","test_bpm","",""
{"uid":"98d3104e051c652961429bf95fa0b5d6","name":"suites","children":[{"name":"test_case.test_Kumiko","children":[{"name":"test_bpm","children":[{"name":"TestBPM","children":[{"name":"正向用例-用户和密码正确","uid":"30ff1ffde3541d50","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960040,"stop":1730880960068,"duration":28},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}","'高'","'post'","'application/json'","'认证接口'","None","None","'正向用例-用户和密码正确'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码错误","uid":"9e3c8f86704ce12","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960074,"stop":1730880960087,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码错误'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码过长","uid":"8713c074b31a659f","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"failed","time":{"start":1730880960091,"stop":1730880960123,"duration":32},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码过短","uid":"4dd74b11ffac19f0","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960216,"stop":1730880960236,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'a'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为特殊字符","uid":"4748929033dea291","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960241,"stop":1730880960266,"duration":25},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': '✿❀♧♡♥'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为空","uid":"c84c20bfeabe6446","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960271,"stop":1730880960297,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': ''}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为空","uid":"86349294de05edfa","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960301,"stop":1730880960328,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'Post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过短","uid":"f8903e812fe69fab","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960332,"stop":1730880960358,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过长","uid":"a0d28bf51dbb3a56","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960363,"stop":1730880960389,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为特殊字符","uid":"2b722454d868a398","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960394,"stop":1730880960420,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例","uid":"38b1e09279ff245","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960425,"stop":1730880960474,"duration":49},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}","{'state': True, 'message': '添加维度成功!'}","'高'","'post'","'json'","'维度管理'","'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'delete'","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"f38a59bbb8fc9de4","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960480,"stop":1730880960490,"duration":10},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-维度id有特殊字符","uid":"35fcf91474563641","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"failed","time":{"start":1730880960494,"stop":1730880960513,"duration":19},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id有特殊字符'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"正向用例","uid":"bb849c36f37c40c8","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960521,"stop":1730880960544,"duration":23},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'设置默认维度'","{'code': 'Kumiko'}","{'state': True, 'message': '设置默认维度成功!'}","'中'","'put'","'query'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"],"tags":[]},{"name":"正向用例","uid":"da6814c4756d9463","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"failed","time":{"start":1730880960548,"stop":1730880960562,"duration":14},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加组织'","{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}","{'state': True, 'message': '添加组织成功!'}","'高'","'post'","'json'","'组织管理'","{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}","'delete | select'","'正向用例'","'demId'","'http://36.139.193.99:8088/api/org/v1/org/addOrg'"],"tags":[]},{"name":"正向用例","uid":"9cbcb244ea400311","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"broken","time":{"start":1730880960570,"stop":1730880960570,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'保存组织参数'","{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}","{'state': True, 'message': '保存组织参数成功!'}","'高'","'post'","'query | json'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"],"tags":[]},{"name":"正向用例","uid":"225eb6ab2f03c528","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"broken","time":{"start":1730880960577,"stop":1730880960577,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据组织编码删除组织'","'Kumiko'","{'state': True, 'message': '删除组织成功!'}","'高'","'post'","'data'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"],"tags":[]},{"name":"正向用例","uid":"538d13f0f734d324","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960585,"stop":1730880960606,"duration":21},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'更新维度'","{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}","{'state': True, 'message': '更新维度成功!'}","'高'","'put'","'application/json'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"],"tags":[]},{"name":"正向用例","uid":"66842018fe89f40b","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960611,"stop":1730880960643,"duration":32},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': '需要更新'}","{'state': True, 'message': '删除维度成功!'}","'高'","'DELETE'","'query'","'维度管理'","'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'select'","'正向用例'","'ids'","'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"fb9b01518ffdb3b2","parentUid":"7790e8c67a77eb1e9504be0088956d03","status":"passed","time":{"start":1730880960649,"stop":1730880960662,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': ''}","{'state': False, 'message': '删除维度失败,维度ids必填'}","'高'","'DELETE'","'query'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"],"tags":[]}],"uid":"7790e8c67a77eb1e9504be0088956d03"}],"uid":"6bac84867c8d8481b3d078d1321cfeb3"}],"uid":"b187659cafaef061883d171349e6d6cb"},{"name":"test_case.test_Yukino","children":[{"name":"test_bpm","children":[{"name":"TestBPM","children":[{"name":"正向用例-用户和密码正确","uid":"32f81ab018ee398e","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880960751,"stop":1730880960788,"duration":37},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}","'高'","'post'","'application/json'","'认证接口'","None","None","'正向用例-用户和密码正确'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码错误","uid":"52507a5647169f8f","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880960792,"stop":1730880960804,"duration":12},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码错误'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码过长","uid":"c1dd66b6a0617f42","parentUid":"375617c409350c069959df7034e91e04","status":"failed","time":{"start":1730880960809,"stop":1730880960843,"duration":34},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码过短","uid":"bd4fd94683e768bd","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880960854,"stop":1730880960874,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'a'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为特殊字符","uid":"920635ecc05b414d","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880960880,"stop":1730880960908,"duration":28},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': '✿❀♧♡♥'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为空","uid":"74685dcb82d103ae","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880960913,"stop":1730880960939,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': ''}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为空","uid":"5a3ad245ee5fb42d","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880960945,"stop":1730880960968,"duration":23},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'Post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过短","uid":"a02e88f8352014e9","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880960974,"stop":1730880961001,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过长","uid":"bd5e5f942338a27c","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880961007,"stop":1730880961034,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为特殊字符","uid":"362afe1344613e2d","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880961040,"stop":1730880961069,"duration":29},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例","uid":"d9a8308f1e697d8d","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880961075,"stop":1730880961121,"duration":46},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}","{'state': True, 'message': '添加维度成功!'}","'高'","'post'","'json'","'维度管理'","'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'delete'","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"5b57448cb22cd038","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880961126,"stop":1730880961139,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-维度id有特殊字符","uid":"7c7924517644a2a2","parentUid":"375617c409350c069959df7034e91e04","status":"failed","time":{"start":1730880961144,"stop":1730880961164,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id有特殊字符'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"正向用例","uid":"9e0a065bf71713de","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880961174,"stop":1730880961200,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'设置默认维度'","{'code': 'Kumiko'}","{'state': True, 'message': '设置默认维度成功!'}","'中'","'put'","'query'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"],"tags":[]},{"name":"正向用例","uid":"415f874d4706a568","parentUid":"375617c409350c069959df7034e91e04","status":"failed","time":{"start":1730880961206,"stop":1730880961219,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加组织'","{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}","{'state': True, 'message': '添加组织成功!'}","'高'","'post'","'json'","'组织管理'","{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}","'delete | select'","'正向用例'","'demId'","'http://36.139.193.99:8088/api/org/v1/org/addOrg'"],"tags":[]},{"name":"正向用例","uid":"13178474907f0092","parentUid":"375617c409350c069959df7034e91e04","status":"broken","time":{"start":1730880961229,"stop":1730880961229,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'保存组织参数'","{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}","{'state': True, 'message': '保存组织参数成功!'}","'高'","'post'","'query | json'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"],"tags":[]},{"name":"正向用例","uid":"643278c0ce06b3f6","parentUid":"375617c409350c069959df7034e91e04","status":"broken","time":{"start":1730880961237,"stop":1730880961237,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据组织编码删除组织'","'Kumiko'","{'state': True, 'message': '删除组织成功!'}","'高'","'post'","'data'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"],"tags":[]},{"name":"正向用例","uid":"cc8cdbd6fe3bbbd","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880961245,"stop":1730880961271,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'更新维度'","{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}","{'state': True, 'message': '更新维度成功!'}","'高'","'put'","'application/json'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"],"tags":[]},{"name":"正向用例","uid":"36e22ffa2036c8a7","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880961276,"stop":1730880961303,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': '需要更新'}","{'state': True, 'message': '删除维度成功!'}","'高'","'DELETE'","'query'","'维度管理'","'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'select'","'正向用例'","'ids'","'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"9d255dc3f8334a4","parentUid":"375617c409350c069959df7034e91e04","status":"passed","time":{"start":1730880961308,"stop":1730880961321,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': ''}","{'state': False, 'message': '删除维度失败,维度ids必填'}","'高'","'DELETE'","'query'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"],"tags":[]}],"uid":"375617c409350c069959df7034e91e04"}],"uid":"a7f1321886067d59e2676db683b541a0"}],"uid":"025356d13757175074772e0f1d563270"}]}
\ No newline at end of file
{"uid":"13178474907f0092","name":"正向用例","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"86270d8e53b4a9ef6700843d0c1e89a4","time":{"start":1730880961229,"stop":1730880961229,"duration":0},"status":"broken","statusMessage":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","statusTrace":"self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C748200>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', mime = 'query | json'\ncase_data = {'body': [{'alias': 'sz', 'value': 1}], 'query': {'orgCode': 'Kumiko'}}, expect_data = {'message': '保存组织参数成功!', 'state': True}, sql_type = None\nsql_data = None, update_key = None, module = '组织管理', api = '保存组织参数', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n> res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n\ntest_case\\test_Yukino\\test_bpm.py:30: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, req_method = 'post'\nreq_url = 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', req_mime = 'query | json'\nreq_case_data = {'body': [{'alias': 'sz', 'value': 1}], 'query': {'orgCode': 'Kumiko'}}, sql_type = None, sql_data = None, update_key = None\n\n def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):\n \"\"\"\n 封装公共的请求方法\n :param req_method: 请求方法\n :param req_url: 请求url\n :param req_mime: 请求的媒体类型\n :param req_case_data: 请求数据\n :param sql_type: sql语句类型\n :param sql_data: sql语句\n :param update_key: 更新的key\n :return: Response type\n \"\"\"\n # 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求\n if sql_type == \"delete\":\n self.db.delete(sql_data)\n \n # 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求\n elif sql_type == \"select\":\n select_result = self.db.select(sql_data)\n req_case_data[update_key] = select_result\n \n # 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 要执行删除--删除数据库中现有的数据\n self.db.delete(sql_data[\"delete\"])\n # 查询语句--将查询结果更新到用例数据中\n select_result = self.db.select(sql_data[\"select\"])\n req_case_data[update_key] = select_result\n \n # 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求\n # 发送请求时,用例使用使用哪些关键字传参,需要添加判断\n # 判断媒体类型的值是否为:application/json 或 json,使用json传参\n if req_mime == \"json\" or req_mime == \"application/json\":\n return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)\n \n # 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参\n # 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。\n elif req_mime == \"application/x-www-form-urlencoded\" or req_mime == \"x-www-form-urlencoded\" or req_mime == \"form\":\n return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)\n \n # 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参\n elif req_mime == \"multipart/form-data\" or req_mime == \"form-data\":\n return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)\n \n # 判断媒体类型的值是否为:query,使用params传参\n elif req_mime == \"query\":\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)\n \n # 判断媒体类型的值是否为:None,表示没有传参\n elif req_mime is None:\n return self.bpm_session.request(method=req_method, url=req_url)\n \n # 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。\n elif req_mime == \"query|json\" or req_mime == \"json|query\":\n # requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data[\"query\"], json=req_case_data[\"body\"])\n \n else:\n log.error(f\"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\n> raise ValueError(\"没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\nE ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\n\nrequests_method\\requests_method.py:91: ValueError","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"broken","statusMessage":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","statusTrace":"self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C748200>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', mime = 'query | json'\ncase_data = {'body': [{'alias': 'sz', 'value': 1}], 'query': {'orgCode': 'Kumiko'}}, expect_data = {'message': '保存组织参数成功!', 'state': True}, sql_type = None\nsql_data = None, update_key = None, module = '组织管理', api = '保存组织参数', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n> res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n\ntest_case\\test_Yukino\\test_bpm.py:30: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, req_method = 'post'\nreq_url = 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', req_mime = 'query | json'\nreq_case_data = {'body': [{'alias': 'sz', 'value': 1}], 'query': {'orgCode': 'Kumiko'}}, sql_type = None, sql_data = None, update_key = None\n\n def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):\n \"\"\"\n 封装公共的请求方法\n :param req_method: 请求方法\n :param req_url: 请求url\n :param req_mime: 请求的媒体类型\n :param req_case_data: 请求数据\n :param sql_type: sql语句类型\n :param sql_data: sql语句\n :param update_key: 更新的key\n :return: Response type\n \"\"\"\n # 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求\n if sql_type == \"delete\":\n self.db.delete(sql_data)\n \n # 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求\n elif sql_type == \"select\":\n select_result = self.db.select(sql_data)\n req_case_data[update_key] = select_result\n \n # 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 要执行删除--删除数据库中现有的数据\n self.db.delete(sql_data[\"delete\"])\n # 查询语句--将查询结果更新到用例数据中\n select_result = self.db.select(sql_data[\"select\"])\n req_case_data[update_key] = select_result\n \n # 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求\n # 发送请求时,用例使用使用哪些关键字传参,需要添加判断\n # 判断媒体类型的值是否为:application/json 或 json,使用json传参\n if req_mime == \"json\" or req_mime == \"application/json\":\n return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)\n \n # 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参\n # 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。\n elif req_mime == \"application/x-www-form-urlencoded\" or req_mime == \"x-www-form-urlencoded\" or req_mime == \"form\":\n return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)\n \n # 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参\n elif req_mime == \"multipart/form-data\" or req_mime == \"form-data\":\n return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)\n \n # 判断媒体类型的值是否为:query,使用params传参\n elif req_mime == \"query\":\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)\n \n # 判断媒体类型的值是否为:None,表示没有传参\n elif req_mime is None:\n return self.bpm_session.request(method=req_method, url=req_url)\n \n # 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。\n elif req_mime == \"query|json\" or req_mime == \"json|query\":\n # requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data[\"query\"], json=req_case_data[\"body\"])\n \n else:\n log.error(f\"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\n> raise ValueError(\"没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\nE ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\n\nrequests_method\\requests_method.py:91: ValueError","steps":[],"attachments":[{"uid":"15918be5c6b5ab8f","name":"log","source":"15918be5c6b5ab8f.txt","type":"text/plain","size":191}],"parameters":[],"shouldDisplayMessage":true,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"组织管理"},{"name":"story","value":"保存组织参数"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'保存组织参数'"},{"name":"case_data","value":"{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}"},{"name":"expect_data","value":"{'state': True, 'message': '保存组织参数成功!'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'query | json'"},{"name":"module","value":"'组织管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[{"name":"Test defects","matchedStatuses":[],"flaky":false}],"tags":[]},"source":"13178474907f0092.json","parameterValues":["'保存组织参数'","{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}","{'state': True, 'message': '保存组织参数成功!'}","'高'","'post'","'query | json'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"]}
\ No newline at end of file
{"uid":"225eb6ab2f03c528","name":"正向用例","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"dee662659759b2c5304cb19df4d4d17d","time":{"start":1730880960577,"stop":1730880960577,"duration":0},"status":"broken","statusMessage":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","statusTrace":"self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C537200>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', mime = 'data', case_data = 'Kumiko', expect_data = {'message': '删除组织成功!', 'state': True}\nsql_type = None, sql_data = None, update_key = None, module = '组织管理', api = '根据组织编码删除组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n> res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n\ntest_case\\test_Kumiko\\test_bpm.py:29: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, req_method = 'post'\nreq_url = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', req_mime = 'data', req_case_data = 'Kumiko', sql_type = None, sql_data = None, update_key = None\n\n def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):\n \"\"\"\n 封装公共的请求方法\n :param req_method: 请求方法\n :param req_url: 请求url\n :param req_mime: 请求的媒体类型\n :param req_case_data: 请求数据\n :param sql_type: sql语句类型\n :param sql_data: sql语句\n :param update_key: 更新的key\n :return: Response type\n \"\"\"\n # 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求\n if sql_type == \"delete\":\n self.db.delete(sql_data)\n \n # 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求\n elif sql_type == \"select\":\n select_result = self.db.select(sql_data)\n req_case_data[update_key] = select_result\n \n # 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 要执行删除--删除数据库中现有的数据\n self.db.delete(sql_data[\"delete\"])\n # 查询语句--将查询结果更新到用例数据中\n select_result = self.db.select(sql_data[\"select\"])\n req_case_data[update_key] = select_result\n \n # 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求\n # 发送请求时,用例使用使用哪些关键字传参,需要添加判断\n # 判断媒体类型的值是否为:application/json 或 json,使用json传参\n if req_mime == \"json\" or req_mime == \"application/json\":\n return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)\n \n # 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参\n # 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。\n elif req_mime == \"application/x-www-form-urlencoded\" or req_mime == \"x-www-form-urlencoded\" or req_mime == \"form\":\n return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)\n \n # 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参\n elif req_mime == \"multipart/form-data\" or req_mime == \"form-data\":\n return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)\n \n # 判断媒体类型的值是否为:query,使用params传参\n elif req_mime == \"query\":\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)\n \n # 判断媒体类型的值是否为:None,表示没有传参\n elif req_mime is None:\n return self.bpm_session.request(method=req_method, url=req_url)\n \n # 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。\n elif req_mime == \"query|json\" or req_mime == \"json|query\":\n # requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data[\"query\"], json=req_case_data[\"body\"])\n \n else:\n log.error(f\"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\n> raise ValueError(\"没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\nE ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\n\nrequests_method\\requests_method.py:91: ValueError","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"broken","statusMessage":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","statusTrace":"self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C537200>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', mime = 'data', case_data = 'Kumiko', expect_data = {'message': '删除组织成功!', 'state': True}\nsql_type = None, sql_data = None, update_key = None, module = '组织管理', api = '根据组织编码删除组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n> res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n\ntest_case\\test_Kumiko\\test_bpm.py:29: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, req_method = 'post'\nreq_url = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', req_mime = 'data', req_case_data = 'Kumiko', sql_type = None, sql_data = None, update_key = None\n\n def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):\n \"\"\"\n 封装公共的请求方法\n :param req_method: 请求方法\n :param req_url: 请求url\n :param req_mime: 请求的媒体类型\n :param req_case_data: 请求数据\n :param sql_type: sql语句类型\n :param sql_data: sql语句\n :param update_key: 更新的key\n :return: Response type\n \"\"\"\n # 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求\n if sql_type == \"delete\":\n self.db.delete(sql_data)\n \n # 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求\n elif sql_type == \"select\":\n select_result = self.db.select(sql_data)\n req_case_data[update_key] = select_result\n \n # 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 要执行删除--删除数据库中现有的数据\n self.db.delete(sql_data[\"delete\"])\n # 查询语句--将查询结果更新到用例数据中\n select_result = self.db.select(sql_data[\"select\"])\n req_case_data[update_key] = select_result\n \n # 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求\n # 发送请求时,用例使用使用哪些关键字传参,需要添加判断\n # 判断媒体类型的值是否为:application/json 或 json,使用json传参\n if req_mime == \"json\" or req_mime == \"application/json\":\n return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)\n \n # 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参\n # 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。\n elif req_mime == \"application/x-www-form-urlencoded\" or req_mime == \"x-www-form-urlencoded\" or req_mime == \"form\":\n return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)\n \n # 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参\n elif req_mime == \"multipart/form-data\" or req_mime == \"form-data\":\n return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)\n \n # 判断媒体类型的值是否为:query,使用params传参\n elif req_mime == \"query\":\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)\n \n # 判断媒体类型的值是否为:None,表示没有传参\n elif req_mime is None:\n return self.bpm_session.request(method=req_method, url=req_url)\n \n # 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。\n elif req_mime == \"query|json\" or req_mime == \"json|query\":\n # requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data[\"query\"], json=req_case_data[\"body\"])\n \n else:\n log.error(f\"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\n> raise ValueError(\"没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\nE ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\n\nrequests_method\\requests_method.py:91: ValueError","steps":[],"attachments":[{"uid":"fe8143786ba8780e","name":"log","source":"fe8143786ba8780e.txt","type":"text/plain","size":183}],"parameters":[],"shouldDisplayMessage":true,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"组织管理"},{"name":"story","value":"根据组织编码删除组织"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'根据组织编码删除组织'"},{"name":"case_data","value":"'Kumiko'"},{"name":"expect_data","value":"{'state': True, 'message': '删除组织成功!'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'data'"},{"name":"module","value":"'组织管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[{"name":"Test defects","matchedStatuses":[],"flaky":false}],"tags":[]},"source":"225eb6ab2f03c528.json","parameterValues":["'根据组织编码删除组织'","'Kumiko'","{'state': True, 'message': '删除组织成功!'}","'高'","'post'","'data'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"]}
\ No newline at end of file
{"uid":"2b722454d868a398","name":"反向用例-密码正确-用户名为特殊字符","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"9166f1e51d45b343f6b4f6d4ed68eb1b","time":{"start":1730880960394,"stop":1730880960420,"duration":26},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"83937a3e9cf22fe2","name":"log","source":"83937a3e9cf22fe2.txt","type":"text/plain","size":511}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'state': False, 'message': '账户错误或该租户未启用'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-密码正确-用户名为特殊字符'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"2b722454d868a398.json","parameterValues":["'登录系统'","{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为特殊字符'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"30ff1ffde3541d50","name":"正向用例-用户和密码正确","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"92360596ebe278c01eee0e54165a96e7","time":{"start":1730880960040,"stop":1730880960068,"duration":28},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"15ba51b857558055","name":"log","source":"15ba51b857558055.txt","type":"text/plain","size":1772}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}"},{"name":"level","value":"'高'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'正向用例-用户和密码正确'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"30ff1ffde3541d50.json","parameterValues":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}","'高'","'post'","'application/json'","'认证接口'","None","None","'正向用例-用户和密码正确'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"32f81ab018ee398e","name":"正向用例-用户和密码正确","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"3bfe9744e70830af8ab24b1f89804d90","time":{"start":1730880960751,"stop":1730880960788,"duration":37},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"56695ee16bd3e8c0","name":"log","source":"56695ee16bd3e8c0.txt","type":"text/plain","size":1772}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}"},{"name":"level","value":"'高'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'正向用例-用户和密码正确'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"32f81ab018ee398e.json","parameterValues":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}","'高'","'post'","'application/json'","'认证接口'","None","None","'正向用例-用户和密码正确'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"35fcf91474563641","name":"反向用例-维度id有特殊字符","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"44cee1474fc583311c18c6ed1db69f05","time":{"start":1730880960494,"stop":1730880960513,"duration":19},"status":"failed","statusMessage":"AssertionError: 断言失败","statusTrace":"self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C534BC0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'json'\ncase_data = {'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}, expect_data = {'message': '维度编码只能由数字、字母、下划线组成!', 'state': False}\nsql_type = None, sql_data = None, update_key = None, module = '维度管理', api = '添加维度', title = '反向用例-维度id有特殊字符', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert '添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!' == '维度编码只能由数字、字母、下划线组成!'\nE \nE - 维度编码只能由数字、字母、下划线组成!\nE + 添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!\n\ntest_case\\test_Kumiko\\test_bpm.py:34: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C534BC0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'json'\ncase_data = {'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}, expect_data = {'message': '维度编码只能由数字、字母、下划线组成!', 'state': False}\nsql_type = None, sql_data = None, update_key = None, module = '维度管理', api = '添加维度', title = '反向用例-维度id有特殊字符', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Kumiko\\test_bpm.py:37: AssertionError","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"failed","statusMessage":"AssertionError: 断言失败","statusTrace":"self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C534BC0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'json'\ncase_data = {'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}, expect_data = {'message': '维度编码只能由数字、字母、下划线组成!', 'state': False}\nsql_type = None, sql_data = None, update_key = None, module = '维度管理', api = '添加维度', title = '反向用例-维度id有特殊字符', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert '添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!' == '维度编码只能由数字、字母、下划线组成!'\nE \nE - 维度编码只能由数字、字母、下划线组成!\nE + 添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!\n\ntest_case\\test_Kumiko\\test_bpm.py:34: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C534BC0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'json'\ncase_data = {'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}, expect_data = {'message': '维度编码只能由数字、字母、下划线组成!', 'state': False}\nsql_type = None, sql_data = None, update_key = None, module = '维度管理', api = '添加维度', title = '反向用例-维度id有特殊字符', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Kumiko\\test_bpm.py:37: AssertionError","steps":[],"attachments":[{"uid":"ce9b55cde367f46d","name":"log","source":"ce9b55cde367f46d.txt","type":"text/plain","size":449}],"parameters":[],"shouldDisplayMessage":true,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"添加维度"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'添加维度'"},{"name":"case_data","value":"{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}"},{"name":"expect_data","value":"{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'json'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-维度id有特殊字符'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[{"name":"Product defects","matchedStatuses":[],"flaky":false}],"tags":[]},"source":"35fcf91474563641.json","parameterValues":["'添加维度'","{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id有特殊字符'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"]}
\ No newline at end of file
{"uid":"362afe1344613e2d","name":"反向用例-密码正确-用户名为特殊字符","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"51b74019754c7f46baad94dd99b41275","time":{"start":1730880961040,"stop":1730880961069,"duration":29},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"d7fd8ee99fb74e70","name":"log","source":"d7fd8ee99fb74e70.txt","type":"text/plain","size":511}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'state': False, 'message': '账户错误或该租户未启用'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-密码正确-用户名为特殊字符'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"362afe1344613e2d.json","parameterValues":["'登录系统'","{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为特殊字符'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"36e22ffa2036c8a7","name":"正向用例","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"2e8f3eb25015ae496d7322bbef8e9f17","time":{"start":1730880961276,"stop":1730880961303,"duration":27},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"2a98e514d875cf70","name":"log","source":"2a98e514d875cf70.txt","type":"text/plain","size":462}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"根据维度编码删除维度"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'根据维度编码删除维度'"},{"name":"case_data","value":"{'ids': '需要更新'}"},{"name":"expect_data","value":"{'state': True, 'message': '删除维度成功!'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'DELETE'"},{"name":"mime","value":"'query'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'"},{"name":"sql_type","value":"'select'"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"'ids'"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"36e22ffa2036c8a7.json","parameterValues":["'根据维度编码删除维度'","{'ids': '需要更新'}","{'state': True, 'message': '删除维度成功!'}","'高'","'DELETE'","'query'","'维度管理'","'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'select'","'正向用例'","'ids'","'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"]}
\ No newline at end of file
{"uid":"38b1e09279ff245","name":"正向用例","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"b6f5058ee86658fb7296fbf30f377e08","time":{"start":1730880960425,"stop":1730880960474,"duration":49},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"c8f28198ce3b91c3","name":"log","source":"c8f28198ce3b91c3.txt","type":"text/plain","size":520}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"添加维度"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'添加维度'"},{"name":"case_data","value":"{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}"},{"name":"expect_data","value":"{'state': True, 'message': '添加维度成功!'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'json'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'"},{"name":"sql_type","value":"'delete'"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"38b1e09279ff245.json","parameterValues":["'添加维度'","{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}","{'state': True, 'message': '添加维度成功!'}","'高'","'post'","'json'","'维度管理'","'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'delete'","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"]}
\ No newline at end of file
{"uid":"415f874d4706a568","name":"正向用例","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"c3cc166e9e0e98a0dd49973feae05774","time":{"start":1730880961206,"stop":1730880961219,"duration":13},"status":"failed","statusMessage":"AssertionError: 断言失败","statusTrace":"self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C569EE0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', mime = 'json', case_data = {'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', ...}\nexpect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'delete | select'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}, update_key = 'demId'\nmodule = '组织管理', api = '添加组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert False == True\nE + where False = <built-in method get of dict object at 0x000002692C873080>('state')\nE + where <built-in method get of dict object at 0x000002692C873080> = {'code': 200, 'message': '添加组织失败,组织编码[Kumiko]已存在!', 'state': False, 'value': '保存失败'}.get\nE + where {'code': 200, 'message': '添加组织失败,组织编码[Kumiko]已存在!', 'state': False, 'value': '保存失败'} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_Yukino\\test_bpm.py:35: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C569EE0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', mime = 'json', case_data = {'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', ...}\nexpect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'delete | select'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}, update_key = 'demId'\nmodule = '组织管理', api = '添加组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Yukino\\test_bpm.py:38: AssertionError","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"failed","statusMessage":"AssertionError: 断言失败","statusTrace":"self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C569EE0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', mime = 'json', case_data = {'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', ...}\nexpect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'delete | select'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}, update_key = 'demId'\nmodule = '组织管理', api = '添加组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert False == True\nE + where False = <built-in method get of dict object at 0x000002692C873080>('state')\nE + where <built-in method get of dict object at 0x000002692C873080> = {'code': 200, 'message': '添加组织失败,组织编码[Kumiko]已存在!', 'state': False, 'value': '保存失败'}.get\nE + where {'code': 200, 'message': '添加组织失败,组织编码[Kumiko]已存在!', 'state': False, 'value': '保存失败'} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_Yukino\\test_bpm.py:35: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C569EE0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', mime = 'json', case_data = {'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', ...}\nexpect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'delete | select'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}, update_key = 'demId'\nmodule = '组织管理', api = '添加组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Yukino\\test_bpm.py:38: AssertionError","steps":[],"attachments":[{"uid":"f98f11ae7c63a7c3","name":"log","source":"f98f11ae7c63a7c3.txt","type":"text/plain","size":453}],"parameters":[],"shouldDisplayMessage":true,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"组织管理"},{"name":"story","value":"添加组织"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'添加组织'"},{"name":"case_data","value":"{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"},{"name":"expect_data","value":"{'state': True, 'message': '添加组织成功!'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'json'"},{"name":"module","value":"'组织管理'"},{"name":"sql_data","value":"{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}"},{"name":"sql_type","value":"'delete | select'"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"'demId'"},{"name":"url","value":"'http://36.139.193.99:8088/api/org/v1/org/addOrg'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[{"name":"Product defects","matchedStatuses":[],"flaky":false}],"tags":[]},"source":"415f874d4706a568.json","parameterValues":["'添加组织'","{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}","{'state': True, 'message': '添加组织成功!'}","'高'","'post'","'json'","'组织管理'","{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}","'delete | select'","'正向用例'","'demId'","'http://36.139.193.99:8088/api/org/v1/org/addOrg'"]}
\ No newline at end of file
{"uid":"4748929033dea291","name":"反向用例-用户名正确-密码为特殊字符","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"5e5719a38f5e603ce387a6584361860c","time":{"start":1730880960241,"stop":1730880960266,"duration":25},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"400405be15748ecc","name":"log","source":"400405be15748ecc.txt","type":"text/plain","size":320}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'admin', 'password': '✿❀♧♡♥'}"},{"name":"expect_data","value":"{'state': False, 'message': '账号或密码错误'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-用户名正确-密码为特殊字符'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"4748929033dea291.json","parameterValues":["'登录系统'","{'username': 'admin', 'password': '✿❀♧♡♥'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为特殊字符'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"4dd74b11ffac19f0","name":"反向用例-用户名正确-密码过短","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"3c7beb3676d39d75e5924b899ba8173e","time":{"start":1730880960216,"stop":1730880960236,"duration":20},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"81673449cffb24c4","name":"log","source":"81673449cffb24c4.txt","type":"text/plain","size":306}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'admin', 'password': 'a'}"},{"name":"expect_data","value":"{'state': False, 'message': '账号或密码错误'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-用户名正确-密码过短'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"4dd74b11ffac19f0.json","parameterValues":["'登录系统'","{'username': 'admin', 'password': 'a'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过短'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"52507a5647169f8f","name":"反向用例-用户名正确-密码错误","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"96ea3a5afa49f32bade405cf824ae17c","time":{"start":1730880960792,"stop":1730880960804,"duration":12},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"b2d3664b3dd809ca","name":"log","source":"b2d3664b3dd809ca.txt","type":"text/plain","size":523}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-用户名正确-密码错误'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"52507a5647169f8f.json","parameterValues":["'登录系统'","{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码错误'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"538d13f0f734d324","name":"正向用例","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"f855f2b2c78861fd42210bd29c2290b5","time":{"start":1730880960585,"stop":1730880960606,"duration":21},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"9f73cd959f02a89e","name":"log","source":"9f73cd959f02a89e.txt","type":"text/plain","size":339}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"更新维度"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'更新维度'"},{"name":"case_data","value":"{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}"},{"name":"expect_data","value":"{'state': True, 'message': '更新维度成功!'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'put'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"538d13f0f734d324.json","parameterValues":["'更新维度'","{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}","{'state': True, 'message': '更新维度成功!'}","'高'","'put'","'application/json'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"]}
\ No newline at end of file
{"uid":"5a3ad245ee5fb42d","name":"反向用例-密码正确-用户名为空","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"a7008efe03438fb95ba2a11b72edc9d4","time":{"start":1730880960945,"stop":1730880960968,"duration":23},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"63e079e6c4d4a9fe","name":"log","source":"63e079e6c4d4a9fe.txt","type":"text/plain","size":496}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'state': False, 'message': '账户错误或该租户未启用'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'Post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-密码正确-用户名为空'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"5a3ad245ee5fb42d.json","parameterValues":["'登录系统'","{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'Post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为空'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"5b57448cb22cd038","name":"反向用例-维度id为空","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"a6285d3196c5f18fe1b5c5b2061a52c5","time":{"start":1730880961126,"stop":1730880961139,"duration":13},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"609d6a1fc0435758","name":"log","source":"609d6a1fc0435758.txt","type":"text/plain","size":357}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"添加维度"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'添加维度'"},{"name":"case_data","value":"{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}"},{"name":"expect_data","value":"{'state': False}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'json'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-维度id为空'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"5b57448cb22cd038.json","parameterValues":["'添加维度'","{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"]}
\ No newline at end of file
{"uid":"643278c0ce06b3f6","name":"正向用例","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"343cde229c818efe7f7ae68313dde06e","time":{"start":1730880961237,"stop":1730880961237,"duration":0},"status":"broken","statusMessage":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","statusTrace":"self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C748260>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', mime = 'data', case_data = 'Kumiko', expect_data = {'message': '删除组织成功!', 'state': True}\nsql_type = None, sql_data = None, update_key = None, module = '组织管理', api = '根据组织编码删除组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n> res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n\ntest_case\\test_Yukino\\test_bpm.py:30: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, req_method = 'post'\nreq_url = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', req_mime = 'data', req_case_data = 'Kumiko', sql_type = None, sql_data = None, update_key = None\n\n def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):\n \"\"\"\n 封装公共的请求方法\n :param req_method: 请求方法\n :param req_url: 请求url\n :param req_mime: 请求的媒体类型\n :param req_case_data: 请求数据\n :param sql_type: sql语句类型\n :param sql_data: sql语句\n :param update_key: 更新的key\n :return: Response type\n \"\"\"\n # 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求\n if sql_type == \"delete\":\n self.db.delete(sql_data)\n \n # 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求\n elif sql_type == \"select\":\n select_result = self.db.select(sql_data)\n req_case_data[update_key] = select_result\n \n # 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 要执行删除--删除数据库中现有的数据\n self.db.delete(sql_data[\"delete\"])\n # 查询语句--将查询结果更新到用例数据中\n select_result = self.db.select(sql_data[\"select\"])\n req_case_data[update_key] = select_result\n \n # 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求\n # 发送请求时,用例使用使用哪些关键字传参,需要添加判断\n # 判断媒体类型的值是否为:application/json 或 json,使用json传参\n if req_mime == \"json\" or req_mime == \"application/json\":\n return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)\n \n # 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参\n # 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。\n elif req_mime == \"application/x-www-form-urlencoded\" or req_mime == \"x-www-form-urlencoded\" or req_mime == \"form\":\n return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)\n \n # 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参\n elif req_mime == \"multipart/form-data\" or req_mime == \"form-data\":\n return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)\n \n # 判断媒体类型的值是否为:query,使用params传参\n elif req_mime == \"query\":\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)\n \n # 判断媒体类型的值是否为:None,表示没有传参\n elif req_mime is None:\n return self.bpm_session.request(method=req_method, url=req_url)\n \n # 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。\n elif req_mime == \"query|json\" or req_mime == \"json|query\":\n # requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data[\"query\"], json=req_case_data[\"body\"])\n \n else:\n log.error(f\"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\n> raise ValueError(\"没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\nE ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\n\nrequests_method\\requests_method.py:91: ValueError","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"broken","statusMessage":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","statusTrace":"self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C748260>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', mime = 'data', case_data = 'Kumiko', expect_data = {'message': '删除组织成功!', 'state': True}\nsql_type = None, sql_data = None, update_key = None, module = '组织管理', api = '根据组织编码删除组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n> res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n\ntest_case\\test_Yukino\\test_bpm.py:30: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, req_method = 'post'\nreq_url = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', req_mime = 'data', req_case_data = 'Kumiko', sql_type = None, sql_data = None, update_key = None\n\n def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):\n \"\"\"\n 封装公共的请求方法\n :param req_method: 请求方法\n :param req_url: 请求url\n :param req_mime: 请求的媒体类型\n :param req_case_data: 请求数据\n :param sql_type: sql语句类型\n :param sql_data: sql语句\n :param update_key: 更新的key\n :return: Response type\n \"\"\"\n # 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求\n if sql_type == \"delete\":\n self.db.delete(sql_data)\n \n # 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求\n elif sql_type == \"select\":\n select_result = self.db.select(sql_data)\n req_case_data[update_key] = select_result\n \n # 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 要执行删除--删除数据库中现有的数据\n self.db.delete(sql_data[\"delete\"])\n # 查询语句--将查询结果更新到用例数据中\n select_result = self.db.select(sql_data[\"select\"])\n req_case_data[update_key] = select_result\n \n # 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求\n # 发送请求时,用例使用使用哪些关键字传参,需要添加判断\n # 判断媒体类型的值是否为:application/json 或 json,使用json传参\n if req_mime == \"json\" or req_mime == \"application/json\":\n return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)\n \n # 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参\n # 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。\n elif req_mime == \"application/x-www-form-urlencoded\" or req_mime == \"x-www-form-urlencoded\" or req_mime == \"form\":\n return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)\n \n # 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参\n elif req_mime == \"multipart/form-data\" or req_mime == \"form-data\":\n return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)\n \n # 判断媒体类型的值是否为:query,使用params传参\n elif req_mime == \"query\":\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)\n \n # 判断媒体类型的值是否为:None,表示没有传参\n elif req_mime is None:\n return self.bpm_session.request(method=req_method, url=req_url)\n \n # 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。\n elif req_mime == \"query|json\" or req_mime == \"json|query\":\n # requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data[\"query\"], json=req_case_data[\"body\"])\n \n else:\n log.error(f\"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\n> raise ValueError(\"没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\nE ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\n\nrequests_method\\requests_method.py:91: ValueError","steps":[],"attachments":[{"uid":"8387762434e02afd","name":"log","source":"8387762434e02afd.txt","type":"text/plain","size":183}],"parameters":[],"shouldDisplayMessage":true,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"组织管理"},{"name":"story","value":"根据组织编码删除组织"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'根据组织编码删除组织'"},{"name":"case_data","value":"'Kumiko'"},{"name":"expect_data","value":"{'state': True, 'message': '删除组织成功!'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'data'"},{"name":"module","value":"'组织管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[{"name":"Test defects","matchedStatuses":[],"flaky":false}],"tags":[]},"source":"643278c0ce06b3f6.json","parameterValues":["'根据组织编码删除组织'","'Kumiko'","{'state': True, 'message': '删除组织成功!'}","'高'","'post'","'data'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"]}
\ No newline at end of file
{"uid":"66842018fe89f40b","name":"正向用例","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"b3e88ef83b1abb44b797508448749527","time":{"start":1730880960611,"stop":1730880960643,"duration":32},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"95867ce405fe4fa4","name":"log","source":"95867ce405fe4fa4.txt","type":"text/plain","size":462}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"根据维度编码删除维度"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'根据维度编码删除维度'"},{"name":"case_data","value":"{'ids': '需要更新'}"},{"name":"expect_data","value":"{'state': True, 'message': '删除维度成功!'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'DELETE'"},{"name":"mime","value":"'query'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'"},{"name":"sql_type","value":"'select'"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"'ids'"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"66842018fe89f40b.json","parameterValues":["'根据维度编码删除维度'","{'ids': '需要更新'}","{'state': True, 'message': '删除维度成功!'}","'高'","'DELETE'","'query'","'维度管理'","'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'select'","'正向用例'","'ids'","'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"]}
\ No newline at end of file
{"uid":"74685dcb82d103ae","name":"反向用例-用户名正确-密码为空","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"31f95b5cd414557ffcf8868ef4fe8d93","time":{"start":1730880960913,"stop":1730880960939,"duration":26},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"9b57847f1cda51fc","name":"log","source":"9b57847f1cda51fc.txt","type":"text/plain","size":305}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'admin', 'password': ''}"},{"name":"expect_data","value":"{'state': False, 'message': '账号或密码错误'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-用户名正确-密码为空'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"74685dcb82d103ae.json","parameterValues":["'登录系统'","{'username': 'admin', 'password': ''}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为空'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"7c7924517644a2a2","name":"反向用例-维度id有特殊字符","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"1391cf77afad77191f85415873698de9","time":{"start":1730880961144,"stop":1730880961164,"duration":20},"status":"failed","statusMessage":"AssertionError: 断言失败","statusTrace":"self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C56B530>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'json'\ncase_data = {'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}, expect_data = {'message': '维度编码只能由数字、字母、下划线组成!', 'state': False}\nsql_type = None, sql_data = None, update_key = None, module = '维度管理', api = '添加维度', title = '反向用例-维度id有特殊字符', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert '添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!' == '维度编码只能由数字、字母、下划线组成!'\nE \nE - 维度编码只能由数字、字母、下划线组成!\nE + 添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!\n\ntest_case\\test_Yukino\\test_bpm.py:35: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C56B530>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'json'\ncase_data = {'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}, expect_data = {'message': '维度编码只能由数字、字母、下划线组成!', 'state': False}\nsql_type = None, sql_data = None, update_key = None, module = '维度管理', api = '添加维度', title = '反向用例-维度id有特殊字符', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Yukino\\test_bpm.py:38: AssertionError","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"failed","statusMessage":"AssertionError: 断言失败","statusTrace":"self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C56B530>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'json'\ncase_data = {'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}, expect_data = {'message': '维度编码只能由数字、字母、下划线组成!', 'state': False}\nsql_type = None, sql_data = None, update_key = None, module = '维度管理', api = '添加维度', title = '反向用例-维度id有特殊字符', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert '添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!' == '维度编码只能由数字、字母、下划线组成!'\nE \nE - 维度编码只能由数字、字母、下划线组成!\nE + 添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!\n\ntest_case\\test_Yukino\\test_bpm.py:35: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C56B530>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'json'\ncase_data = {'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}, expect_data = {'message': '维度编码只能由数字、字母、下划线组成!', 'state': False}\nsql_type = None, sql_data = None, update_key = None, module = '维度管理', api = '添加维度', title = '反向用例-维度id有特殊字符', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Yukino\\test_bpm.py:38: AssertionError","steps":[],"attachments":[{"uid":"eb4326b31ac17f9d","name":"log","source":"eb4326b31ac17f9d.txt","type":"text/plain","size":449}],"parameters":[],"shouldDisplayMessage":true,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"添加维度"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'添加维度'"},{"name":"case_data","value":"{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}"},{"name":"expect_data","value":"{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'json'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-维度id有特殊字符'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[{"name":"Product defects","matchedStatuses":[],"flaky":false}],"tags":[]},"source":"7c7924517644a2a2.json","parameterValues":["'添加维度'","{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id有特殊字符'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"]}
\ No newline at end of file
{"uid":"86349294de05edfa","name":"反向用例-密码正确-用户名为空","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"7ccc4f83a055a67baff1228300740605","time":{"start":1730880960301,"stop":1730880960328,"duration":27},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"4d39cdd132134949","name":"log","source":"4d39cdd132134949.txt","type":"text/plain","size":496}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'state': False, 'message': '账户错误或该租户未启用'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'Post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-密码正确-用户名为空'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"86349294de05edfa.json","parameterValues":["'登录系统'","{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'Post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为空'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"8713c074b31a659f","name":"反向用例-用户名正确-密码过长","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"f12665743262df36e5ff10b05e1dc1bb","time":{"start":1730880960091,"stop":1730880960123,"duration":32},"status":"failed","statusMessage":"AssertionError: 断言失败","statusTrace":"self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C561A90>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase_data = {'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHns...UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None, module = '认证接口', api = '登录系统'\ntitle = '反向用例-用户名正确-密码过长', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert None == False\nE + where None = <built-in method get of dict object at 0x000002692C6C3780>('state')\nE + where <built-in method get of dict object at 0x000002692C6C3780> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...gsImlhdCI6MTczMDg4MDc4OH0.ROOdZI7At5MqtwVwvwLiI6Zrj8hE1wGZldHfO8135Z4rC2FNRCGC09YfV_94VDimRwosuPP1SDmaUYP43CUL_A', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...gsImlhdCI6MTczMDg4MDc4OH0.ROOdZI7At5MqtwVwvwLiI6Zrj8hE1wGZldHfO8135Z4rC2FNRCGC09YfV_94VDimRwosuPP1SDmaUYP43CUL_A', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_Kumiko\\test_bpm.py:34: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C561A90>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase_data = {'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHns...UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None, module = '认证接口', api = '登录系统'\ntitle = '反向用例-用户名正确-密码过长', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Kumiko\\test_bpm.py:37: AssertionError","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"failed","statusMessage":"AssertionError: 断言失败","statusTrace":"self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C561A90>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase_data = {'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHns...UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None, module = '认证接口', api = '登录系统'\ntitle = '反向用例-用户名正确-密码过长', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert None == False\nE + where None = <built-in method get of dict object at 0x000002692C6C3780>('state')\nE + where <built-in method get of dict object at 0x000002692C6C3780> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...gsImlhdCI6MTczMDg4MDc4OH0.ROOdZI7At5MqtwVwvwLiI6Zrj8hE1wGZldHfO8135Z4rC2FNRCGC09YfV_94VDimRwosuPP1SDmaUYP43CUL_A', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...gsImlhdCI6MTczMDg4MDc4OH0.ROOdZI7At5MqtwVwvwLiI6Zrj8hE1wGZldHfO8135Z4rC2FNRCGC09YfV_94VDimRwosuPP1SDmaUYP43CUL_A', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_Kumiko\\test_bpm.py:34: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C561A90>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase_data = {'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHns...UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None, module = '认证接口', api = '登录系统'\ntitle = '反向用例-用户名正确-密码过长', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Kumiko\\test_bpm.py:37: AssertionError","steps":[],"attachments":[{"uid":"b8faa1a8d8aad990","name":"log","source":"b8faa1a8d8aad990.txt","type":"text/plain","size":1426}],"parameters":[],"shouldDisplayMessage":true,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'state': False, 'message': '账户错误或该租户未启用'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-用户名正确-密码过长'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[{"name":"Product defects","matchedStatuses":[],"flaky":false}],"tags":[]},"source":"8713c074b31a659f.json","parameterValues":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过长'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"920635ecc05b414d","name":"反向用例-用户名正确-密码为特殊字符","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"d236513d2f58a43b0a882b76e53dd7aa","time":{"start":1730880960880,"stop":1730880960908,"duration":28},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"4fb63f9f20f8bd34","name":"log","source":"4fb63f9f20f8bd34.txt","type":"text/plain","size":320}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'admin', 'password': '✿❀♧♡♥'}"},{"name":"expect_data","value":"{'state': False, 'message': '账号或密码错误'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-用户名正确-密码为特殊字符'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"920635ecc05b414d.json","parameterValues":["'登录系统'","{'username': 'admin', 'password': '✿❀♧♡♥'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为特殊字符'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"9cbcb244ea400311","name":"正向用例","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"488ecbbb2742d70e6423d57951774398","time":{"start":1730880960570,"stop":1730880960570,"duration":0},"status":"broken","statusMessage":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","statusTrace":"self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C536F30>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', mime = 'query | json'\ncase_data = {'body': [{'alias': 'sz', 'value': 1}], 'query': {'orgCode': 'Kumiko'}}, expect_data = {'message': '保存组织参数成功!', 'state': True}, sql_type = None\nsql_data = None, update_key = None, module = '组织管理', api = '保存组织参数', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n> res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n\ntest_case\\test_Kumiko\\test_bpm.py:29: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, req_method = 'post'\nreq_url = 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', req_mime = 'query | json'\nreq_case_data = {'body': [{'alias': 'sz', 'value': 1}], 'query': {'orgCode': 'Kumiko'}}, sql_type = None, sql_data = None, update_key = None\n\n def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):\n \"\"\"\n 封装公共的请求方法\n :param req_method: 请求方法\n :param req_url: 请求url\n :param req_mime: 请求的媒体类型\n :param req_case_data: 请求数据\n :param sql_type: sql语句类型\n :param sql_data: sql语句\n :param update_key: 更新的key\n :return: Response type\n \"\"\"\n # 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求\n if sql_type == \"delete\":\n self.db.delete(sql_data)\n \n # 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求\n elif sql_type == \"select\":\n select_result = self.db.select(sql_data)\n req_case_data[update_key] = select_result\n \n # 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 要执行删除--删除数据库中现有的数据\n self.db.delete(sql_data[\"delete\"])\n # 查询语句--将查询结果更新到用例数据中\n select_result = self.db.select(sql_data[\"select\"])\n req_case_data[update_key] = select_result\n \n # 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求\n # 发送请求时,用例使用使用哪些关键字传参,需要添加判断\n # 判断媒体类型的值是否为:application/json 或 json,使用json传参\n if req_mime == \"json\" or req_mime == \"application/json\":\n return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)\n \n # 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参\n # 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。\n elif req_mime == \"application/x-www-form-urlencoded\" or req_mime == \"x-www-form-urlencoded\" or req_mime == \"form\":\n return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)\n \n # 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参\n elif req_mime == \"multipart/form-data\" or req_mime == \"form-data\":\n return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)\n \n # 判断媒体类型的值是否为:query,使用params传参\n elif req_mime == \"query\":\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)\n \n # 判断媒体类型的值是否为:None,表示没有传参\n elif req_mime is None:\n return self.bpm_session.request(method=req_method, url=req_url)\n \n # 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。\n elif req_mime == \"query|json\" or req_mime == \"json|query\":\n # requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data[\"query\"], json=req_case_data[\"body\"])\n \n else:\n log.error(f\"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\n> raise ValueError(\"没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\nE ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\n\nrequests_method\\requests_method.py:91: ValueError","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"broken","statusMessage":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","statusTrace":"self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C536F30>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', mime = 'query | json'\ncase_data = {'body': [{'alias': 'sz', 'value': 1}], 'query': {'orgCode': 'Kumiko'}}, expect_data = {'message': '保存组织参数成功!', 'state': True}, sql_type = None\nsql_data = None, update_key = None, module = '组织管理', api = '保存组织参数', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n> res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n\ntest_case\\test_Kumiko\\test_bpm.py:29: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, req_method = 'post'\nreq_url = 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', req_mime = 'query | json'\nreq_case_data = {'body': [{'alias': 'sz', 'value': 1}], 'query': {'orgCode': 'Kumiko'}}, sql_type = None, sql_data = None, update_key = None\n\n def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):\n \"\"\"\n 封装公共的请求方法\n :param req_method: 请求方法\n :param req_url: 请求url\n :param req_mime: 请求的媒体类型\n :param req_case_data: 请求数据\n :param sql_type: sql语句类型\n :param sql_data: sql语句\n :param update_key: 更新的key\n :return: Response type\n \"\"\"\n # 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求\n if sql_type == \"delete\":\n self.db.delete(sql_data)\n \n # 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求\n elif sql_type == \"select\":\n select_result = self.db.select(sql_data)\n req_case_data[update_key] = select_result\n \n # 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 要执行删除--删除数据库中现有的数据\n self.db.delete(sql_data[\"delete\"])\n # 查询语句--将查询结果更新到用例数据中\n select_result = self.db.select(sql_data[\"select\"])\n req_case_data[update_key] = select_result\n \n # 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求\n # 发送请求时,用例使用使用哪些关键字传参,需要添加判断\n # 判断媒体类型的值是否为:application/json 或 json,使用json传参\n if req_mime == \"json\" or req_mime == \"application/json\":\n return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)\n \n # 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参\n # 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。\n elif req_mime == \"application/x-www-form-urlencoded\" or req_mime == \"x-www-form-urlencoded\" or req_mime == \"form\":\n return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)\n \n # 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参\n elif req_mime == \"multipart/form-data\" or req_mime == \"form-data\":\n return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)\n \n # 判断媒体类型的值是否为:query,使用params传参\n elif req_mime == \"query\":\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)\n \n # 判断媒体类型的值是否为:None,表示没有传参\n elif req_mime is None:\n return self.bpm_session.request(method=req_method, url=req_url)\n \n # 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。\n elif req_mime == \"query|json\" or req_mime == \"json|query\":\n # requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data[\"query\"], json=req_case_data[\"body\"])\n \n else:\n log.error(f\"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\n> raise ValueError(\"没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\nE ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\n\nrequests_method\\requests_method.py:91: ValueError","steps":[],"attachments":[{"uid":"dcb58758a19462ee","name":"log","source":"dcb58758a19462ee.txt","type":"text/plain","size":191}],"parameters":[],"shouldDisplayMessage":true,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"组织管理"},{"name":"story","value":"保存组织参数"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'保存组织参数'"},{"name":"case_data","value":"{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}"},{"name":"expect_data","value":"{'state': True, 'message': '保存组织参数成功!'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'query | json'"},{"name":"module","value":"'组织管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[{"name":"Test defects","matchedStatuses":[],"flaky":false}],"tags":[]},"source":"9cbcb244ea400311.json","parameterValues":["'保存组织参数'","{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}","{'state': True, 'message': '保存组织参数成功!'}","'高'","'post'","'query | json'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"]}
\ No newline at end of file
{"uid":"9d255dc3f8334a4","name":"反向用例-维度id为空","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"1ad06714ae9e76ea1a55bef57ae482e2","time":{"start":1730880961308,"stop":1730880961321,"duration":13},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"9f7debec4c0f4a6f","name":"log","source":"9f7debec4c0f4a6f.txt","type":"text/plain","size":309}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"根据维度编码删除维度"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'根据维度编码删除维度'"},{"name":"case_data","value":"{'ids': ''}"},{"name":"expect_data","value":"{'state': False, 'message': '删除维度失败,维度ids必填'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'DELETE'"},{"name":"mime","value":"'query'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-维度id为空'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"9d255dc3f8334a4.json","parameterValues":["'根据维度编码删除维度'","{'ids': ''}","{'state': False, 'message': '删除维度失败,维度ids必填'}","'高'","'DELETE'","'query'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"]}
\ No newline at end of file
{"uid":"9e0a065bf71713de","name":"正向用例","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"6777342dfe687a82ab052aaa5dd388a2","time":{"start":1730880961174,"stop":1730880961200,"duration":26},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"4260f091d7f59abf","name":"log","source":"4260f091d7f59abf.txt","type":"text/plain","size":277}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"设置默认维度"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'设置默认维度'"},{"name":"case_data","value":"{'code': 'Kumiko'}"},{"name":"expect_data","value":"{'state': True, 'message': '设置默认维度成功!'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'put'"},{"name":"mime","value":"'query'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"9e0a065bf71713de.json","parameterValues":["'设置默认维度'","{'code': 'Kumiko'}","{'state': True, 'message': '设置默认维度成功!'}","'中'","'put'","'query'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"]}
\ No newline at end of file
{"uid":"9e3c8f86704ce12","name":"反向用例-用户名正确-密码错误","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"706718e33e5164ad89099fe5215f92a2","time":{"start":1730880960074,"stop":1730880960087,"duration":13},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"557d1c9713c9cdab","name":"log","source":"557d1c9713c9cdab.txt","type":"text/plain","size":523}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-用户名正确-密码错误'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"9e3c8f86704ce12.json","parameterValues":["'登录系统'","{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码错误'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"a02e88f8352014e9","name":"反向用例-密码正确-用户名过短","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"f673a9eaef0a31e6c946f711b54104ec","time":{"start":1730880960974,"stop":1730880961001,"duration":27},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"9214f03665162caa","name":"log","source":"9214f03665162caa.txt","type":"text/plain","size":497}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'state': False, 'message': '账户错误或该租户未启用'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-密码正确-用户名过短'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"a02e88f8352014e9.json","parameterValues":["'登录系统'","{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过短'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"a0d28bf51dbb3a56","name":"反向用例-密码正确-用户名过长","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"23fbc7757c434b9d907f58f0a635847f","time":{"start":1730880960363,"stop":1730880960389,"duration":26},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"b656a47720597ab3","name":"log","source":"b656a47720597ab3.txt","type":"text/plain","size":591}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'state': False, 'message': '账户错误或该租户未启用'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-密码正确-用户名过长'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"a0d28bf51dbb3a56.json","parameterValues":["'登录系统'","{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过长'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"bb849c36f37c40c8","name":"正向用例","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"97db433b8c9df7c62d0d676f607c1135","time":{"start":1730880960521,"stop":1730880960544,"duration":23},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"ae7c304278f56e11","name":"log","source":"ae7c304278f56e11.txt","type":"text/plain","size":277}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"设置默认维度"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'设置默认维度'"},{"name":"case_data","value":"{'code': 'Kumiko'}"},{"name":"expect_data","value":"{'state': True, 'message': '设置默认维度成功!'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'put'"},{"name":"mime","value":"'query'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"bb849c36f37c40c8.json","parameterValues":["'设置默认维度'","{'code': 'Kumiko'}","{'state': True, 'message': '设置默认维度成功!'}","'中'","'put'","'query'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"]}
\ No newline at end of file
{"uid":"bd4fd94683e768bd","name":"反向用例-用户名正确-密码过短","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"0d8ae1633f3c700d08127f3965488664","time":{"start":1730880960854,"stop":1730880960874,"duration":20},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"db37314b78a4391f","name":"log","source":"db37314b78a4391f.txt","type":"text/plain","size":306}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'admin', 'password': 'a'}"},{"name":"expect_data","value":"{'state': False, 'message': '账号或密码错误'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-用户名正确-密码过短'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"bd4fd94683e768bd.json","parameterValues":["'登录系统'","{'username': 'admin', 'password': 'a'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过短'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"bd5e5f942338a27c","name":"反向用例-密码正确-用户名过长","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"187cf6e6b8032aa3061659963afec0d7","time":{"start":1730880961007,"stop":1730880961034,"duration":27},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"6a1a4f22dc597cb7","name":"log","source":"6a1a4f22dc597cb7.txt","type":"text/plain","size":591}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'state': False, 'message': '账户错误或该租户未启用'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-密码正确-用户名过长'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"bd5e5f942338a27c.json","parameterValues":["'登录系统'","{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过长'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"c1dd66b6a0617f42","name":"反向用例-用户名正确-密码过长","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"18ff9a88add5f8e5fab1c6fb88102f18","time":{"start":1730880960809,"stop":1730880960843,"duration":34},"status":"failed","statusMessage":"AssertionError: 断言失败","statusTrace":"self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C6A31D0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase_data = {'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHns...UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None, module = '认证接口', api = '登录系统'\ntitle = '反向用例-用户名正确-密码过长', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert None == False\nE + where None = <built-in method get of dict object at 0x000002692C86A680>('state')\nE + where <built-in method get of dict object at 0x000002692C86A680> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...ksImlhdCI6MTczMDg4MDc4OX0.n-jQSuY-n2ZNHgB6KPBA1zlyfFopummPl1u5YLdqXIW3VZ23VS7iM9ARa-V3vNFN1dtycor5go8W55u15nxypg', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...ksImlhdCI6MTczMDg4MDc4OX0.n-jQSuY-n2ZNHgB6KPBA1zlyfFopummPl1u5YLdqXIW3VZ23VS7iM9ARa-V3vNFN1dtycor5go8W55u15nxypg', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_Yukino\\test_bpm.py:35: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C6A31D0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase_data = {'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHns...UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None, module = '认证接口', api = '登录系统'\ntitle = '反向用例-用户名正确-密码过长', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Yukino\\test_bpm.py:38: AssertionError","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"failed","statusMessage":"AssertionError: 断言失败","statusTrace":"self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C6A31D0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase_data = {'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHns...UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None, module = '认证接口', api = '登录系统'\ntitle = '反向用例-用户名正确-密码过长', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert None == False\nE + where None = <built-in method get of dict object at 0x000002692C86A680>('state')\nE + where <built-in method get of dict object at 0x000002692C86A680> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...ksImlhdCI6MTczMDg4MDc4OX0.n-jQSuY-n2ZNHgB6KPBA1zlyfFopummPl1u5YLdqXIW3VZ23VS7iM9ARa-V3vNFN1dtycor5go8W55u15nxypg', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...ksImlhdCI6MTczMDg4MDc4OX0.n-jQSuY-n2ZNHgB6KPBA1zlyfFopummPl1u5YLdqXIW3VZ23VS7iM9ARa-V3vNFN1dtycor5go8W55u15nxypg', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_Yukino\\test_bpm.py:35: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C6A31D0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase_data = {'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHns...UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None, module = '认证接口', api = '登录系统'\ntitle = '反向用例-用户名正确-密码过长', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Yukino\\test_bpm.py:38: AssertionError","steps":[],"attachments":[{"uid":"400f8a5d3d7a9fc5","name":"log","source":"400f8a5d3d7a9fc5.txt","type":"text/plain","size":1426}],"parameters":[],"shouldDisplayMessage":true,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'state': False, 'message': '账户错误或该租户未启用'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-用户名正确-密码过长'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[{"name":"Product defects","matchedStatuses":[],"flaky":false}],"tags":[]},"source":"c1dd66b6a0617f42.json","parameterValues":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过长'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"c84c20bfeabe6446","name":"反向用例-用户名正确-密码为空","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"825577857095ca60bda38a78b8deed53","time":{"start":1730880960271,"stop":1730880960297,"duration":26},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"b2ae8a71307b1c28","name":"log","source":"b2ae8a71307b1c28.txt","type":"text/plain","size":305}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'admin', 'password': ''}"},{"name":"expect_data","value":"{'state': False, 'message': '账号或密码错误'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-用户名正确-密码为空'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"c84c20bfeabe6446.json","parameterValues":["'登录系统'","{'username': 'admin', 'password': ''}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为空'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"cc8cdbd6fe3bbbd","name":"正向用例","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"2f4e3ce668c96b480115165e8ed1dc57","time":{"start":1730880961245,"stop":1730880961271,"duration":26},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"72fa7a0f3400cffe","name":"log","source":"72fa7a0f3400cffe.txt","type":"text/plain","size":339}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"更新维度"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'更新维度'"},{"name":"case_data","value":"{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}"},{"name":"expect_data","value":"{'state': True, 'message': '更新维度成功!'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'put'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"cc8cdbd6fe3bbbd.json","parameterValues":["'更新维度'","{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}","{'state': True, 'message': '更新维度成功!'}","'高'","'put'","'application/json'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"]}
\ No newline at end of file
{"uid":"d9a8308f1e697d8d","name":"正向用例","fullName":"test_case.test_Yukino.test_bpm.TestBPM#test_bpm","historyId":"af59296d2223fb6bcaa1dcbcf2f9be2b","time":{"start":1730880961075,"stop":1730880961121,"duration":46},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880960666,"stop":1730880960751,"duration":85},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"53fd17cdbc4f4c82","name":"log","source":"53fd17cdbc4f4c82.txt","type":"text/plain","size":520}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"添加维度"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Yukino"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Yukino.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'添加维度'"},{"name":"case_data","value":"{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}"},{"name":"expect_data","value":"{'state': True, 'message': '添加维度成功!'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'json'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'"},{"name":"sql_type","value":"'delete'"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"d9a8308f1e697d8d.json","parameterValues":["'添加维度'","{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}","{'state': True, 'message': '添加维度成功!'}","'高'","'post'","'json'","'维度管理'","'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'delete'","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"]}
\ No newline at end of file
{"uid":"da6814c4756d9463","name":"正向用例","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"55735ae788288216164fac4da5cd450d","time":{"start":1730880960548,"stop":1730880960562,"duration":14},"status":"failed","statusMessage":"AssertionError: 断言失败","statusTrace":"self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C5366F0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', mime = 'json', case_data = {'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', ...}\nexpect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'delete | select'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}, update_key = 'demId'\nmodule = '组织管理', api = '添加组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert False == True\nE + where False = <built-in method get of dict object at 0x000002692C870A00>('state')\nE + where <built-in method get of dict object at 0x000002692C870A00> = {'code': 200, 'message': '添加组织失败,组织编码[Kumiko]已存在!', 'state': False, 'value': '保存失败'}.get\nE + where {'code': 200, 'message': '添加组织失败,组织编码[Kumiko]已存在!', 'state': False, 'value': '保存失败'} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_Kumiko\\test_bpm.py:34: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C5366F0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', mime = 'json', case_data = {'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', ...}\nexpect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'delete | select'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}, update_key = 'demId'\nmodule = '组织管理', api = '添加组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Kumiko\\test_bpm.py:37: AssertionError","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"failed","statusMessage":"AssertionError: 断言失败","statusTrace":"self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C5366F0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', mime = 'json', case_data = {'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', ...}\nexpect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'delete | select'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}, update_key = 'demId'\nmodule = '组织管理', api = '添加组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert False == True\nE + where False = <built-in method get of dict object at 0x000002692C870A00>('state')\nE + where <built-in method get of dict object at 0x000002692C870A00> = {'code': 200, 'message': '添加组织失败,组织编码[Kumiko]已存在!', 'state': False, 'value': '保存失败'}.get\nE + where {'code': 200, 'message': '添加组织失败,组织编码[Kumiko]已存在!', 'state': False, 'value': '保存失败'} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_Kumiko\\test_bpm.py:34: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C5366F0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', mime = 'json', case_data = {'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', ...}\nexpect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'delete | select'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}, update_key = 'demId'\nmodule = '组织管理', api = '添加组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Kumiko\\test_bpm.py:37: AssertionError","steps":[],"attachments":[{"uid":"1f5480dd3efe72c","name":"log","source":"1f5480dd3efe72c.txt","type":"text/plain","size":453}],"parameters":[],"shouldDisplayMessage":true,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"组织管理"},{"name":"story","value":"添加组织"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'添加组织'"},{"name":"case_data","value":"{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"},{"name":"expect_data","value":"{'state': True, 'message': '添加组织成功!'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'json'"},{"name":"module","value":"'组织管理'"},{"name":"sql_data","value":"{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}"},{"name":"sql_type","value":"'delete | select'"},{"name":"title","value":"'正向用例'"},{"name":"update_key","value":"'demId'"},{"name":"url","value":"'http://36.139.193.99:8088/api/org/v1/org/addOrg'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[{"name":"Product defects","matchedStatuses":[],"flaky":false}],"tags":[]},"source":"da6814c4756d9463.json","parameterValues":["'添加组织'","{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}","{'state': True, 'message': '添加组织成功!'}","'高'","'post'","'json'","'组织管理'","{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}","'delete | select'","'正向用例'","'demId'","'http://36.139.193.99:8088/api/org/v1/org/addOrg'"]}
\ No newline at end of file
{"uid":"f38a59bbb8fc9de4","name":"反向用例-维度id为空","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"cc552298c7c1b0b09732d1046be44664","time":{"start":1730880960480,"stop":1730880960490,"duration":10},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"8b29df0250bdea11","name":"log","source":"8b29df0250bdea11.txt","type":"text/plain","size":357}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"添加维度"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'添加维度'"},{"name":"case_data","value":"{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}"},{"name":"expect_data","value":"{'state': False}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'json'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-维度id为空'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"f38a59bbb8fc9de4.json","parameterValues":["'添加维度'","{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"]}
\ No newline at end of file
{"uid":"f8903e812fe69fab","name":"反向用例-密码正确-用户名过短","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"c56daabd4d9838e945c29e45ee3d9256","time":{"start":1730880960332,"stop":1730880960358,"duration":26},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"3a9aa1c69df942d0","name":"log","source":"3a9aa1c69df942d0.txt","type":"text/plain","size":497}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"认证接口"},{"name":"story","value":"登录系统"},{"name":"severity","value":"中"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'登录系统'"},{"name":"case_data","value":"{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"},{"name":"expect_data","value":"{'state': False, 'message': '账户错误或该租户未启用'}"},{"name":"level","value":"'中'"},{"name":"method","value":"'post'"},{"name":"mime","value":"'application/json'"},{"name":"module","value":"'认证接口'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-密码正确-用户名过短'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/auth'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"f8903e812fe69fab.json","parameterValues":["'登录系统'","{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过短'","None","'http://36.139.193.99:8088/auth'"]}
\ No newline at end of file
{"uid":"fb9b01518ffdb3b2","name":"反向用例-维度id为空","fullName":"test_case.test_Kumiko.test_bpm.TestBPM#test_bpm","historyId":"490f1a08d82f8c3fcc79e9186c5d8e15","time":{"start":1730880960649,"stop":1730880960662,"duration":13},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"_session_faker","time":{"start":1730880959924,"stop":1730880959970,"duration":46},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false},{"name":"req_fix","time":{"start":1730880959970,"stop":1730880960039,"duration":69},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"testStage":{"status":"passed","steps":[],"attachments":[{"uid":"8125be982e31ca2b","name":"log","source":"8125be982e31ca2b.txt","type":"text/plain","size":309}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"hasContent":true,"stepsCount":0,"attachmentStep":false},"afterStages":[{"name":"req_fix::0","time":{"start":1730880961324,"stop":1730880961324,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"stepsCount":0,"attachmentStep":false}],"labels":[{"name":"feature","value":"维度管理"},{"name":"story","value":"根据维度编码删除维度"},{"name":"severity","value":"高"},{"name":"epic","value":"BPM_Kumiko"},{"name":"parentSuite","value":"test_case.test_Kumiko"},{"name":"suite","value":"test_bpm"},{"name":"subSuite","value":"TestBPM"},{"name":"host","value":"Lin"},{"name":"thread","value":"23792-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.test_Kumiko.test_bpm"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"api","value":"'根据维度编码删除维度'"},{"name":"case_data","value":"{'ids': ''}"},{"name":"expect_data","value":"{'state': False, 'message': '删除维度失败,维度ids必填'}"},{"name":"level","value":"'高'"},{"name":"method","value":"'DELETE'"},{"name":"mime","value":"'query'"},{"name":"module","value":"'维度管理'"},{"name":"sql_data","value":"None"},{"name":"sql_type","value":"None"},{"name":"title","value":"'反向用例-维度id为空'"},{"name":"update_key","value":"None"},{"name":"url","value":"'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"}],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"tags":[]},"source":"fb9b01518ffdb3b2.json","parameterValues":["'根据维度编码删除维度'","{'ids': ''}","{'state': False, 'message': '删除维度失败,维度ids必填'}","'高'","'DELETE'","'query'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"]}
\ No newline at end of file
{"uid":"ab17fc5a4eb3bca4b216b548c7f9fcbc","name":"timeline","children":[{"name":"Lin","children":[{"name":"23792-MainThread","children":[{"name":"反向用例-密码正确-用户名过短","uid":"a02e88f8352014e9","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960974,"stop":1730880961001,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例","uid":"36e22ffa2036c8a7","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880961276,"stop":1730880961303,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': '需要更新'}","{'state': True, 'message': '删除维度成功!'}","'高'","'DELETE'","'query'","'维度管理'","'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'select'","'正向用例'","'ids'","'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"],"tags":[]},{"name":"反向用例-用户名正确-密码过短","uid":"bd4fd94683e768bd","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960854,"stop":1730880960874,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'a'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为空","uid":"86349294de05edfa","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960301,"stop":1730880960328,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'Post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例","uid":"66842018fe89f40b","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960611,"stop":1730880960643,"duration":32},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': '需要更新'}","{'state': True, 'message': '删除维度成功!'}","'高'","'DELETE'","'query'","'维度管理'","'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'select'","'正向用例'","'ids'","'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"],"tags":[]},{"name":"反向用例-密码正确-用户名为空","uid":"5a3ad245ee5fb42d","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960945,"stop":1730880960968,"duration":23},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'Post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为空","uid":"c84c20bfeabe6446","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960271,"stop":1730880960297,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': ''}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例","uid":"d9a8308f1e697d8d","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880961075,"stop":1730880961121,"duration":46},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}","{'state': True, 'message': '添加维度成功!'}","'高'","'post'","'json'","'维度管理'","'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'delete'","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"正向用例-用户和密码正确","uid":"32f81ab018ee398e","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960751,"stop":1730880960788,"duration":37},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}","'高'","'post'","'application/json'","'认证接口'","None","None","'正向用例-用户和密码正确'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-维度id有特殊字符","uid":"7c7924517644a2a2","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"failed","time":{"start":1730880961144,"stop":1730880961164,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id有特殊字符'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-用户名正确-密码过长","uid":"8713c074b31a659f","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"failed","time":{"start":1730880960091,"stop":1730880960123,"duration":32},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例","uid":"538d13f0f734d324","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960585,"stop":1730880960606,"duration":21},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'更新维度'","{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}","{'state': True, 'message': '更新维度成功!'}","'高'","'put'","'application/json'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"],"tags":[]},{"name":"反向用例-密码正确-用户名过短","uid":"f8903e812fe69fab","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960332,"stop":1730880960358,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例","uid":"13178474907f0092","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"broken","time":{"start":1730880961229,"stop":1730880961229,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'保存组织参数'","{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}","{'state': True, 'message': '保存组织参数成功!'}","'高'","'post'","'query | json'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"f38a59bbb8fc9de4","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960480,"stop":1730880960490,"duration":10},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"正向用例","uid":"415f874d4706a568","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"failed","time":{"start":1730880961206,"stop":1730880961219,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加组织'","{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}","{'state': True, 'message': '添加组织成功!'}","'高'","'post'","'json'","'组织管理'","{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}","'delete | select'","'正向用例'","'demId'","'http://36.139.193.99:8088/api/org/v1/org/addOrg'"],"tags":[]},{"name":"反向用例-密码正确-用户名为特殊字符","uid":"362afe1344613e2d","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880961040,"stop":1730880961069,"duration":29},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例","uid":"9e0a065bf71713de","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880961174,"stop":1730880961200,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'设置默认维度'","{'code': 'Kumiko'}","{'state': True, 'message': '设置默认维度成功!'}","'中'","'put'","'query'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"],"tags":[]},{"name":"反向用例-密码正确-用户名过长","uid":"bd5e5f942338a27c","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880961007,"stop":1730880961034,"duration":27},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"fb9b01518ffdb3b2","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960649,"stop":1730880960662,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': ''}","{'state': False, 'message': '删除维度失败,维度ids必填'}","'高'","'DELETE'","'query'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"],"tags":[]},{"name":"反向用例-用户名正确-密码错误","uid":"52507a5647169f8f","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960792,"stop":1730880960804,"duration":12},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码错误'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-维度id有特殊字符","uid":"35fcf91474563641","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"failed","time":{"start":1730880960494,"stop":1730880960513,"duration":19},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id有特殊字符'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"正向用例","uid":"cc8cdbd6fe3bbbd","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880961245,"stop":1730880961271,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'更新维度'","{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}","{'state': True, 'message': '更新维度成功!'}","'高'","'put'","'application/json'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"],"tags":[]},{"name":"反向用例-用户名正确-密码为特殊字符","uid":"920635ecc05b414d","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960880,"stop":1730880960908,"duration":28},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': '✿❀♧♡♥'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为空","uid":"74685dcb82d103ae","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960913,"stop":1730880960939,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': ''}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为空'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例","uid":"643278c0ce06b3f6","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"broken","time":{"start":1730880961237,"stop":1730880961237,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据组织编码删除组织'","'Kumiko'","{'state': True, 'message': '删除组织成功!'}","'高'","'post'","'data'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"],"tags":[]},{"name":"反向用例-用户名正确-密码错误","uid":"9e3c8f86704ce12","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960074,"stop":1730880960087,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码错误'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"9d255dc3f8334a4","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880961308,"stop":1730880961321,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据维度编码删除维度'","{'ids': ''}","{'state': False, 'message': '删除维度失败,维度ids必填'}","'高'","'DELETE'","'query'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"],"tags":[]},{"name":"正向用例","uid":"da6814c4756d9463","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"failed","time":{"start":1730880960548,"stop":1730880960562,"duration":14},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加组织'","{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}","{'state': True, 'message': '添加组织成功!'}","'高'","'post'","'json'","'组织管理'","{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}","'delete | select'","'正向用例'","'demId'","'http://36.139.193.99:8088/api/org/v1/org/addOrg'"],"tags":[]},{"name":"正向用例","uid":"bb849c36f37c40c8","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960521,"stop":1730880960544,"duration":23},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'设置默认维度'","{'code': 'Kumiko'}","{'state': True, 'message': '设置默认维度成功!'}","'中'","'put'","'query'","'维度管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"],"tags":[]},{"name":"正向用例","uid":"225eb6ab2f03c528","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"broken","time":{"start":1730880960577,"stop":1730880960577,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'根据组织编码删除组织'","'Kumiko'","{'state': True, 'message': '删除组织成功!'}","'高'","'post'","'data'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"],"tags":[]},{"name":"反向用例-用户名正确-密码过长","uid":"c1dd66b6a0617f42","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"failed","time":{"start":1730880960809,"stop":1730880960843,"duration":34},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名过长","uid":"a0d28bf51dbb3a56","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960363,"stop":1730880960389,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名过长'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"正向用例","uid":"9cbcb244ea400311","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"broken","time":{"start":1730880960570,"stop":1730880960570,"duration":0},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'保存组织参数'","{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}","{'state': True, 'message': '保存组织参数成功!'}","'高'","'post'","'query | json'","'组织管理'","None","None","'正向用例'","None","'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"],"tags":[]},{"name":"正向用例","uid":"38b1e09279ff245","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960425,"stop":1730880960474,"duration":49},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}","{'state': True, 'message': '添加维度成功!'}","'高'","'post'","'json'","'维度管理'","'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'","'delete'","'正向用例'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"反向用例-用户名正确-密码过短","uid":"4dd74b11ffac19f0","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960216,"stop":1730880960236,"duration":20},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'a'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码过短'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-用户名正确-密码为特殊字符","uid":"4748929033dea291","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960241,"stop":1730880960266,"duration":25},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': '✿❀♧♡♥'}","{'state': False, 'message': '账号或密码错误'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-用户名正确-密码为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-维度id为空","uid":"5b57448cb22cd038","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880961126,"stop":1730880961139,"duration":13},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'添加维度'","{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}","{'state': False}","'中'","'post'","'json'","'维度管理'","None","None","'反向用例-维度id为空'","None","'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"],"tags":[]},{"name":"正向用例-用户和密码正确","uid":"30ff1ffde3541d50","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960040,"stop":1730880960068,"duration":28},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}","'高'","'post'","'application/json'","'认证接口'","None","None","'正向用例-用户和密码正确'","None","'http://36.139.193.99:8088/auth'"],"tags":[]},{"name":"反向用例-密码正确-用户名为特殊字符","uid":"2b722454d868a398","parentUid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066","status":"passed","time":{"start":1730880960394,"stop":1730880960420,"duration":26},"flaky":false,"newFailed":false,"newPassed":false,"newBroken":false,"retriesCount":0,"retriesStatusChange":false,"parameters":["'登录系统'","{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}","{'state': False, 'message': '账户错误或该租户未启用'}","'中'","'post'","'application/json'","'认证接口'","None","None","'反向用例-密码正确-用户名为特殊字符'","None","'http://36.139.193.99:8088/auth'"],"tags":[]}],"uid":"4bd1e6f3d0b5b2be114ee8c0b3fcb066"}],"uid":"5cae8e415ce89357bd2efcb35f753d39"}]}
\ No newline at end of file
launch_status failed=6 1730881098000000000
launch_status broken=4 1730881098000000000
launch_status passed=30 1730881098000000000
launch_status skipped=0 1730881098000000000
launch_status unknown=0 1730881098000000000
launch_time duration=1281 1730881098000000000
launch_time min_duration=0 1730881098000000000
launch_time max_duration=49 1730881098000000000
launch_time sum_duration=877 1730881098000000000
launch_time start=1730880960040 1730881098000000000
launch_time stop=1730880961321 1730881098000000000
launch_problems product_defects=6 1730881098000000000
launch_problems test_defects=4 1730881098000000000
launch_retries retries=0 1730881098000000000
launch_retries run=40 1730881098000000000
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Allure Report summary mail</title>
</head>
<body>
Mail body
</body>
</html>
launch_status_failed 6
launch_status_broken 4
launch_status_passed 30
launch_status_skipped 0
launch_status_unknown 0
launch_time_duration 1281
launch_time_min_duration 0
launch_time_max_duration 49
launch_time_sum_duration 877
launch_time_start 1730880960040
launch_time_stop 1730880961321
launch_problems_product_defects 6
launch_problems_test_defects 4
launch_retries_retries 0
launch_retries_run 40
[{"data":{"Product defects":6,"Test defects":4}}]
\ No newline at end of file
[{"data":{"duration":1281}}]
\ No newline at end of file
[{"data":{"failed":6,"broken":4,"skipped":0,"passed":30,"unknown":0,"total":40}}]
\ No newline at end of file
{"2e8f3eb25015ae496d7322bbef8e9f17":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"36e22ffa2036c8a7","status":"passed","time":{"start":1730880961276,"stop":1730880961303,"duration":27}}]},"18ff9a88add5f8e5fab1c6fb88102f18":{"statistic":{"failed":1,"broken":0,"skipped":0,"passed":0,"unknown":0,"total":1},"items":[{"uid":"c1dd66b6a0617f42","status":"failed","statusDetails":"AssertionError: 断言失败","time":{"start":1730880960809,"stop":1730880960843,"duration":34}}]},"7ccc4f83a055a67baff1228300740605":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"86349294de05edfa","status":"passed","time":{"start":1730880960301,"stop":1730880960328,"duration":27}}]},"2f4e3ce668c96b480115165e8ed1dc57":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"cc8cdbd6fe3bbbd","status":"passed","time":{"start":1730880961245,"stop":1730880961271,"duration":26}}]},"488ecbbb2742d70e6423d57951774398":{"statistic":{"failed":0,"broken":1,"skipped":0,"passed":0,"unknown":0,"total":1},"items":[{"uid":"9cbcb244ea400311","status":"broken","statusDetails":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","time":{"start":1730880960570,"stop":1730880960570,"duration":0}}]},"343cde229c818efe7f7ae68313dde06e":{"statistic":{"failed":0,"broken":1,"skipped":0,"passed":0,"unknown":0,"total":1},"items":[{"uid":"643278c0ce06b3f6","status":"broken","statusDetails":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","time":{"start":1730880961237,"stop":1730880961237,"duration":0}}]},"c3cc166e9e0e98a0dd49973feae05774":{"statistic":{"failed":1,"broken":0,"skipped":0,"passed":0,"unknown":0,"total":1},"items":[{"uid":"415f874d4706a568","status":"failed","statusDetails":"AssertionError: 断言失败","time":{"start":1730880961206,"stop":1730880961219,"duration":13}}]},"23fbc7757c434b9d907f58f0a635847f":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"a0d28bf51dbb3a56","status":"passed","time":{"start":1730880960363,"stop":1730880960389,"duration":26}}]},"f673a9eaef0a31e6c946f711b54104ec":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"a02e88f8352014e9","status":"passed","time":{"start":1730880960974,"stop":1730880961001,"duration":27}}]},"c56daabd4d9838e945c29e45ee3d9256":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"f8903e812fe69fab","status":"passed","time":{"start":1730880960332,"stop":1730880960358,"duration":26}}]},"86270d8e53b4a9ef6700843d0c1e89a4":{"statistic":{"failed":0,"broken":1,"skipped":0,"passed":0,"unknown":0,"total":1},"items":[{"uid":"13178474907f0092","status":"broken","statusDetails":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","time":{"start":1730880961229,"stop":1730880961229,"duration":0}}]},"92360596ebe278c01eee0e54165a96e7":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"30ff1ffde3541d50","status":"passed","time":{"start":1730880960040,"stop":1730880960068,"duration":28}}]},"cc552298c7c1b0b09732d1046be44664":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"f38a59bbb8fc9de4","status":"passed","time":{"start":1730880960480,"stop":1730880960490,"duration":10}}]},"3bfe9744e70830af8ab24b1f89804d90":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"32f81ab018ee398e","status":"passed","time":{"start":1730880960751,"stop":1730880960788,"duration":37}}]},"3c7beb3676d39d75e5924b899ba8173e":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"4dd74b11ffac19f0","status":"passed","time":{"start":1730880960216,"stop":1730880960236,"duration":20}}]},"490f1a08d82f8c3fcc79e9186c5d8e15":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"fb9b01518ffdb3b2","status":"passed","time":{"start":1730880960649,"stop":1730880960662,"duration":13}}]},"a7008efe03438fb95ba2a11b72edc9d4":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"5a3ad245ee5fb42d","status":"passed","time":{"start":1730880960945,"stop":1730880960968,"duration":23}}]},"b3e88ef83b1abb44b797508448749527":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"66842018fe89f40b","status":"passed","time":{"start":1730880960611,"stop":1730880960643,"duration":32}}]},"1391cf77afad77191f85415873698de9":{"statistic":{"failed":1,"broken":0,"skipped":0,"passed":0,"unknown":0,"total":1},"items":[{"uid":"7c7924517644a2a2","status":"failed","statusDetails":"AssertionError: 断言失败","time":{"start":1730880961144,"stop":1730880961164,"duration":20}}]},"af59296d2223fb6bcaa1dcbcf2f9be2b":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"d9a8308f1e697d8d","status":"passed","time":{"start":1730880961075,"stop":1730880961121,"duration":46}}]},"706718e33e5164ad89099fe5215f92a2":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"9e3c8f86704ce12","status":"passed","time":{"start":1730880960074,"stop":1730880960087,"duration":13}}]},"f12665743262df36e5ff10b05e1dc1bb":{"statistic":{"failed":1,"broken":0,"skipped":0,"passed":0,"unknown":0,"total":1},"items":[{"uid":"8713c074b31a659f","status":"failed","statusDetails":"AssertionError: 断言失败","time":{"start":1730880960091,"stop":1730880960123,"duration":32}}]},"f855f2b2c78861fd42210bd29c2290b5":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"538d13f0f734d324","status":"passed","time":{"start":1730880960585,"stop":1730880960606,"duration":21}}]},"6777342dfe687a82ab052aaa5dd388a2":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"9e0a065bf71713de","status":"passed","time":{"start":1730880961174,"stop":1730880961200,"duration":26}}]},"1ad06714ae9e76ea1a55bef57ae482e2":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"9d255dc3f8334a4","status":"passed","time":{"start":1730880961308,"stop":1730880961321,"duration":13}}]},"0d8ae1633f3c700d08127f3965488664":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"bd4fd94683e768bd","status":"passed","time":{"start":1730880960854,"stop":1730880960874,"duration":20}}]},"187cf6e6b8032aa3061659963afec0d7":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"bd5e5f942338a27c","status":"passed","time":{"start":1730880961007,"stop":1730880961034,"duration":27}}]},"51b74019754c7f46baad94dd99b41275":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"362afe1344613e2d","status":"passed","time":{"start":1730880961040,"stop":1730880961069,"duration":29}}]},"a6285d3196c5f18fe1b5c5b2061a52c5":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"5b57448cb22cd038","status":"passed","time":{"start":1730880961126,"stop":1730880961139,"duration":13}}]},"96ea3a5afa49f32bade405cf824ae17c":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"52507a5647169f8f","status":"passed","time":{"start":1730880960792,"stop":1730880960804,"duration":12}}]},"55735ae788288216164fac4da5cd450d":{"statistic":{"failed":1,"broken":0,"skipped":0,"passed":0,"unknown":0,"total":1},"items":[{"uid":"da6814c4756d9463","status":"failed","statusDetails":"AssertionError: 断言失败","time":{"start":1730880960548,"stop":1730880960562,"duration":14}}]},"44cee1474fc583311c18c6ed1db69f05":{"statistic":{"failed":1,"broken":0,"skipped":0,"passed":0,"unknown":0,"total":1},"items":[{"uid":"35fcf91474563641","status":"failed","statusDetails":"AssertionError: 断言失败","time":{"start":1730880960494,"stop":1730880960513,"duration":19}}]},"5e5719a38f5e603ce387a6584361860c":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"4748929033dea291","status":"passed","time":{"start":1730880960241,"stop":1730880960266,"duration":25}}]},"97db433b8c9df7c62d0d676f607c1135":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"bb849c36f37c40c8","status":"passed","time":{"start":1730880960521,"stop":1730880960544,"duration":23}}]},"31f95b5cd414557ffcf8868ef4fe8d93":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"74685dcb82d103ae","status":"passed","time":{"start":1730880960913,"stop":1730880960939,"duration":26}}]},"d236513d2f58a43b0a882b76e53dd7aa":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"920635ecc05b414d","status":"passed","time":{"start":1730880960880,"stop":1730880960908,"duration":28}}]},"825577857095ca60bda38a78b8deed53":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"c84c20bfeabe6446","status":"passed","time":{"start":1730880960271,"stop":1730880960297,"duration":26}}]},"9166f1e51d45b343f6b4f6d4ed68eb1b":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"2b722454d868a398","status":"passed","time":{"start":1730880960394,"stop":1730880960420,"duration":26}}]},"dee662659759b2c5304cb19df4d4d17d":{"statistic":{"failed":0,"broken":1,"skipped":0,"passed":0,"unknown":0,"total":1},"items":[{"uid":"225eb6ab2f03c528","status":"broken","statusDetails":"ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖","time":{"start":1730880960577,"stop":1730880960577,"duration":0}}]},"b6f5058ee86658fb7296fbf30f377e08":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":1,"unknown":0,"total":1},"items":[{"uid":"38b1e09279ff245","status":"passed","time":{"start":1730880960425,"stop":1730880960474,"duration":49}}]}}
\ No newline at end of file
[{"data":{"run":40,"retry":0}}]
\ No newline at end of file
<!DOCTYPE html>
<html dir="ltr" lang="en">
<head>
<meta charset="utf-8">
<title>Allure Report</title>
<link rel="icon" href="favicon.ico">
<link rel="stylesheet" type="text/css" href="styles.css">
<link rel="stylesheet" type="text/css" href="plugin/screen-diff/styles.css">
</head>
<body>
<div id="alert"></div>
<div id="content">
<span class="spinner">
<span class="spinner__circle"></span>
</span>
</div>
<div id="popup"></div>
<script src="app.js"></script>
<script src="plugin/behaviors/index.js"></script>
<script src="plugin/packages/index.js"></script>
<script src="plugin/screen-diff/index.js"></script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-FVWC4GKEYS"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-FVWC4GKEYS', {
'allureVersion': '2.31.0',
'reportUuid': 'ba24179f-3955-4e82-9a2b-f4c270380c58',
'single_file': false
});
</script>
</body>
</html>
'use strict';
allure.api.addTranslation('en', {
tab: {
behaviors: {
name: 'Behaviors'
}
},
widget: {
behaviors: {
name: 'Features by stories',
showAll: 'show all'
}
}
});
allure.api.addTranslation('ru', {
tab: {
behaviors: {
name: 'Функциональность'
}
},
widget: {
behaviors: {
name: 'Функциональность',
showAll: 'показать все'
}
}
});
allure.api.addTranslation('zh', {
tab: {
behaviors: {
name: '功能'
}
},
widget: {
behaviors: {
name: '特性场景',
showAll: '显示所有'
}
}
});
allure.api.addTranslation('de', {
tab: {
behaviors: {
name: 'Verhalten'
}
},
widget: {
behaviors: {
name: 'Features nach Stories',
showAll: 'Zeige alle'
}
}
});
allure.api.addTranslation('nl', {
tab: {
behaviors: {
name: 'Functionaliteit'
}
},
widget: {
behaviors: {
name: 'Features en story’s',
showAll: 'Toon alle'
}
}
});
allure.api.addTranslation('he', {
tab: {
behaviors: {
name: 'התנהגויות'
}
},
widget: {
behaviors: {
name: 'תכונות לפי סיפורי משתמש',
showAll: 'הצג הכול'
}
}
});
allure.api.addTranslation('br', {
tab: {
behaviors: {
name: 'Comportamentos'
}
},
widget: {
behaviors: {
name: 'Funcionalidades por história',
showAll: 'Mostrar tudo'
}
}
});
allure.api.addTranslation('ja', {
tab: {
behaviors: {
name: '振る舞い'
}
},
widget: {
behaviors: {
name: 'ストーリー別の機能',
showAll: '全て表示'
}
}
});
allure.api.addTranslation('es', {
tab: {
behaviors: {
name: 'Funcionalidades'
}
},
widget: {
behaviors: {
name: 'Funcionalidades por Historias de Usuario',
showAll: 'mostrar todo'
}
}
});
allure.api.addTranslation('kr', {
tab: {
behaviors: {
name: '동작'
}
},
widget: {
behaviors: {
name: '스토리별 기능',
showAll: '전체 보기'
}
}
});
allure.api.addTranslation('fr', {
tab: {
behaviors: {
name: 'Comportements'
}
},
widget: {
behaviors: {
name: 'Thèmes par histoires',
showAll: 'Montrer tout'
}
}
});
allure.api.addTranslation('pl', {
tab: {
behaviors: {
name: 'Zachowania'
}
},
widget: {
behaviors: {
name: 'Funkcje według historii',
showAll: 'pokaż wszystko'
}
}
});
allure.api.addTranslation('az', {
tab: {
behaviors: {
name: 'Davranışlar'
}
},
widget: {
behaviors: {
name: 'Hekayələr üzrə xüsusiyyətlər',
showAll: 'hamısını göstər'
}
}
});
allure.api.addTranslation('sv', {
tab: {
behaviors: {
name: 'Beteenden'
}
},
widget: {
behaviors: {
name: 'Funktioner efter user stories',
showAll: 'visa allt'
}
}
});
allure.api.addTranslation('isv', {
tab: {
behaviors: {
name: 'Funkcionalnost',
}
},
widget: {
behaviors: {
name: 'Funkcionalnost',
showAll: 'pokaži vsěčto',
}
}
});
allure.api.addTranslation('ka', {
tab: {
behaviors: {
name: 'ფუნქციონალი',
}
},
widget: {
behaviors: {
name: 'ფუნქციონალი',
showAll: 'ყველას ჩვენება',
}
}
});
allure.api.addTranslation('it', {
tab: {
behaviors: {
name: 'Comportamenti'
}
},
widget: {
behaviors: {
name: 'Funzionalità per storie',
showAll: 'Mostra tutto'
}
}
});
allure.api.addTab('behaviors', {
title: 'tab.behaviors.name', icon: 'fa fa-list',
route: 'behaviors(/)(:testGroup)(/)(:testResult)(/)(:testResultTab)(/)',
onEnter: (function (testGroup, testResult, testResultTab) {
return new allure.components.TreeLayout({
testGroup: testGroup,
testResult: testResult,
testResultTab: testResultTab,
tabName: 'tab.behaviors.name',
baseUrl: 'behaviors',
url: 'data/behaviors.json',
csvUrl: 'data/behaviors.csv'
});
})
});
allure.api.addWidget('widgets', 'behaviors', allure.components.WidgetStatusView.extend({
rowTag: 'a',
title: 'widget.behaviors.name',
baseUrl: 'behaviors',
showLinks: true
}));
'use strict';
allure.api.addTranslation('en', {
tab: {
packages: {
name: 'Packages'
}
}
});
allure.api.addTranslation('ru', {
tab: {
packages: {
name: 'Пакеты'
}
}
});
allure.api.addTranslation('zh', {
tab: {
packages: {
name: '包'
}
}
});
allure.api.addTranslation('de', {
tab: {
packages: {
name: 'Pakete'
}
}
});
allure.api.addTranslation('nl', {
tab: {
packages: {
name: 'Packages'
}
}
});
allure.api.addTranslation('he', {
tab: {
packages: {
name: 'חבילות'
}
}
});
allure.api.addTranslation('br', {
tab: {
packages: {
name: 'Pacotes'
}
}
});
allure.api.addTranslation('ja', {
tab: {
packages: {
name: 'パッケージ'
}
}
});
allure.api.addTranslation('es', {
tab: {
packages: {
name: 'Paquetes'
}
}
});
allure.api.addTranslation('kr', {
tab: {
packages: {
name: '패키지'
}
}
});
allure.api.addTranslation('fr', {
tab: {
packages: {
name: 'Paquets'
}
}
});
allure.api.addTranslation('pl', {
tab: {
packages: {
name: 'Pakiety'
}
}
});
allure.api.addTranslation('az', {
tab: {
packages: {
name: 'Paketlər'
}
}
});
allure.api.addTranslation('sv', {
tab: {
packages: {
name: 'Paket'
}
}
});
allure.api.addTranslation('isv', {
tab: {
packages: {
name: 'Pakety'
}
}
});
allure.api.addTranslation('ka', {
tab: {
packages: {
name: 'პაკეტები'
}
}
});
allure.api.addTranslation('it', {
tab: {
packages: {
name: 'Pacchetti'
}
}
});
allure.api.addTab('packages', {
title: 'tab.packages.name', icon: 'fa fa-align-left',
route: 'packages(/)(:testGroup)(/)(:testResult)(/)(:testResultTab)(/)',
onEnter: (function (testGroup, testResult, testResultTab) {
return new allure.components.TreeLayout({
testGroup: testGroup,
testResult: testResult,
testResultTab: testResultTab,
tabName: 'tab.packages.name',
baseUrl: 'packages',
url: 'data/packages.json'
});
})
});
(function () {
var settings = allure.getPluginSettings('screen-diff', { diffType: 'diff' });
function renderImage(src) {
return (
'<div class="screen-diff__container">' +
'<img class="screen-diff__image" src="' +
src +
'">' +
'</div>'
);
}
function findImage(data, name) {
if (data.testStage && data.testStage.attachments) {
var matchedImage = data.testStage.attachments.filter(function (attachment) {
return attachment.name === name;
})[0];
if (matchedImage) {
return 'data/attachments/' + matchedImage.source;
}
}
return null;
}
function renderDiffContent(type, diffImage, actualImage, expectedImage) {
if (type === 'diff') {
if (diffImage) {
return renderImage(diffImage);
}
}
if (type === 'overlay' && expectedImage) {
return (
'<div class="screen-diff__overlay screen-diff__container">' +
'<img class="screen-diff__image" src="' +
expectedImage +
'">' +
'<div class="screen-diff__image-over">' +
'<img class="screen-diff__image" src="' +
actualImage +
'">' +
'</div>' +
'</div>'
);
}
if (actualImage) {
return renderImage(actualImage);
}
return 'No diff data provided';
}
var TestResultView = Backbone.Marionette.View.extend({
regions: {
subView: '.screen-diff-view',
},
template: function () {
return '<div class="screen-diff-view"></div>';
},
onRender: function () {
var data = this.model.toJSON();
var testType = data.labels.filter(function (label) {
return label.name === 'testType';
})[0];
var diffImage = findImage(data, 'diff');
var actualImage = findImage(data, 'actual');
var expectedImage = findImage(data, 'expected');
if (!testType || testType.value !== 'screenshotDiff') {
return;
}
this.showChildView(
'subView',
new ScreenDiffView({
diffImage: diffImage,
actualImage: actualImage,
expectedImage: expectedImage,
}),
);
},
});
var ErrorView = Backbone.Marionette.View.extend({
templateContext: function () {
return this.options;
},
template: function (data) {
return '<pre class="screen-diff-error">' + data.error + '</pre>';
},
});
var AttachmentView = Backbone.Marionette.View.extend({
regions: {
subView: '.screen-diff-view',
},
template: function () {
return '<div class="screen-diff-view"></div>';
},
onRender: function () {
jQuery
.getJSON(this.options.sourceUrl)
.then(this.renderScreenDiffView.bind(this), this.renderErrorView.bind(this));
},
renderErrorView: function (error) {
console.log(error);
this.showChildView(
'subView',
new ErrorView({
error: error.statusText,
}),
);
},
renderScreenDiffView: function (data) {
this.showChildView(
'subView',
new ScreenDiffView({
diffImage: data.diff,
actualImage: data.actual,
expectedImage: data.expected,
}),
);
},
});
var ScreenDiffView = Backbone.Marionette.View.extend({
className: 'pane__section',
events: function () {
return {
['click [name="screen-diff-type-' + this.cid + '"]']: 'onDiffTypeChange',
'mousemove .screen-diff__overlay': 'onOverlayMove',
};
},
initialize: function (options) {
this.diffImage = options.diffImage;
this.actualImage = options.actualImage;
this.expectedImage = options.expectedImage;
this.radioName = 'screen-diff-type-' + this.cid;
},
templateContext: function () {
return {
diffType: settings.get('diffType'),
diffImage: this.diffImage,
actualImage: this.actualImage,
expectedImage: this.expectedImage,
radioName: this.radioName,
};
},
template: function (data) {
if (!data.diffImage && !data.actualImage && !data.expectedImage) {
return '';
}
return (
'<h3 class="pane__section-title">Screen Diff</h3>' +
'<div class="screen-diff__content">' +
'<div class="screen-diff__switchers">' +
'<label><input type="radio" name="' +
data.radioName +
'" value="diff"> Show diff</label>' +
'<label><input type="radio" name="' +
data.radioName +
'" value="overlay"> Show overlay</label>' +
'</div>' +
renderDiffContent(
data.diffType,
data.diffImage,
data.actualImage,
data.expectedImage,
) +
'</div>'
);
},
adjustImageSize: function (event) {
var overImage = this.$(event.target);
overImage.width(overImage.width());
},
onRender: function () {
const diffType = settings.get('diffType');
this.$('[name="' + this.radioName + '"][value="' + diffType + '"]').prop(
'checked',
true,
);
if (diffType === 'overlay') {
this.$('.screen-diff__image-over img').on('load', this.adjustImageSize.bind(this));
}
},
onOverlayMove: function (event) {
var pageX = event.pageX;
var containerScroll = this.$('.screen-diff__container').scrollLeft();
var elementX = event.currentTarget.getBoundingClientRect().left;
var delta = pageX - elementX + containerScroll;
this.$('.screen-diff__image-over').width(delta);
},
onDiffTypeChange: function (event) {
settings.save('diffType', event.target.value);
this.render();
},
});
allure.api.addTestResultBlock(TestResultView, { position: 'before' });
allure.api.addAttachmentViewer('application/vnd.allure.image.diff', {
View: AttachmentView,
icon: 'fa fa-exchange',
});
})();
.screen-diff__switchers {
margin-bottom: 1em;
}
.screen-diff__switchers label + label {
margin-left: 1em;
}
.screen-diff__overlay {
position: relative;
cursor: col-resize;
}
.screen-diff__container {
overflow-x: auto;
}
.screen-diff__image-over {
top: 0;
left: 0;
bottom: 0;
background: #fff;
position: absolute;
overflow: hidden;
box-shadow: 2px 0 1px -1px #aaa;
}
.screen-diff-error {
color: #fd5a3e;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
{"total":1,"items":[{"uid":"9cf7ce22457f2bdeb218a067297869b5","name":"BPM_Kumiko","statistic":{"failed":3,"broken":0,"skipped":0,"passed":0,"unknown":0,"total":3}}]}
\ No newline at end of file
[{"data":{"Product defects":6,"Test defects":4}}]
\ No newline at end of file
{"total":2,"items":[{"uid":"8fb3a91ba5aaf9de24cc8a92edc82b5d","name":"Product defects","statistic":{"failed":6,"broken":0,"skipped":0,"passed":0,"unknown":0,"total":6}},{"uid":"bdbf199525818fae7a8651db9eafe741","name":"Test defects","statistic":{"failed":0,"broken":4,"skipped":0,"passed":0,"unknown":0,"total":4}}]}
\ No newline at end of file
[{"data":{"duration":1281}}]
\ No newline at end of file
[{"uid":"36e22ffa2036c8a7","name":"正向用例","time":{"start":1730880961276,"stop":1730880961303,"duration":27},"status":"passed","severity":"normal"},{"uid":"a02e88f8352014e9","name":"反向用例-密码正确-用户名过短","time":{"start":1730880960974,"stop":1730880961001,"duration":27},"status":"passed","severity":"normal"},{"uid":"643278c0ce06b3f6","name":"正向用例","time":{"start":1730880961237,"stop":1730880961237,"duration":0},"status":"broken","severity":"normal"},{"uid":"32f81ab018ee398e","name":"正向用例-用户和密码正确","time":{"start":1730880960751,"stop":1730880960788,"duration":37},"status":"passed","severity":"normal"},{"uid":"c1dd66b6a0617f42","name":"反向用例-用户名正确-密码过长","time":{"start":1730880960809,"stop":1730880960843,"duration":34},"status":"failed","severity":"normal"},{"uid":"d9a8308f1e697d8d","name":"正向用例","time":{"start":1730880961075,"stop":1730880961121,"duration":46},"status":"passed","severity":"normal"},{"uid":"66842018fe89f40b","name":"正向用例","time":{"start":1730880960611,"stop":1730880960643,"duration":32},"status":"passed","severity":"normal"},{"uid":"5a3ad245ee5fb42d","name":"反向用例-密码正确-用户名为空","time":{"start":1730880960945,"stop":1730880960968,"duration":23},"status":"passed","severity":"normal"},{"uid":"86349294de05edfa","name":"反向用例-密码正确-用户名为空","time":{"start":1730880960301,"stop":1730880960328,"duration":27},"status":"passed","severity":"normal"},{"uid":"35fcf91474563641","name":"反向用例-维度id有特殊字符","time":{"start":1730880960494,"stop":1730880960513,"duration":19},"status":"failed","severity":"normal"},{"uid":"bd4fd94683e768bd","name":"反向用例-用户名正确-密码过短","time":{"start":1730880960854,"stop":1730880960874,"duration":20},"status":"passed","severity":"normal"},{"uid":"538d13f0f734d324","name":"正向用例","time":{"start":1730880960585,"stop":1730880960606,"duration":21},"status":"passed","severity":"normal"},{"uid":"9cbcb244ea400311","name":"正向用例","time":{"start":1730880960570,"stop":1730880960570,"duration":0},"status":"broken","severity":"normal"},{"uid":"30ff1ffde3541d50","name":"正向用例-用户和密码正确","time":{"start":1730880960040,"stop":1730880960068,"duration":28},"status":"passed","severity":"normal"},{"uid":"8713c074b31a659f","name":"反向用例-用户名正确-密码过长","time":{"start":1730880960091,"stop":1730880960123,"duration":32},"status":"failed","severity":"normal"},{"uid":"5b57448cb22cd038","name":"反向用例-维度id为空","time":{"start":1730880961126,"stop":1730880961139,"duration":13},"status":"passed","severity":"normal"},{"uid":"7c7924517644a2a2","name":"反向用例-维度id有特殊字符","time":{"start":1730880961144,"stop":1730880961164,"duration":20},"status":"failed","severity":"normal"},{"uid":"225eb6ab2f03c528","name":"正向用例","time":{"start":1730880960577,"stop":1730880960577,"duration":0},"status":"broken","severity":"normal"},{"uid":"c84c20bfeabe6446","name":"反向用例-用户名正确-密码为空","time":{"start":1730880960271,"stop":1730880960297,"duration":26},"status":"passed","severity":"normal"},{"uid":"415f874d4706a568","name":"正向用例","time":{"start":1730880961206,"stop":1730880961219,"duration":13},"status":"failed","severity":"normal"},{"uid":"4748929033dea291","name":"反向用例-用户名正确-密码为特殊字符","time":{"start":1730880960241,"stop":1730880960266,"duration":25},"status":"passed","severity":"normal"},{"uid":"2b722454d868a398","name":"反向用例-密码正确-用户名为特殊字符","time":{"start":1730880960394,"stop":1730880960420,"duration":26},"status":"passed","severity":"normal"},{"uid":"9d255dc3f8334a4","name":"反向用例-维度id为空","time":{"start":1730880961308,"stop":1730880961321,"duration":13},"status":"passed","severity":"normal"},{"uid":"4dd74b11ffac19f0","name":"反向用例-用户名正确-密码过短","time":{"start":1730880960216,"stop":1730880960236,"duration":20},"status":"passed","severity":"normal"},{"uid":"fb9b01518ffdb3b2","name":"反向用例-维度id为空","time":{"start":1730880960649,"stop":1730880960662,"duration":13},"status":"passed","severity":"normal"},{"uid":"74685dcb82d103ae","name":"反向用例-用户名正确-密码为空","time":{"start":1730880960913,"stop":1730880960939,"duration":26},"status":"passed","severity":"normal"},{"uid":"bb849c36f37c40c8","name":"正向用例","time":{"start":1730880960521,"stop":1730880960544,"duration":23},"status":"passed","severity":"normal"},{"uid":"cc8cdbd6fe3bbbd","name":"正向用例","time":{"start":1730880961245,"stop":1730880961271,"duration":26},"status":"passed","severity":"normal"},{"uid":"38b1e09279ff245","name":"正向用例","time":{"start":1730880960425,"stop":1730880960474,"duration":49},"status":"passed","severity":"normal"},{"uid":"f38a59bbb8fc9de4","name":"反向用例-维度id为空","time":{"start":1730880960480,"stop":1730880960490,"duration":10},"status":"passed","severity":"normal"},{"uid":"da6814c4756d9463","name":"正向用例","time":{"start":1730880960548,"stop":1730880960562,"duration":14},"status":"failed","severity":"normal"},{"uid":"362afe1344613e2d","name":"反向用例-密码正确-用户名为特殊字符","time":{"start":1730880961040,"stop":1730880961069,"duration":29},"status":"passed","severity":"normal"},{"uid":"f8903e812fe69fab","name":"反向用例-密码正确-用户名过短","time":{"start":1730880960332,"stop":1730880960358,"duration":26},"status":"passed","severity":"normal"},{"uid":"bd5e5f942338a27c","name":"反向用例-密码正确-用户名过长","time":{"start":1730880961007,"stop":1730880961034,"duration":27},"status":"passed","severity":"normal"},{"uid":"a0d28bf51dbb3a56","name":"反向用例-密码正确-用户名过长","time":{"start":1730880960363,"stop":1730880960389,"duration":26},"status":"passed","severity":"normal"},{"uid":"13178474907f0092","name":"正向用例","time":{"start":1730880961229,"stop":1730880961229,"duration":0},"status":"broken","severity":"normal"},{"uid":"9e0a065bf71713de","name":"正向用例","time":{"start":1730880961174,"stop":1730880961200,"duration":26},"status":"passed","severity":"normal"},{"uid":"52507a5647169f8f","name":"反向用例-用户名正确-密码错误","time":{"start":1730880960792,"stop":1730880960804,"duration":12},"status":"passed","severity":"normal"},{"uid":"9e3c8f86704ce12","name":"反向用例-用户名正确-密码错误","time":{"start":1730880960074,"stop":1730880960087,"duration":13},"status":"passed","severity":"normal"},{"uid":"920635ecc05b414d","name":"反向用例-用户名正确-密码为特殊字符","time":{"start":1730880960880,"stop":1730880960908,"duration":28},"status":"passed","severity":"normal"}]
\ No newline at end of file
[{"data":{"failed":6,"broken":4,"skipped":0,"passed":30,"unknown":0,"total":40}}]
\ No newline at end of file
[{"data":{"run":40,"retry":0}}]
\ No newline at end of file
[{"uid":"a0d28bf51dbb3a56","name":"反向用例-密码正确-用户名过长","time":{"start":1730880960363,"stop":1730880960389,"duration":26},"status":"passed","severity":"normal"},{"uid":"2b722454d868a398","name":"反向用例-密码正确-用户名为特殊字符","time":{"start":1730880960394,"stop":1730880960420,"duration":26},"status":"passed","severity":"normal"},{"uid":"38b1e09279ff245","name":"正向用例","time":{"start":1730880960425,"stop":1730880960474,"duration":49},"status":"passed","severity":"normal"},{"uid":"4748929033dea291","name":"反向用例-用户名正确-密码为特殊字符","time":{"start":1730880960241,"stop":1730880960266,"duration":25},"status":"passed","severity":"normal"},{"uid":"fb9b01518ffdb3b2","name":"反向用例-维度id为空","time":{"start":1730880960649,"stop":1730880960662,"duration":13},"status":"passed","severity":"normal"},{"uid":"74685dcb82d103ae","name":"反向用例-用户名正确-密码为空","time":{"start":1730880960913,"stop":1730880960939,"duration":26},"status":"passed","severity":"normal"},{"uid":"35fcf91474563641","name":"反向用例-维度id有特殊字符","time":{"start":1730880960494,"stop":1730880960513,"duration":19},"status":"failed","severity":"normal"},{"uid":"bd5e5f942338a27c","name":"反向用例-密码正确-用户名过长","time":{"start":1730880961007,"stop":1730880961034,"duration":27},"status":"passed","severity":"normal"},{"uid":"da6814c4756d9463","name":"正向用例","time":{"start":1730880960548,"stop":1730880960562,"duration":14},"status":"failed","severity":"normal"},{"uid":"cc8cdbd6fe3bbbd","name":"正向用例","time":{"start":1730880961245,"stop":1730880961271,"duration":26},"status":"passed","severity":"normal"},{"uid":"52507a5647169f8f","name":"反向用例-用户名正确-密码错误","time":{"start":1730880960792,"stop":1730880960804,"duration":12},"status":"passed","severity":"normal"},{"uid":"7c7924517644a2a2","name":"反向用例-维度id有特殊字符","time":{"start":1730880961144,"stop":1730880961164,"duration":20},"status":"failed","severity":"normal"},{"uid":"9e0a065bf71713de","name":"正向用例","time":{"start":1730880961174,"stop":1730880961200,"duration":26},"status":"passed","severity":"normal"},{"uid":"32f81ab018ee398e","name":"正向用例-用户和密码正确","time":{"start":1730880960751,"stop":1730880960788,"duration":37},"status":"passed","severity":"normal"},{"uid":"13178474907f0092","name":"正向用例","time":{"start":1730880961229,"stop":1730880961229,"duration":0},"status":"broken","severity":"normal"},{"uid":"920635ecc05b414d","name":"反向用例-用户名正确-密码为特殊字符","time":{"start":1730880960880,"stop":1730880960908,"duration":28},"status":"passed","severity":"normal"},{"uid":"415f874d4706a568","name":"正向用例","time":{"start":1730880961206,"stop":1730880961219,"duration":13},"status":"failed","severity":"normal"},{"uid":"9e3c8f86704ce12","name":"反向用例-用户名正确-密码错误","time":{"start":1730880960074,"stop":1730880960087,"duration":13},"status":"passed","severity":"normal"},{"uid":"f38a59bbb8fc9de4","name":"反向用例-维度id为空","time":{"start":1730880960480,"stop":1730880960490,"duration":10},"status":"passed","severity":"normal"},{"uid":"362afe1344613e2d","name":"反向用例-密码正确-用户名为特殊字符","time":{"start":1730880961040,"stop":1730880961069,"duration":29},"status":"passed","severity":"normal"},{"uid":"5b57448cb22cd038","name":"反向用例-维度id为空","time":{"start":1730880961126,"stop":1730880961139,"duration":13},"status":"passed","severity":"normal"},{"uid":"f8903e812fe69fab","name":"反向用例-密码正确-用户名过短","time":{"start":1730880960332,"stop":1730880960358,"duration":26},"status":"passed","severity":"normal"},{"uid":"86349294de05edfa","name":"反向用例-密码正确-用户名为空","time":{"start":1730880960301,"stop":1730880960328,"duration":27},"status":"passed","severity":"normal"},{"uid":"bd4fd94683e768bd","name":"反向用例-用户名正确-密码过短","time":{"start":1730880960854,"stop":1730880960874,"duration":20},"status":"passed","severity":"normal"},{"uid":"538d13f0f734d324","name":"正向用例","time":{"start":1730880960585,"stop":1730880960606,"duration":21},"status":"passed","severity":"normal"},{"uid":"8713c074b31a659f","name":"反向用例-用户名正确-密码过长","time":{"start":1730880960091,"stop":1730880960123,"duration":32},"status":"failed","severity":"normal"},{"uid":"66842018fe89f40b","name":"正向用例","time":{"start":1730880960611,"stop":1730880960643,"duration":32},"status":"passed","severity":"normal"},{"uid":"5a3ad245ee5fb42d","name":"反向用例-密码正确-用户名为空","time":{"start":1730880960945,"stop":1730880960968,"duration":23},"status":"passed","severity":"normal"},{"uid":"a02e88f8352014e9","name":"反向用例-密码正确-用户名过短","time":{"start":1730880960974,"stop":1730880961001,"duration":27},"status":"passed","severity":"normal"},{"uid":"30ff1ffde3541d50","name":"正向用例-用户和密码正确","time":{"start":1730880960040,"stop":1730880960068,"duration":28},"status":"passed","severity":"normal"},{"uid":"d9a8308f1e697d8d","name":"正向用例","time":{"start":1730880961075,"stop":1730880961121,"duration":46},"status":"passed","severity":"normal"},{"uid":"bb849c36f37c40c8","name":"正向用例","time":{"start":1730880960521,"stop":1730880960544,"duration":23},"status":"passed","severity":"normal"},{"uid":"225eb6ab2f03c528","name":"正向用例","time":{"start":1730880960577,"stop":1730880960577,"duration":0},"status":"broken","severity":"normal"},{"uid":"c1dd66b6a0617f42","name":"反向用例-用户名正确-密码过长","time":{"start":1730880960809,"stop":1730880960843,"duration":34},"status":"failed","severity":"normal"},{"uid":"4dd74b11ffac19f0","name":"反向用例-用户名正确-密码过短","time":{"start":1730880960216,"stop":1730880960236,"duration":20},"status":"passed","severity":"normal"},{"uid":"36e22ffa2036c8a7","name":"正向用例","time":{"start":1730880961276,"stop":1730880961303,"duration":27},"status":"passed","severity":"normal"},{"uid":"9cbcb244ea400311","name":"正向用例","time":{"start":1730880960570,"stop":1730880960570,"duration":0},"status":"broken","severity":"normal"},{"uid":"c84c20bfeabe6446","name":"反向用例-用户名正确-密码为空","time":{"start":1730880960271,"stop":1730880960297,"duration":26},"status":"passed","severity":"normal"},{"uid":"643278c0ce06b3f6","name":"正向用例","time":{"start":1730880961237,"stop":1730880961237,"duration":0},"status":"broken","severity":"normal"},{"uid":"9d255dc3f8334a4","name":"反向用例-维度id为空","time":{"start":1730880961308,"stop":1730880961321,"duration":13},"status":"passed","severity":"normal"}]
\ No newline at end of file
[{"uid":"36e22ffa2036c8a7","name":"正向用例","time":{"start":1730880961276,"stop":1730880961303,"duration":27},"status":"passed","severity":"normal"},{"uid":"a02e88f8352014e9","name":"反向用例-密码正确-用户名过短","time":{"start":1730880960974,"stop":1730880961001,"duration":27},"status":"passed","severity":"normal"},{"uid":"643278c0ce06b3f6","name":"正向用例","time":{"start":1730880961237,"stop":1730880961237,"duration":0},"status":"broken","severity":"normal"},{"uid":"32f81ab018ee398e","name":"正向用例-用户和密码正确","time":{"start":1730880960751,"stop":1730880960788,"duration":37},"status":"passed","severity":"normal"},{"uid":"c1dd66b6a0617f42","name":"反向用例-用户名正确-密码过长","time":{"start":1730880960809,"stop":1730880960843,"duration":34},"status":"failed","severity":"normal"},{"uid":"d9a8308f1e697d8d","name":"正向用例","time":{"start":1730880961075,"stop":1730880961121,"duration":46},"status":"passed","severity":"normal"},{"uid":"66842018fe89f40b","name":"正向用例","time":{"start":1730880960611,"stop":1730880960643,"duration":32},"status":"passed","severity":"normal"},{"uid":"5a3ad245ee5fb42d","name":"反向用例-密码正确-用户名为空","time":{"start":1730880960945,"stop":1730880960968,"duration":23},"status":"passed","severity":"normal"},{"uid":"86349294de05edfa","name":"反向用例-密码正确-用户名为空","time":{"start":1730880960301,"stop":1730880960328,"duration":27},"status":"passed","severity":"normal"},{"uid":"35fcf91474563641","name":"反向用例-维度id有特殊字符","time":{"start":1730880960494,"stop":1730880960513,"duration":19},"status":"failed","severity":"normal"},{"uid":"bd4fd94683e768bd","name":"反向用例-用户名正确-密码过短","time":{"start":1730880960854,"stop":1730880960874,"duration":20},"status":"passed","severity":"normal"},{"uid":"538d13f0f734d324","name":"正向用例","time":{"start":1730880960585,"stop":1730880960606,"duration":21},"status":"passed","severity":"normal"},{"uid":"9cbcb244ea400311","name":"正向用例","time":{"start":1730880960570,"stop":1730880960570,"duration":0},"status":"broken","severity":"normal"},{"uid":"30ff1ffde3541d50","name":"正向用例-用户和密码正确","time":{"start":1730880960040,"stop":1730880960068,"duration":28},"status":"passed","severity":"normal"},{"uid":"8713c074b31a659f","name":"反向用例-用户名正确-密码过长","time":{"start":1730880960091,"stop":1730880960123,"duration":32},"status":"failed","severity":"normal"},{"uid":"5b57448cb22cd038","name":"反向用例-维度id为空","time":{"start":1730880961126,"stop":1730880961139,"duration":13},"status":"passed","severity":"normal"},{"uid":"7c7924517644a2a2","name":"反向用例-维度id有特殊字符","time":{"start":1730880961144,"stop":1730880961164,"duration":20},"status":"failed","severity":"normal"},{"uid":"225eb6ab2f03c528","name":"正向用例","time":{"start":1730880960577,"stop":1730880960577,"duration":0},"status":"broken","severity":"normal"},{"uid":"c84c20bfeabe6446","name":"反向用例-用户名正确-密码为空","time":{"start":1730880960271,"stop":1730880960297,"duration":26},"status":"passed","severity":"normal"},{"uid":"415f874d4706a568","name":"正向用例","time":{"start":1730880961206,"stop":1730880961219,"duration":13},"status":"failed","severity":"normal"},{"uid":"4748929033dea291","name":"反向用例-用户名正确-密码为特殊字符","time":{"start":1730880960241,"stop":1730880960266,"duration":25},"status":"passed","severity":"normal"},{"uid":"2b722454d868a398","name":"反向用例-密码正确-用户名为特殊字符","time":{"start":1730880960394,"stop":1730880960420,"duration":26},"status":"passed","severity":"normal"},{"uid":"9d255dc3f8334a4","name":"反向用例-维度id为空","time":{"start":1730880961308,"stop":1730880961321,"duration":13},"status":"passed","severity":"normal"},{"uid":"4dd74b11ffac19f0","name":"反向用例-用户名正确-密码过短","time":{"start":1730880960216,"stop":1730880960236,"duration":20},"status":"passed","severity":"normal"},{"uid":"fb9b01518ffdb3b2","name":"反向用例-维度id为空","time":{"start":1730880960649,"stop":1730880960662,"duration":13},"status":"passed","severity":"normal"},{"uid":"74685dcb82d103ae","name":"反向用例-用户名正确-密码为空","time":{"start":1730880960913,"stop":1730880960939,"duration":26},"status":"passed","severity":"normal"},{"uid":"bb849c36f37c40c8","name":"正向用例","time":{"start":1730880960521,"stop":1730880960544,"duration":23},"status":"passed","severity":"normal"},{"uid":"cc8cdbd6fe3bbbd","name":"正向用例","time":{"start":1730880961245,"stop":1730880961271,"duration":26},"status":"passed","severity":"normal"},{"uid":"38b1e09279ff245","name":"正向用例","time":{"start":1730880960425,"stop":1730880960474,"duration":49},"status":"passed","severity":"normal"},{"uid":"f38a59bbb8fc9de4","name":"反向用例-维度id为空","time":{"start":1730880960480,"stop":1730880960490,"duration":10},"status":"passed","severity":"normal"},{"uid":"da6814c4756d9463","name":"正向用例","time":{"start":1730880960548,"stop":1730880960562,"duration":14},"status":"failed","severity":"normal"},{"uid":"362afe1344613e2d","name":"反向用例-密码正确-用户名为特殊字符","time":{"start":1730880961040,"stop":1730880961069,"duration":29},"status":"passed","severity":"normal"},{"uid":"f8903e812fe69fab","name":"反向用例-密码正确-用户名过短","time":{"start":1730880960332,"stop":1730880960358,"duration":26},"status":"passed","severity":"normal"},{"uid":"bd5e5f942338a27c","name":"反向用例-密码正确-用户名过长","time":{"start":1730880961007,"stop":1730880961034,"duration":27},"status":"passed","severity":"normal"},{"uid":"a0d28bf51dbb3a56","name":"反向用例-密码正确-用户名过长","time":{"start":1730880960363,"stop":1730880960389,"duration":26},"status":"passed","severity":"normal"},{"uid":"13178474907f0092","name":"正向用例","time":{"start":1730880961229,"stop":1730880961229,"duration":0},"status":"broken","severity":"normal"},{"uid":"9e0a065bf71713de","name":"正向用例","time":{"start":1730880961174,"stop":1730880961200,"duration":26},"status":"passed","severity":"normal"},{"uid":"52507a5647169f8f","name":"反向用例-用户名正确-密码错误","time":{"start":1730880960792,"stop":1730880960804,"duration":12},"status":"passed","severity":"normal"},{"uid":"9e3c8f86704ce12","name":"反向用例-用户名正确-密码错误","time":{"start":1730880960074,"stop":1730880960087,"duration":13},"status":"passed","severity":"normal"},{"uid":"920635ecc05b414d","name":"反向用例-用户名正确-密码为特殊字符","time":{"start":1730880960880,"stop":1730880960908,"duration":28},"status":"passed","severity":"normal"}]
\ No newline at end of file
{"total":2,"items":[{"uid":"b187659cafaef061883d171349e6d6cb","name":"test_case.test_Kumiko","statistic":{"failed":3,"broken":2,"skipped":0,"passed":15,"unknown":0,"total":20}},{"uid":"025356d13757175074772e0f1d563270","name":"test_case.test_Yukino","statistic":{"failed":3,"broken":2,"skipped":0,"passed":15,"unknown":0,"total":20}}]}
\ No newline at end of file
{"reportName":"Allure Report","testRuns":[],"statistic":{"failed":6,"broken":4,"skipped":0,"passed":30,"unknown":0,"total":40},"time":{"start":1730880960040,"stop":1730880961321,"duration":1281,"minDuration":0,"maxDuration":49,"sumDuration":877}}
\ No newline at end of file
{"uuid": "35008592-8287-4889-b3b8-6ee8df9ad868", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960301, "stop": 1730880960301}], "start": 1730880960301, "stop": 1730880960329}
\ No newline at end of file
{"uuid": "9c07686b-c726-460a-b04a-d6d4f579a406", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960577, "stop": 1730880960577}], "start": 1730880960577, "stop": 1730880960583}
\ No newline at end of file
{"uuid": "705072e4-0773-400e-b2bc-68714155f643", "befores": [{"name": "api", "status": "passed", "start": 1730880960241, "stop": 1730880960241}], "start": 1730880960241, "stop": 1730880960267}
\ No newline at end of file
{"uuid": "67f36fec-e3e3-431c-9c3e-c3da854a6ae9", "befores": [{"name": "title", "status": "passed", "start": 1730880960040, "stop": 1730880960040}], "start": 1730880960040, "stop": 1730880960069}
\ No newline at end of file
{"uuid": "8629cfc6-a2b1-4dc5-b680-d4e0ff4283e2", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960853, "stop": 1730880960853}], "start": 1730880960853, "stop": 1730880960877}
\ No newline at end of file
ERROR  root:requests_method.py:90 方法:request_all,传入的媒体类型为:data, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖
\ No newline at end of file
{"uuid": "367f6706-50d2-4a51-b0de-2e7a1b1fef30", "befores": [{"name": "api", "status": "passed", "start": 1730880960792, "stop": 1730880960792}], "start": 1730880960792, "stop": 1730880960806}
\ No newline at end of file
{"uuid": "95ba946f-577e-437f-876b-5b7d3fbfcd55", "befores": [{"name": "title", "status": "passed", "start": 1730880960792, "stop": 1730880960792}], "start": 1730880960792, "stop": 1730880960804}
\ No newline at end of file
{"uuid": "a576184d-374a-447f-b566-819c0db7465c", "befores": [{"name": "title", "status": "passed", "start": 1730880960332, "stop": 1730880960332}], "start": 1730880960332, "stop": 1730880960359}
\ No newline at end of file
{"uuid": "d9ce5b9c-d845-4f41-94a8-6656a15f60f5", "befores": [{"name": "method", "status": "passed", "start": 1730880960973, "stop": 1730880960973}], "start": 1730880960973, "stop": 1730880961006}
\ No newline at end of file
{"uuid": "3c72eaf0-5068-4bb1-989d-cdba870e067d", "befores": [{"name": "module", "status": "passed", "start": 1730880960521, "stop": 1730880960521}], "start": 1730880960521, "stop": 1730880960544}
\ No newline at end of file
{"uuid": "1a3c648f-36fc-4973-85f8-69288c175105", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960585, "stop": 1730880960585}], "start": 1730880960585, "stop": 1730880960608}
\ No newline at end of file
{"name": "反向用例-密码正确-用户名为空", "status": "passed", "attachments": [{"name": "log", "source": "ba652d2a-a91d-4cc3-844a-3e314c0543f0-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'Post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-密码正确-用户名为空'"}, {"name": "level", "value": "'中'"}], "start": 1730880960301, "stop": 1730880960328, "uuid": "55afc6c0-3f6f-44c7-9416-a34501a4c327", "historyId": "7ccc4f83a055a67baff1228300740605", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "6d0d329a-e2c5-4d47-9e19-fbf7a57aaea2", "befores": [{"name": "mime", "status": "passed", "start": 1730880961126, "stop": 1730880961126}], "start": 1730880961126, "stop": 1730880961141}
\ No newline at end of file
{"uuid": "4319b547-00fe-46c0-b2a7-ce2aaba9291e", "befores": [{"name": "url", "status": "passed", "start": 1730880961007, "stop": 1730880961007}], "start": 1730880961007, "stop": 1730880961038}
\ No newline at end of file
{"uuid": "086601a4-3f31-4d80-a2fe-e6af6db94920", "befores": [{"name": "mime", "status": "passed", "start": 1730880960425, "stop": 1730880960425}], "start": 1730880960425, "stop": 1730880960477}
\ No newline at end of file
{"uuid": "a78311eb-9eb0-4e81-9f52-93e2990886f9", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960074, "stop": 1730880960074}], "start": 1730880960074, "stop": 1730880960088}
\ No newline at end of file
{"uuid": "b980d0ca-95a2-4228-b941-e24aea7ab44d", "befores": [{"name": "method", "status": "passed", "start": 1730880960944, "stop": 1730880960944}], "start": 1730880960944, "stop": 1730880960972}
\ No newline at end of file
{"uuid": "709ed5a1-cfa7-45a9-b001-a79a1c5c7ca0", "befores": [{"name": "level", "status": "passed", "start": 1730880961007, "stop": 1730880961007}], "start": 1730880961007, "stop": 1730880961034}
\ No newline at end of file
{"uuid": "cc4fb5f6-c796-4c4c-b30a-f51fd2c4a900", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880961237, "stop": 1730880961237}], "start": 1730880961237, "stop": 1730880961243}
\ No newline at end of file
{"uuid": "b32cf8cb-db74-44f5-9db3-a2fdb6827321", "befores": [{"name": "url", "status": "passed", "start": 1730880960520, "stop": 1730880960521}], "start": 1730880960520, "stop": 1730880960547}
\ No newline at end of file
{"uuid": "0c7df3c5-ae40-424b-ae65-10103c9f4364", "befores": [{"name": "url", "status": "passed", "start": 1730880960751, "stop": 1730880960751}], "start": 1730880960751, "stop": 1730880960791}
\ No newline at end of file
{"uuid": "d6ead34a-2da8-4032-9165-81dc02488463", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880961007, "stop": 1730880961007}], "start": 1730880961007, "stop": 1730880961037}
\ No newline at end of file
{"uuid": "a79f32a6-ca13-4585-8ee9-6bd6595e2534", "befores": [{"name": "case_data", "status": "passed", "start": 1730880961074, "stop": 1730880961074}], "start": 1730880961074, "stop": 1730880961124}
\ No newline at end of file
{"uuid": "e26b874b-3ecf-4c92-aca3-b95f77698911", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960611, "stop": 1730880960611}], "start": 1730880960611, "stop": 1730880960644}
\ No newline at end of file
{"uuid": "bc21439f-499b-44f1-ac68-dbf5edde281b", "befores": [{"name": "module", "status": "passed", "start": 1730880961229, "stop": 1730880961229}], "start": 1730880961229, "stop": 1730880961233}
\ No newline at end of file
{"uuid": "556eb1b5-390b-4d16-8635-95d4bcbae4c0", "befores": [{"name": "level", "status": "passed", "start": 1730880960913, "stop": 1730880960913}], "start": 1730880960913, "stop": 1730880960939}
\ No newline at end of file
{"uuid": "47481f3f-49e0-4bd2-a36f-78d02891060e", "befores": [{"name": "module", "status": "passed", "start": 1730880960363, "stop": 1730880960363}], "start": 1730880960363, "stop": 1730880960390}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'},期望数据为:{'state': True, 'message': '更新维度成功!'}, 服务器返回的数据为:{"state":true,"message":"更新维度成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "a4541a8c-c400-4813-8984-0c04a17b4957", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880961074, "stop": 1730880961074}], "start": 1730880961074, "stop": 1730880961123}
\ No newline at end of file
{"uuid": "8b3de1cb-6e3d-47a0-8cba-31840b790b6c", "befores": [{"name": "title", "status": "passed", "start": 1730880960808, "stop": 1730880960808}], "start": 1730880960808, "stop": 1730880960847}
\ No newline at end of file
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:host
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:port
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:user
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:pwd
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:database
INFO  root:read_basic_ini.py:27 执行get_host方法,功能为:根据key获取host节点下被测系统的域名, 传入的参数为:bpm
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MzA5NjcxODgsImlhdCI6MTczMDg4MDc4OH0.ROOdZI7At5MqtwVwvwLiI6Zrj8hE1wGZldHfO8135Z4rC2FNRCGC09YfV_94VDimRwosuPP1SDmaUYP43CUL_A","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
{"name": "反向用例-密码正确-用户名为特殊字符", "status": "passed", "attachments": [{"name": "log", "source": "a0a2bbf7-6b8c-4058-a4c3-7f3e9b1ac17e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-密码正确-用户名为特殊字符'"}, {"name": "level", "value": "'中'"}], "start": 1730880960394, "stop": 1730880960420, "uuid": "d3c88d85-e0f9-493b-af14-91dd5f93b709", "historyId": "9166f1e51d45b343f6b4f6d4ed68eb1b", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "566a82db-07e6-4e35-83b5-54f8934ce9da", "befores": [{"name": "title", "status": "passed", "start": 1730880960074, "stop": 1730880960074}], "start": 1730880960074, "stop": 1730880960087}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'admin', 'password': ''},期望数据为:{'state': False, 'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1854074525344964608"}
\ No newline at end of file
{"uuid": "6eaec96a-84a7-4374-b4d0-dd6eec174526", "befores": [{"name": "title", "status": "passed", "start": 1730880960585, "stop": 1730880960585}], "start": 1730880960585, "stop": 1730880960607}
\ No newline at end of file
{"uuid": "f19e02f8-4cab-49ab-bfad-870070f35f43", "befores": [{"name": "api", "status": "passed", "start": 1730880960271, "stop": 1730880960271}], "start": 1730880960271, "stop": 1730880960298}
\ No newline at end of file
{"uuid": "fc359f85-b5f7-4159-ad88-92a15f6ee4c0", "befores": [{"name": "api", "status": "passed", "start": 1730880960363, "stop": 1730880960363}], "start": 1730880960363, "stop": 1730880960390}
\ No newline at end of file
{"uuid": "a35a735e-d025-40a7-a8cd-cc9c4f51922b", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960944, "stop": 1730880960944}], "start": 1730880960944, "stop": 1730880960971}
\ No newline at end of file
{"uuid": "c1fbc1c2-f9f5-430e-b48e-7cf41de645dd", "befores": [{"name": "case_data", "status": "passed", "start": 1730880961144, "stop": 1730880961144}], "start": 1730880961144, "stop": 1730880961170}
\ No newline at end of file
{"name": "正向用例-用户和密码正确", "status": "passed", "attachments": [{"name": "log", "source": "100ad06a-a7a6-46a7-bfac-f6444f7241f4-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'正向用例-用户和密码正确'"}, {"name": "level", "value": "'高'"}], "start": 1730880960040, "stop": 1730880960068, "uuid": "82482944-96b7-4631-8b34-6ec129bae27d", "historyId": "92360596ebe278c01eee0e54165a96e7", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "befc991c-cffe-447a-a6a6-8b6bad05e50f-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'put'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'code': 'Kumiko'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '设置默认维度成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'设置默认维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}], "start": 1730880961174, "stop": 1730880961200, "uuid": "78eef37f-c0d1-4de0-9cdf-c479ec6dd8bb", "historyId": "6777342dfe687a82ab052aaa5dd388a2", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "设置默认维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "936dd784-6d4d-4b44-be4c-2662d7499263", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960090, "stop": 1730880960091}], "start": 1730880960090, "stop": 1730880960211}
\ No newline at end of file
{"uuid": "4cd53ecc-a019-4454-bd49-f231abae8f86", "befores": [{"name": "title", "status": "passed", "start": 1730880960751, "stop": 1730880960751}], "start": 1730880960751, "stop": 1730880960788}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074528431972352"}
\ No newline at end of file
{"uuid": "96d76010-3626-46d6-bade-0b01f35f9d21", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960271, "stop": 1730880960271}], "start": 1730880960271, "stop": 1730880960298}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'code': 'Kumiko'},期望数据为:{'state': True, 'message': '设置默认维度成功!'}, 服务器返回的数据为:{"state":true,"message":"设置默认维度成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "bcc10ea2-f200-475e-9f60-f9b8e1dcba50", "befores": [{"name": "update_key", "status": "passed", "start": 1730880961237, "stop": 1730880961237}], "start": 1730880961237, "stop": 1730880961242}
\ No newline at end of file
{"uuid": "7cd0d47b-86fb-425f-b21c-808eb2a68fd5", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960521, "stop": 1730880960521}], "start": 1730880960521, "stop": 1730880960546}
\ No newline at end of file
{"uuid": "e950a79b-d9c0-4c91-a9ae-f0e49c647f61", "befores": [{"name": "api", "status": "passed", "start": 1730880960585, "stop": 1730880960585}], "start": 1730880960585, "stop": 1730880960608}
\ No newline at end of file
{"uuid": "b1c1b239-25ad-4c5d-9209-37a62ca75f80", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960577, "stop": 1730880960577}], "start": 1730880960577, "stop": 1730880960582}
\ No newline at end of file
{"name": "正向用例", "status": "broken", "statusDetails": {"message": "ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖", "trace": "self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C536F30>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', mime = 'query | json'\ncase_data = {'body': [{'alias': 'sz', 'value': 1}], 'query': {'orgCode': 'Kumiko'}}, expect_data = {'message': '保存组织参数成功!', 'state': True}, sql_type = None\nsql_data = None, update_key = None, module = '组织管理', api = '保存组织参数', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n> res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n\ntest_case\\test_Kumiko\\test_bpm.py:29: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, req_method = 'post'\nreq_url = 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', req_mime = 'query | json'\nreq_case_data = {'body': [{'alias': 'sz', 'value': 1}], 'query': {'orgCode': 'Kumiko'}}, sql_type = None, sql_data = None, update_key = None\n\n def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):\n \"\"\"\n 封装公共的请求方法\n :param req_method: 请求方法\n :param req_url: 请求url\n :param req_mime: 请求的媒体类型\n :param req_case_data: 请求数据\n :param sql_type: sql语句类型\n :param sql_data: sql语句\n :param update_key: 更新的key\n :return: Response type\n \"\"\"\n # 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求\n if sql_type == \"delete\":\n self.db.delete(sql_data)\n \n # 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求\n elif sql_type == \"select\":\n select_result = self.db.select(sql_data)\n req_case_data[update_key] = select_result\n \n # 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 要执行删除--删除数据库中现有的数据\n self.db.delete(sql_data[\"delete\"])\n # 查询语句--将查询结果更新到用例数据中\n select_result = self.db.select(sql_data[\"select\"])\n req_case_data[update_key] = select_result\n \n # 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求\n # 发送请求时,用例使用使用哪些关键字传参,需要添加判断\n # 判断媒体类型的值是否为:application/json 或 json,使用json传参\n if req_mime == \"json\" or req_mime == \"application/json\":\n return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)\n \n # 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参\n # 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。\n elif req_mime == \"application/x-www-form-urlencoded\" or req_mime == \"x-www-form-urlencoded\" or req_mime == \"form\":\n return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)\n \n # 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参\n elif req_mime == \"multipart/form-data\" or req_mime == \"form-data\":\n return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)\n \n # 判断媒体类型的值是否为:query,使用params传参\n elif req_mime == \"query\":\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)\n \n # 判断媒体类型的值是否为:None,表示没有传参\n elif req_mime is None:\n return self.bpm_session.request(method=req_method, url=req_url)\n \n # 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。\n elif req_mime == \"query|json\" or req_mime == \"json|query\":\n # requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data[\"query\"], json=req_case_data[\"body\"])\n \n else:\n log.error(f\"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\n> raise ValueError(\"没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\nE ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\n\nrequests_method\\requests_method.py:91: ValueError"}, "attachments": [{"name": "log", "source": "f1391c55-82d1-4aad-a72e-2e602d225339-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}, {"name": "mime", "value": "'query | json'"}, {"name": "case_data", "value": "{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}"}, {"name": "expect_data", "value": "{'state': True, 'message': '保存组织参数成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'保存组织参数'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}], "start": 1730880960570, "stop": 1730880960570, "uuid": "3ac66d8b-7cce-42a4-b953-84aa526f1739", "historyId": "488ecbbb2742d70e6423d57951774398", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "保存组织参数"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "47446542-cfda-40b7-9835-a2f4186aea62", "befores": [{"name": "method", "status": "passed", "start": 1730880960520, "stop": 1730880960520}], "start": 1730880960520, "stop": 1730880960547}
\ No newline at end of file
{"uuid": "a005c2d7-914e-4ba4-ad6b-31f20b4d9f60", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960792, "stop": 1730880960792}], "start": 1730880960792, "stop": 1730880960807}
\ No newline at end of file
{"uuid": "b31d5501-a6c2-4324-8d0d-de511b503010", "befores": [{"name": "method", "status": "passed", "start": 1730880960393, "stop": 1730880960393}], "start": 1730880960393, "stop": 1730880960423}
\ No newline at end of file
{"uuid": "d14718aa-36f6-44dd-984b-91b8c495fabf", "befores": [{"name": "mime", "status": "passed", "start": 1730880960393, "stop": 1730880960393}], "start": 1730880960393, "stop": 1730880960423}
\ No newline at end of file
{"uuid": "8238184e-a174-4ea1-a431-e7390bb8771c", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960521, "stop": 1730880960521}], "start": 1730880960521, "stop": 1730880960546}
\ No newline at end of file
{"uuid": "82659625-44cb-438c-9a18-9c5a5c1e94d9", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960301, "stop": 1730880960301}], "start": 1730880960301, "stop": 1730880960330}
\ No newline at end of file
{"uuid": "3f9348f5-8ed0-48ae-9fc7-68e5f06fe7c4", "befores": [{"name": "module", "status": "passed", "start": 1730880960880, "stop": 1730880960880}], "start": 1730880960880, "stop": 1730880960909}
\ No newline at end of file
{"uuid": "a11250d8-f16a-4d72-a9fc-b0572f169b36", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880961007, "stop": 1730880961007}], "start": 1730880961007, "stop": 1730880961037}
\ No newline at end of file
{"uuid": "3dd74bd1-ad63-4d97-983c-c6e1a60b8d97", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960973, "stop": 1730880960973}], "start": 1730880960973, "stop": 1730880961003}
\ No newline at end of file
{"uuid": "c5075049-f9f9-46d3-9f6b-1ba113ba3d18", "befores": [{"name": "level", "status": "passed", "start": 1730880960271, "stop": 1730880960271}], "start": 1730880960271, "stop": 1730880960297}
\ No newline at end of file
{"name": "正向用例-用户和密码正确", "status": "passed", "attachments": [{"name": "log", "source": "5b3d2f70-fded-452c-ad2c-15b48432b019-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'正向用例-用户和密码正确'"}, {"name": "level", "value": "'高'"}], "start": 1730880960751, "stop": 1730880960788, "uuid": "21cbc14f-bf60-4ad0-92d7-af465eeeba6f", "historyId": "3bfe9744e70830af8ab24b1f89804d90", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "cb75e569-cc07-4a49-b00c-2182b7930c12", "befores": [{"name": "url", "status": "passed", "start": 1730880960577, "stop": 1730880960577}], "start": 1730880960577, "stop": 1730880960583}
\ No newline at end of file
{"uuid": "55a00e45-7aaa-48d3-8f91-f54985c45e35", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960649, "stop": 1730880960649}], "start": 1730880960649, "stop": 1730880960663}
\ No newline at end of file
{"uuid": "ec865811-4c7f-4db8-bbfb-dcd6d3cdb4fd", "befores": [{"name": "method", "status": "passed", "start": 1730880960215, "stop": 1730880960215}], "start": 1730880960215, "stop": 1730880960239}
\ No newline at end of file
{"uuid": "6d6f8b5e-8630-4c16-8d91-9c6b56369cca", "befores": [{"name": "module", "status": "passed", "start": 1730880960577, "stop": 1730880960577}], "start": 1730880960577, "stop": 1730880960582}
\ No newline at end of file
{"uuid": "a1c4c318-d1b9-4c46-b64e-531b6720e2e1", "befores": [{"name": "module", "status": "passed", "start": 1730880961040, "stop": 1730880961040}], "start": 1730880961040, "stop": 1730880961070}
\ No newline at end of file
{"uuid": "7b7c5bb0-260b-4b69-af78-bacaaa6be70d", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960091, "stop": 1730880960091}], "start": 1730880960091, "stop": 1730880960211}
\ No newline at end of file
{"uuid": "c64a26d3-78f6-4b20-9266-829825ad07b3", "befores": [{"name": "method", "status": "passed", "start": 1730880960792, "stop": 1730880960792}], "start": 1730880960792, "stop": 1730880960807}
\ No newline at end of file
{"uuid": "8574a960-e4b0-4bae-883c-4ff95e4238d0", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880961245, "stop": 1730880961245}], "start": 1730880961245, "stop": 1730880961273}
\ No newline at end of file
{"uuid": "d81cf666-34fa-41a2-86c3-9bfacf0845b4", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960854, "stop": 1730880960854}], "start": 1730880960854, "stop": 1730880960876}
\ No newline at end of file
{"uuid": "cd0538fd-c0a3-4fa6-8dc1-d8d816b9c378", "befores": [{"name": "mime", "status": "passed", "start": 1730880960973, "stop": 1730880960973}], "start": 1730880960973, "stop": 1730880961005}
\ No newline at end of file
{"uuid": "46884edf-bfbc-4d4d-a988-9cef53211a09", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880961276, "stop": 1730880961276}], "start": 1730880961276, "stop": 1730880961306}
\ No newline at end of file
{"uuid": "9af49f1d-997a-4cbb-83c6-63959164604c", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880961144, "stop": 1730880961144}], "start": 1730880961144, "stop": 1730880961170}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'admin', 'password': ''},期望数据为:{'state': False, 'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1854074528037707776"}
\ No newline at end of file
{"uuid": "6853a38d-6bdc-4f5d-9cca-73c7b4a44c0f", "befores": [{"name": "level", "status": "passed", "start": 1730880960394, "stop": 1730880960394}], "start": 1730880960394, "stop": 1730880960421}
\ No newline at end of file
INFO  root:db.py:37 执行的方法为:delete,功能描述为:执行删除的sql语句,传入的参数为:DELETE FROM uc_demension WHERE CODE_ like "Kumiko%";
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'},期望数据为:{'state': True, 'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "391d36c9-6199-46cd-8731-49f1e31e00f0", "befores": [{"name": "method", "status": "passed", "start": 1730880960548, "stop": 1730880960548}], "start": 1730880960548, "stop": 1730880960568}
\ No newline at end of file
{"uuid": "6acb8c2b-e772-4324-aa06-2aba9b21bad9", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880961126, "stop": 1730880961126}], "start": 1730880961126, "stop": 1730880961141}
\ No newline at end of file
{"uuid": "04fcf2bf-541b-4f90-83e0-b096769baeeb", "befores": [{"name": "api", "status": "passed", "start": 1730880961308, "stop": 1730880961308}], "start": 1730880961308, "stop": 1730880961321}
\ No newline at end of file
{"uuid": "d651e4a0-f367-4493-b38e-27e25e5939be", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960577, "stop": 1730880960577}], "start": 1730880960577, "stop": 1730880960582}
\ No newline at end of file
{"uuid": "6012606f-1000-4c72-98e4-483f9b4581c6", "befores": [{"name": "mime", "status": "passed", "start": 1730880961245, "stop": 1730880961245}], "start": 1730880961245, "stop": 1730880961274}
\ No newline at end of file
{"uuid": "704f766f-f7d5-4a8a-9687-112c6a98b5dc", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960215, "stop": 1730880960215}], "start": 1730880960215, "stop": 1730880960237}
\ No newline at end of file
{"uuid": "36b4ecae-681e-41fc-ac02-6d12bf96bbd4", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960913, "stop": 1730880960913}], "start": 1730880960913, "stop": 1730880960942}
\ No newline at end of file
{"uuid": "f0e8148f-dd36-4f21-872c-9082b66161ab", "befores": [{"name": "method", "status": "passed", "start": 1730880961308, "stop": 1730880961308}], "start": 1730880961308, "stop": 1730880961324}
\ No newline at end of file
{"uuid": "33e2fcd4-1ef9-4cea-ae8a-e7f08b6e35e9", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960215, "stop": 1730880960215}], "start": 1730880960215, "stop": 1730880960238}
\ No newline at end of file
{"uuid": "31a78834-cad8-41dc-aa58-30699204c7ee", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960854, "stop": 1730880960854}], "start": 1730880960854, "stop": 1730880960876}
\ No newline at end of file
{"uuid": "8eb25483-9922-45d6-a03e-9155e58244e4", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960548, "stop": 1730880960548}], "start": 1730880960548, "stop": 1730880960568}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'},期望数据为:{'state': False}, 服务器返回的数据为:{"state":false,"message":"添加维度信息失败,维度别名【code】必填!","code":200,"logId":"1854074526158659584"}
\ No newline at end of file
{"uuid": "68d81b2d-6486-45f3-b1ba-8a711b56a999", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880961308, "stop": 1730880961308}], "start": 1730880961308, "stop": 1730880961322}
\ No newline at end of file
{"uuid": "3814fbcc-b468-4b3e-a387-603dac9e2a54", "befores": [{"name": "api", "status": "passed", "start": 1730880960301, "stop": 1730880960301}], "start": 1730880960301, "stop": 1730880960329}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'admin', 'password': '✿❀♧♡♥'},期望数据为:{'state': False, 'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1854074525214941184"}
\ No newline at end of file
{"uuid": "558e2cd2-210d-4d16-8a20-310c9b0f026d", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960611, "stop": 1730880960611}], "start": 1730880960611, "stop": 1730880960647}
\ No newline at end of file
ERROR  root:test_bpm.py:37 断言失败,用例数据为:{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'},期望数据为:{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}, 服务器返回的数据为:{"state":false,"message":"添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!","value":"","code":200}
\ No newline at end of file
{"uuid": "6ea39528-4d46-485d-8a11-09aae0eb84dc", "befores": [{"name": "title", "status": "passed", "start": 1730880960301, "stop": 1730880960301}], "start": 1730880960301, "stop": 1730880960329}
\ No newline at end of file
{"uuid": "caae13c2-1c56-4235-9bce-851dd810a6c7", "befores": [{"name": "update_key", "status": "passed", "start": 1730880961245, "stop": 1730880961245}], "start": 1730880961245, "stop": 1730880961273}
\ No newline at end of file
{"uuid": "f36ef6c4-5ca4-4436-9813-68e7bc4a38ce", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960480, "stop": 1730880960480}], "start": 1730880960480, "stop": 1730880960492}
\ No newline at end of file
{"uuid": "fdf80b18-7aee-4576-a74b-6ea4cf1a4b98", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960808, "stop": 1730880960808}], "start": 1730880960808, "stop": 1730880960851}
\ No newline at end of file
{"uuid": "e99517ae-8c84-46c6-90d9-6074d6b00970", "befores": [{"name": "level", "status": "passed", "start": 1730880960751, "stop": 1730880960751}], "start": 1730880960751, "stop": 1730880960788}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'admin', 'password': '✿❀♧♡♥'},期望数据为:{'state': False, 'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1854074527907684352"}
\ No newline at end of file
{"uuid": "42e2674e-9e2d-4662-83be-d5e58a11a756", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960425, "stop": 1730880960425}], "start": 1730880960425, "stop": 1730880960477}
\ No newline at end of file
{"uuid": "c9efe495-968b-4923-a174-6c858b4416ac", "befores": [{"name": "case_data", "status": "passed", "start": 1730880961308, "stop": 1730880961308}], "start": 1730880961308, "stop": 1730880961323}
\ No newline at end of file
{"uuid": "973a20e5-09f3-467f-bf28-322a0fd9768d", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880961276, "stop": 1730880961276}], "start": 1730880961276, "stop": 1730880961306}
\ No newline at end of file
{"uuid": "cc4f4a3c-029f-4986-bbcc-63cfb56971af", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960913, "stop": 1730880960913}], "start": 1730880960913, "stop": 1730880960941}
\ No newline at end of file
{"uuid": "aeca3a82-a265-4b63-bcf5-20998eba400f", "befores": [{"name": "mime", "status": "passed", "start": 1730880960913, "stop": 1730880960913}], "start": 1730880960913, "stop": 1730880960942}
\ No newline at end of file
{"uuid": "66233b3f-2f0d-4375-8bea-63aaa7ebecb2", "befores": [{"name": "api", "status": "passed", "start": 1730880961040, "stop": 1730880961040}], "start": 1730880961040, "stop": 1730880961070}
\ No newline at end of file
{"uuid": "0eb1aa4a-8a9e-4e71-89bf-0be0ec565dbb", "befores": [{"name": "api", "status": "passed", "start": 1730880960074, "stop": 1730880960074}], "start": 1730880960074, "stop": 1730880960087}
\ No newline at end of file
{"uuid": "deb4f876-119a-409b-88cb-91354d95bd0a", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960880, "stop": 1730880960880}], "start": 1730880960880, "stop": 1730880960909}
\ No newline at end of file
ERROR  root:test_bpm.py:37 断言失败,用例数据为:{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'}, 服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[Kumiko]已存在!","value":"保存失败","code":200}
\ No newline at end of file
{"uuid": "03102b77-3c4e-4799-a60e-889494934474", "befores": [{"name": "level", "status": "passed", "start": 1730880960944, "stop": 1730880960944}], "start": 1730880960944, "stop": 1730880960969}
\ No newline at end of file
{"name": "反向用例-密码正确-用户名过长", "status": "passed", "attachments": [{"name": "log", "source": "13da6f0a-61e7-4dd5-9b40-3204ac7fc562-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-密码正确-用户名过长'"}, {"name": "level", "value": "'中'"}], "start": 1730880961007, "stop": 1730880961034, "uuid": "5485ac76-9613-4bae-90d6-954fab42c98f", "historyId": "187cf6e6b8032aa3061659963afec0d7", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "f4de98e8-ac90-47e5-9f90-5b37a91d12bc", "befores": [{"name": "level", "status": "passed", "start": 1730880960074, "stop": 1730880960074}], "start": 1730880960074, "stop": 1730880960087}
\ No newline at end of file
{"uuid": "5139180d-ae86-4588-b77b-da0f629cbf21", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960649, "stop": 1730880960649}], "start": 1730880960649, "stop": 1730880960663}
\ No newline at end of file
{"uuid": "ad3acd7e-0ee6-4abe-b395-b554dacc886b", "befores": [{"name": "mime", "status": "passed", "start": 1730880960577, "stop": 1730880960577}], "start": 1730880960577, "stop": 1730880960583}
\ No newline at end of file
{"uuid": "6be66561-ab5d-443d-a8d8-4ded44806fb8", "befores": [{"name": "title", "status": "passed", "start": 1730880960973, "stop": 1730880960973}], "start": 1730880960973, "stop": 1730880961002}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'admin', 'password': 'a'},期望数据为:{'state': False, 'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1854074527769272320"}
\ No newline at end of file
{"uuid": "7f0b6f7a-b36d-473e-86a4-c87f43736714", "befores": [{"name": "url", "status": "passed", "start": 1730880961144, "stop": 1730880961144}], "start": 1730880961144, "stop": 1730880961171}
\ No newline at end of file
{"uuid": "22c7e435-96d6-4a35-9dea-f3a340f04187", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960944, "stop": 1730880960944}], "start": 1730880960944, "stop": 1730880960971}
\ No newline at end of file
{"uuid": "e322ead8-4dee-48c3-9a29-c6ca5eddd3b0", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960569, "stop": 1730880960569}], "start": 1730880960569, "stop": 1730880960574}
\ No newline at end of file
{"uuid": "0fe35416-ef9f-4d11-8d24-a7eb5bffd384", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960808, "stop": 1730880960808}], "start": 1730880960808, "stop": 1730880960850}
\ No newline at end of file
{"uuid": "af1eadb8-2e6f-4d57-a125-5488fd51db54", "befores": [{"name": "case_data", "status": "passed", "start": 1730880961237, "stop": 1730880961237}], "start": 1730880961237, "stop": 1730880961243}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074525730840576"}
\ No newline at end of file
{"uuid": "58bafdc8-8479-43c8-8ff9-0b770d486673", "befores": [{"name": "level", "status": "passed", "start": 1730880960973, "stop": 1730880960973}], "start": 1730880960973, "stop": 1730880961001}
\ No newline at end of file
{"uuid": "581d2c76-ce37-4656-a113-d22b97f06f26", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880961204, "stop": 1730880961204}], "start": 1730880961204, "stop": 1730880961226}
\ No newline at end of file
{"uuid": "443b4096-2cd9-45f4-91b3-d1caefad3f28", "befores": [{"name": "url", "status": "passed", "start": 1730880961228, "stop": 1730880961228}], "start": 1730880961228, "stop": 1730880961235}
\ No newline at end of file
{"uuid": "a9d37744-e81e-4fd0-b5c1-fb60bc8e0e87", "befores": [{"name": "method", "status": "passed", "start": 1730880960480, "stop": 1730880960480}], "start": 1730880960480, "stop": 1730880960493}
\ No newline at end of file
{"uuid": "a3ef548c-15ee-4e3a-a812-0c9d2037f63f", "befores": [{"name": "method", "status": "passed", "start": 1730880960912, "stop": 1730880960912}], "start": 1730880960912, "stop": 1730880960943}
\ No newline at end of file
{"uuid": "4644106a-b100-44a4-8ba1-55d42d78a3ee", "befores": [{"name": "level", "status": "passed", "start": 1730880960425, "stop": 1730880960425}], "start": 1730880960425, "stop": 1730880960474}
\ No newline at end of file
{"uuid": "42d149bd-eb6e-4ae0-8385-dab9f0fe5d5e", "befores": [{"name": "title", "status": "passed", "start": 1730880960944, "stop": 1730880960944}], "start": 1730880960944, "stop": 1730880960969}
\ No newline at end of file
{"uuid": "f7369464-b22b-486b-832e-91eca370a1c9", "befores": [{"name": "api", "status": "passed", "start": 1730880960913, "stop": 1730880960913}], "start": 1730880960913, "stop": 1730880960940}
\ No newline at end of file
{"uuid": "6510b180-00d3-4bd6-902b-c72b0ef1afe2", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960913, "stop": 1730880960913}], "start": 1730880960913, "stop": 1730880960941}
\ No newline at end of file
{"uuid": "713d24ab-27f2-4f9f-b1d3-6e67a49658ae", "befores": [{"name": "level", "status": "passed", "start": 1730880960548, "stop": 1730880960548}], "start": 1730880960548, "stop": 1730880960566}
\ No newline at end of file
{"uuid": "a4e5d857-e235-429a-bc52-bc8d7f8edd71", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880961007, "stop": 1730880961007}], "start": 1730880961007, "stop": 1730880961037}
\ No newline at end of file
{"uuid": "995c9ecd-c278-4f1b-aacb-46cd96dd9a74", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960301, "stop": 1730880960301}], "start": 1730880960301, "stop": 1730880960329}
\ No newline at end of file
{"uuid": "0cebae3e-e477-4a04-b14c-5437c3880531", "befores": [{"name": "title", "status": "passed", "start": 1730880960425, "stop": 1730880960425}], "start": 1730880960425, "stop": 1730880960476}
\ No newline at end of file
{"uuid": "85752d97-8540-42b1-a0ba-f7dae3df6a5f", "befores": [{"name": "api", "status": "passed", "start": 1730880960649, "stop": 1730880960649}], "start": 1730880960649, "stop": 1730880960662}
\ No newline at end of file
{"uuid": "b1a83ad4-842f-4df8-a646-1c015088d953", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960521, "stop": 1730880960521}], "start": 1730880960521, "stop": 1730880960546}
\ No newline at end of file
{"uuid": "1c1d2928-92b5-4142-8595-47aadf4e7d21", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880961126, "stop": 1730880961126}], "start": 1730880961126, "stop": 1730880961140}
\ No newline at end of file
{"uuid": "669febd5-1ba3-4ef6-a22a-fd257df1919f", "befores": [{"name": "module", "status": "passed", "start": 1730880960808, "stop": 1730880960808}], "start": 1730880960808, "stop": 1730880960850}
\ No newline at end of file
{"uuid": "9f29bf50-37f8-4471-99c7-84c05153837b", "befores": [{"name": "case_data", "status": "passed", "start": 1730880961245, "stop": 1730880961245}], "start": 1730880961245, "stop": 1730880961274}
\ No newline at end of file
{"uuid": "c3d8216f-1189-412f-9da1-6bc2637984d3", "befores": [{"name": "api", "status": "passed", "start": 1730880961229, "stop": 1730880961229}], "start": 1730880961229, "stop": 1730880961233}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'ids': ''},期望数据为:{'state': False, 'message': '删除维度失败,维度ids必填'}, 服务器返回的数据为:{"state":false,"message":"删除维度失败,维度ids必填","code":200,"logId":"1854074529635737600"}
\ No newline at end of file
{"uuid": "7f28a36e-a68f-4724-8ef4-8a1a64b282fa", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960074, "stop": 1730880960074}], "start": 1730880960074, "stop": 1730880960087}
\ No newline at end of file
{"uuid": "b50f45df-cb3a-4052-9a4f-555d0be6e265", "befores": [{"name": "url", "status": "passed", "start": 1730880961039, "stop": 1730880961039}], "start": 1730880961039, "stop": 1730880961072}
\ No newline at end of file
{"uuid": "f35e93b8-87d4-471f-a0fc-832c43f8b9b7", "befores": [{"name": "module", "status": "passed", "start": 1730880960301, "stop": 1730880960301}], "start": 1730880960301, "stop": 1730880960329}
\ No newline at end of file
{"uuid": "b9f76afe-32a4-4887-8e26-ad169188d106", "befores": [{"name": "url", "status": "passed", "start": 1730880960548, "stop": 1730880960548}], "start": 1730880960548, "stop": 1730880960568}
\ No newline at end of file
{"name": "反向用例-维度id为空", "status": "passed", "attachments": [{"name": "log", "source": "2b7616ff-c871-4680-984c-cc89d8d18ad6-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}"}, {"name": "expect_data", "value": "{'state': False}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'添加维度'"}, {"name": "title", "value": "'反向用例-维度id为空'"}, {"name": "level", "value": "'中'"}], "start": 1730880960480, "stop": 1730880960490, "uuid": "7cd43c15-c691-46fe-a2f0-07bbb32cb7b7", "historyId": "cc552298c7c1b0b09732d1046be44664", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "e80fcd8d-9cfa-41d3-b96f-157a119b1331", "befores": [{"name": "url", "status": "passed", "start": 1730880960494, "stop": 1730880960494}], "start": 1730880960494, "stop": 1730880960519}
\ No newline at end of file
{"uuid": "efa022a4-08b1-4b46-9e09-cff9c2d1ab90", "befores": [{"name": "module", "status": "passed", "start": 1730880960241, "stop": 1730880960241}], "start": 1730880960241, "stop": 1730880960267}
\ No newline at end of file
{"uuid": "c12230b6-3302-4b0a-b233-c171a93bdca6", "befores": [{"name": "title", "status": "passed", "start": 1730880960521, "stop": 1730880960521}], "start": 1730880960521, "stop": 1730880960544}
\ No newline at end of file
{"uuid": "190651f7-471a-489d-b2a8-40d4fa80381d", "befores": [{"name": "api", "status": "passed", "start": 1730880960494, "stop": 1730880960494}], "start": 1730880960494, "stop": 1730880960517}
\ No newline at end of file
{"uuid": "49c7c3b1-6139-456a-85c0-29ece49b2c53", "befores": [{"name": "module", "status": "passed", "start": 1730880960548, "stop": 1730880960548}], "start": 1730880960548, "stop": 1730880960567}
\ No newline at end of file
{"uuid": "0c1a0729-21e5-4475-93ed-5d0aa5e7777e", "befores": [{"name": "method", "status": "passed", "start": 1730880960751, "stop": 1730880960751}], "start": 1730880960751, "stop": 1730880960791}
\ No newline at end of file
{"uuid": "ef3684c5-113d-4123-805d-6125947b4060", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960425, "stop": 1730880960425}], "start": 1730880960425, "stop": 1730880960476}
\ No newline at end of file
{"uuid": "80183698-2540-40c1-8626-e31207495c59", "befores": [{"name": "module", "status": "passed", "start": 1730880960271, "stop": 1730880960271}], "start": 1730880960271, "stop": 1730880960298}
\ No newline at end of file
{"uuid": "8614e406-ae60-43ac-aa00-66a5a41fc5b7", "befores": [{"name": "mime", "status": "passed", "start": 1730880961074, "stop": 1730880961074}], "start": 1730880961074, "stop": 1730880961124}
\ No newline at end of file
{"uuid": "db31047f-1fa0-4da1-a81c-fb923dddfb62", "befores": [{"name": "url", "status": "passed", "start": 1730880960853, "stop": 1730880960853}], "start": 1730880960853, "stop": 1730880960877}
\ No newline at end of file
{"uuid": "a64e348a-9c1b-48e3-bff5-ec0cce023b29", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880961039, "stop": 1730880961039}], "start": 1730880961039, "stop": 1730880961071}
\ No newline at end of file
{"uuid": "1c9adf4a-c3ad-40fc-9b8c-6f0619865975", "befores": [{"name": "module", "status": "passed", "start": 1730880960649, "stop": 1730880960649}], "start": 1730880960649, "stop": 1730880960662}
\ No newline at end of file
{"uuid": "d2a08055-adaf-4456-8a7f-b394f9c637d9", "befores": [{"name": "module", "status": "passed", "start": 1730880961126, "stop": 1730880961126}], "start": 1730880961126, "stop": 1730880961140}
\ No newline at end of file
{"uuid": "8576f808-716a-457f-95b7-8fcaa6109093", "befores": [{"name": "method", "status": "passed", "start": 1730880961144, "stop": 1730880961144}], "start": 1730880961144, "stop": 1730880961171}
\ No newline at end of file
{"uuid": "7f2ff581-781c-449c-810b-eb6908db1bdb", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880961276, "stop": 1730880961276}], "start": 1730880961276, "stop": 1730880961306}
\ No newline at end of file
{"uuid": "d82ebb89-4eb4-4443-a8bc-b92dcf323953", "befores": [{"name": "url", "status": "passed", "start": 1730880960090, "stop": 1730880960090}], "start": 1730880960090, "stop": 1730880960212}
\ No newline at end of file
{"uuid": "356a2812-3846-46a0-abe9-bddb2811b779", "befores": [{"name": "level", "status": "passed", "start": 1730880960585, "stop": 1730880960585}], "start": 1730880960585, "stop": 1730880960607}
\ No newline at end of file
{"uuid": "eb754988-9efd-4071-bd8a-a5bad1fa6383", "children": ["82482944-96b7-4631-8b34-6ec129bae27d", "70f6e831-81d4-4169-a2a0-8f729558a040", "7e8628f2-f603-4c66-9de6-6a2051f8f233", "11655843-8ebd-4dce-9659-4b68c84ea24a", "de4b65e0-712d-4e51-ab66-26c3f31cef2f", "858e4389-d60d-4833-b29c-4bb1c9d2d874", "55afc6c0-3f6f-44c7-9416-a34501a4c327", "f56c3a04-0e3f-40bb-a947-03e780f8dab5", "8834dc3f-b1cd-454a-a8de-7754a4e960e0", "d3c88d85-e0f9-493b-af14-91dd5f93b709", "c98e4d5d-1a09-432e-8bdb-953cc507ef84", "7cd43c15-c691-46fe-a2f0-07bbb32cb7b7", "b84ca3c9-a3de-46e7-8647-2e63c935cc3a", "711a2587-5bea-44ba-940e-7c2c9e7c6efc", "39ecd4b1-6281-4316-8961-1c39186be9a2", "3ac66d8b-7cce-42a4-b953-84aa526f1739", "7bf6ac94-f8a3-4fef-8a16-c9fc75475086", "900439b7-7e42-495f-9c7b-eb0ee293e612", "cdb9971f-bfbd-43a2-9039-d2f93449478d", "a9f08160-43d1-4483-a6cb-6c4d5f37c533"], "befores": [{"name": "req_fix", "status": "passed", "start": 1730880959970, "stop": 1730880960039}], "afters": [{"name": "req_fix::0", "status": "passed", "start": 1730880961324, "stop": 1730880961324}], "start": 1730880959970, "stop": 1730880961324}
\ No newline at end of file
{"uuid": "7f087f17-cd2b-4d3b-a279-38b66fedcb84", "befores": [{"name": "mime", "status": "passed", "start": 1730880960944, "stop": 1730880960944}], "start": 1730880960944, "stop": 1730880960971}
\ No newline at end of file
{"uuid": "8fdf0abd-e934-41c9-a6e2-65dfe1f8f175", "befores": [{"name": "module", "status": "passed", "start": 1730880961075, "stop": 1730880961075}], "start": 1730880961075, "stop": 1730880961122}
\ No newline at end of file
{"uuid": "9bbd104c-6df6-48a3-ab00-f963d35a3355", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960271, "stop": 1730880960271}], "start": 1730880960271, "stop": 1730880960298}
\ No newline at end of file
{"uuid": "98737932-35f6-4406-998a-116e9138ea8e", "befores": [{"name": "url", "status": "passed", "start": 1730880961245, "stop": 1730880961245}], "start": 1730880961245, "stop": 1730880961274}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "efcd01d0-cc84-4347-b9f7-08cc550dd94d-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '需要更新'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '删除维度成功!'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'"}, {"name": "update_key", "value": "'ids'"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'根据维度编码删除维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}], "start": 1730880960611, "stop": 1730880960643, "uuid": "cdb9971f-bfbd-43a2-9039-d2f93449478d", "historyId": "b3e88ef83b1abb44b797508448749527", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "8cf5295d-73f3-4ca0-9e99-836dd43dd9c0", "befores": [{"name": "title", "status": "passed", "start": 1730880961308, "stop": 1730880961308}], "start": 1730880961308, "stop": 1730880961321}
\ No newline at end of file
{"uuid": "c6ff3f62-45d1-446b-b400-89bd34338c76", "befores": [{"name": "level", "status": "passed", "start": 1730880961229, "stop": 1730880961229}], "start": 1730880961229, "stop": 1730880961232}
\ No newline at end of file
{"name": "反向用例-维度id有特殊字符", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C56B530>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'json'\ncase_data = {'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}, expect_data = {'message': '维度编码只能由数字、字母、下划线组成!', 'state': False}\nsql_type = None, sql_data = None, update_key = None, module = '维度管理', api = '添加维度', title = '反向用例-维度id有特殊字符', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert '添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!' == '维度编码只能由数字、字母、下划线组成!'\nE \nE - 维度编码只能由数字、字母、下划线组成!\nE + 添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!\n\ntest_case\\test_Yukino\\test_bpm.py:35: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C56B530>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'json'\ncase_data = {'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}, expect_data = {'message': '维度编码只能由数字、字母、下划线组成!', 'state': False}\nsql_type = None, sql_data = None, update_key = None, module = '维度管理', api = '添加维度', title = '反向用例-维度id有特殊字符', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Yukino\\test_bpm.py:38: AssertionError"}, "attachments": [{"name": "log", "source": "2d32c373-a151-438b-95ab-eaef57b0dbb5-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'添加维度'"}, {"name": "title", "value": "'反向用例-维度id有特殊字符'"}, {"name": "level", "value": "'中'"}], "start": 1730880961144, "stop": 1730880961164, "uuid": "304c2d74-e53c-4a44-856c-2169a477fff6", "historyId": "1391cf77afad77191f85415873698de9", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "520e8810-87e4-4f00-830c-d1092fe59389", "befores": [{"name": "api", "status": "passed", "start": 1730880961075, "stop": 1730880961075}], "start": 1730880961075, "stop": 1730880961122}
\ No newline at end of file
{"uuid": "d7c595f7-5977-4680-91e6-4db181019d21", "befores": [{"name": "mime", "status": "passed", "start": 1730880960584, "stop": 1730880960584}], "start": 1730880960584, "stop": 1730880960609}
\ No newline at end of file
{"uuid": "796288cf-2096-47de-8aeb-935817006287", "befores": [{"name": "title", "status": "passed", "start": 1730880961040, "stop": 1730880961040}], "start": 1730880961040, "stop": 1730880961070}
\ No newline at end of file
{"uuid": "ba0df908-8fd8-4b03-a902-5d5cadf31924", "befores": [{"name": "api", "status": "passed", "start": 1730880960751, "stop": 1730880960751}], "start": 1730880960751, "stop": 1730880960789}
\ No newline at end of file
{"uuid": "85a52abc-0613-4458-96ec-9391a6e07d04", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960880, "stop": 1730880960880}], "start": 1730880960880, "stop": 1730880960910}
\ No newline at end of file
{"uuid": "4e7850ef-be95-4b4a-b252-f7b27ecaf363", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960332, "stop": 1730880960332}], "start": 1730880960332, "stop": 1730880960360}
\ No newline at end of file
{"uuid": "4b5bdc1d-2639-4710-aad3-fa0ad3cc85e8", "befores": [{"name": "mime", "status": "passed", "start": 1730880960880, "stop": 1730880960880}], "start": 1730880960880, "stop": 1730880960911}
\ No newline at end of file
{"uuid": "d74c8f10-7f40-447d-b9be-7f9ed7485ad4", "befores": [{"name": "mime", "status": "passed", "start": 1730880960494, "stop": 1730880960494}], "start": 1730880960494, "stop": 1730880960519}
\ No newline at end of file
{"uuid": "7124ea4c-5544-402d-a9b5-e2cd774d7e0b", "befores": [{"name": "module", "status": "passed", "start": 1730880960425, "stop": 1730880960425}], "start": 1730880960425, "stop": 1730880960476}
\ No newline at end of file
{"uuid": "06398da1-5803-4ef1-b2c1-8c2b7b5b5d42", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960973, "stop": 1730880960973}], "start": 1730880960973, "stop": 1730880961005}
\ No newline at end of file
{"uuid": "be0a95cb-9cb5-485b-a1a4-3f76bc6745de", "befores": [{"name": "method", "status": "passed", "start": 1730880961276, "stop": 1730880961276}], "start": 1730880961276, "stop": 1730880961307}
\ No newline at end of file
{"uuid": "4190482e-4c13-4a7b-a6fe-fda66dcdd52c", "befores": [{"name": "module", "status": "passed", "start": 1730880961206, "stop": 1730880961206}], "start": 1730880961206, "stop": 1730880961224}
\ No newline at end of file
{"uuid": "ffa115f4-a761-4723-95e9-98b708553800", "befores": [{"name": "module", "status": "passed", "start": 1730880960792, "stop": 1730880960792}], "start": 1730880960792, "stop": 1730880960806}
\ No newline at end of file
{"uuid": "6d7a41f1-87a4-41cf-8885-ae92f6398772", "befores": [{"name": "mime", "status": "passed", "start": 1730880961276, "stop": 1730880961276}], "start": 1730880961276, "stop": 1730880961306}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "bfa29192-4526-47f1-8d37-c6566101a932-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '添加维度成功!'}"}, {"name": "sql_type", "value": "'delete'"}, {"name": "sql_data", "value": "'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'添加维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}], "start": 1730880960425, "stop": 1730880960474, "uuid": "c98e4d5d-1a09-432e-8bdb-953cc507ef84", "historyId": "b6f5058ee86658fb7296fbf30f377e08", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "def5c9e4-6e48-4e86-abfd-e218b493541c", "befores": [{"name": "mime", "status": "passed", "start": 1730880961204, "stop": 1730880961204}], "start": 1730880961204, "stop": 1730880961226}
\ No newline at end of file
{"uuid": "e64da34b-25af-45b3-b630-543b11b8afa3", "befores": [{"name": "method", "status": "passed", "start": 1730880960271, "stop": 1730880960271}], "start": 1730880960271, "stop": 1730880960299}
\ No newline at end of file
{"uuid": "a24cbf2a-5402-4d3f-939c-80d67d43415c", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960853, "stop": 1730880960853}], "start": 1730880960853, "stop": 1730880960877}
\ No newline at end of file
{"uuid": "0014789a-9a0a-40fe-af84-71b4abae70aa", "befores": [{"name": "module", "status": "passed", "start": 1730880960569, "stop": 1730880960569}], "start": 1730880960569, "stop": 1730880960574}
\ No newline at end of file
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:host
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:port
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:user
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:pwd
INFO  root:read_basic_ini.py:37 执行get_connect_sql_msg方法,功能为:根据key获取sql节点下数据库的链接信息, 传入的参数为:database
INFO  root:read_basic_ini.py:27 执行get_host方法,功能为:根据key获取host节点下被测系统的域名, 传入的参数为:bpm
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'loginStatus': True}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MzA5NjcxODksImlhdCI6MTczMDg4MDc4OX0.n-jQSuY-n2ZNHgB6KPBA1zlyfFopummPl1u5YLdqXIW3VZ23VS7iM9ARa-V3vNFN1dtycor5go8W55u15nxypg","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
{"uuid": "0a21d5a4-27ba-43be-901a-2d3178077f41", "befores": [{"name": "update_key", "status": "passed", "start": 1730880961126, "stop": 1730880961126}], "start": 1730880961126, "stop": 1730880961140}
\ No newline at end of file
{"uuid": "fcd7a67c-e892-4919-9dcb-91809ebc74d7", "befores": [{"name": "title", "status": "passed", "start": 1730880961075, "stop": 1730880961075}], "start": 1730880961075, "stop": 1730880961121}
\ No newline at end of file
{"uuid": "9ebe0c57-1af9-4e80-b74e-672b8e609cdb", "befores": [{"name": "api", "status": "passed", "start": 1730880960577, "stop": 1730880960577}], "start": 1730880960577, "stop": 1730880960582}
\ No newline at end of file
{"uuid": "92943330-33fb-4369-b720-3e3eeece8f7e", "befores": [{"name": "title", "status": "passed", "start": 1730880961276, "stop": 1730880961276}], "start": 1730880961276, "stop": 1730880961304}
\ No newline at end of file
{"uuid": "aa9527e1-d9f1-4a5a-aaf8-050ffc8bc912", "befores": [{"name": "level", "status": "passed", "start": 1730880960577, "stop": 1730880960577}], "start": 1730880960577, "stop": 1730880960581}
\ No newline at end of file
{"uuid": "ba003ba5-d192-43c6-826d-a6b45bc92199", "befores": [{"name": "method", "status": "passed", "start": 1730880960611, "stop": 1730880960611}], "start": 1730880960611, "stop": 1730880960647}
\ No newline at end of file
{"uuid": "473423d9-cadf-411c-8c02-b3c6b65218ef", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960074, "stop": 1730880960074}], "start": 1730880960074, "stop": 1730880960088}
\ No newline at end of file
{"uuid": "ed5fcd44-9edf-4d37-9e41-5637ded2575e", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960039, "stop": 1730880960039}], "start": 1730880960039, "stop": 1730880960071}
\ No newline at end of file
{"uuid": "17a136e9-ab55-406f-aafa-44f0c0b46a77", "befores": [{"name": "module", "status": "passed", "start": 1730880960480, "stop": 1730880960480}], "start": 1730880960480, "stop": 1730880960491}
\ No newline at end of file
{"uuid": "078e5e45-a1c2-432b-9ef7-91c9159171e9", "befores": [{"name": "level", "status": "passed", "start": 1730880960808, "stop": 1730880960808}], "start": 1730880960808, "stop": 1730880960847}
\ No newline at end of file
{"uuid": "fdf2262e-9bb0-4e9f-a687-61d20f3f7a74", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960091, "stop": 1730880960091}], "start": 1730880960091, "stop": 1730880960211}
\ No newline at end of file
{"uuid": "a729fae6-c0e8-4e21-b945-ea5436e9c049", "befores": [{"name": "url", "status": "passed", "start": 1730880960240, "stop": 1730880960240}], "start": 1730880960240, "stop": 1730880960269}
\ No newline at end of file
{"uuid": "d147fd92-af48-4915-b40c-c63a3f6c9b56", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960480, "stop": 1730880960480}], "start": 1730880960480, "stop": 1730880960492}
\ No newline at end of file
{"uuid": "994ed8fc-f77e-4c2d-be93-9ddbcd88be65", "befores": [{"name": "module", "status": "passed", "start": 1730880960944, "stop": 1730880960944}], "start": 1730880960944, "stop": 1730880960970}
\ No newline at end of file
{"uuid": "63248aad-883b-4173-9b91-84152bf67644", "befores": [{"name": "method", "status": "passed", "start": 1730880961237, "stop": 1730880961237}], "start": 1730880961237, "stop": 1730880961244}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074525605011456"}
\ No newline at end of file
{"uuid": "e7b01a81-e981-488e-ac54-d0280abac4a4", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960569, "stop": 1730880960569}], "start": 1730880960569, "stop": 1730880960574}
\ No newline at end of file
{"uuid": "4357c251-3109-44e9-b6ee-f4fb81c1879c", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960880, "stop": 1730880960880}], "start": 1730880960880, "stop": 1730880960910}
\ No newline at end of file
{"uuid": "abac85c7-c4e6-4663-8c06-b648c535e95b", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960332, "stop": 1730880960332}], "start": 1730880960332, "stop": 1730880960360}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过短", "status": "passed", "attachments": [{"name": "log", "source": "37606f7d-0355-4b13-ae0d-96dd21a00ce3-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'a'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-用户名正确-密码过短'"}, {"name": "level", "value": "'中'"}], "start": 1730880960854, "stop": 1730880960874, "uuid": "a5515abc-9f83-4d9d-a1c4-867ac1d03caf", "historyId": "0d8ae1633f3c700d08127f3965488664", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "c0d94d5e-0f95-49d2-bb7c-2eab5a70ee8a", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880961204, "stop": 1730880961204}], "start": 1730880961204, "stop": 1730880961224}
\ No newline at end of file
{"uuid": "2abd67db-bf57-43ef-be52-72ed3a64add9", "befores": [{"name": "api", "status": "passed", "start": 1730880961206, "stop": 1730880961206}], "start": 1730880961206, "stop": 1730880961224}
\ No newline at end of file
{"uuid": "4804710c-1cb6-4151-a846-b74a12c0f524", "befores": [{"name": "mime", "status": "passed", "start": 1730880961228, "stop": 1730880961228}], "start": 1730880961228, "stop": 1730880961235}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074528293560320"}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码错误", "status": "passed", "attachments": [{"name": "log", "source": "b2ab505f-ef6a-402e-8173-ae15f5378cf8-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-用户名正确-密码错误'"}, {"name": "level", "value": "'中'"}], "start": 1730880960792, "stop": 1730880960804, "uuid": "49bb7d18-2583-4d6b-b6ef-7e2fa75790d9", "historyId": "96ea3a5afa49f32bade405cf824ae17c", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "a4f5a756-62cb-4075-8afb-5e06dd7983bd", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960808, "stop": 1730880960808}], "start": 1730880960808, "stop": 1730880960850}
\ No newline at end of file
{"uuid": "91c13fab-b498-42d8-9877-103b4b397fd4", "befores": [{"name": "level", "status": "passed", "start": 1730880960301, "stop": 1730880960301}], "start": 1730880960301, "stop": 1730880960328}
\ No newline at end of file
{"uuid": "4ed5257a-a562-446d-843b-7ca9f2afa25d", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960494, "stop": 1730880960494}], "start": 1730880960494, "stop": 1730880960519}
\ No newline at end of file
{"name": "正向用例", "status": "broken", "statusDetails": {"message": "ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖", "trace": "self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C748260>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', mime = 'data', case_data = 'Kumiko', expect_data = {'message': '删除组织成功!', 'state': True}\nsql_type = None, sql_data = None, update_key = None, module = '组织管理', api = '根据组织编码删除组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n> res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n\ntest_case\\test_Yukino\\test_bpm.py:30: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, req_method = 'post'\nreq_url = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', req_mime = 'data', req_case_data = 'Kumiko', sql_type = None, sql_data = None, update_key = None\n\n def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):\n \"\"\"\n 封装公共的请求方法\n :param req_method: 请求方法\n :param req_url: 请求url\n :param req_mime: 请求的媒体类型\n :param req_case_data: 请求数据\n :param sql_type: sql语句类型\n :param sql_data: sql语句\n :param update_key: 更新的key\n :return: Response type\n \"\"\"\n # 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求\n if sql_type == \"delete\":\n self.db.delete(sql_data)\n \n # 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求\n elif sql_type == \"select\":\n select_result = self.db.select(sql_data)\n req_case_data[update_key] = select_result\n \n # 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 要执行删除--删除数据库中现有的数据\n self.db.delete(sql_data[\"delete\"])\n # 查询语句--将查询结果更新到用例数据中\n select_result = self.db.select(sql_data[\"select\"])\n req_case_data[update_key] = select_result\n \n # 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求\n # 发送请求时,用例使用使用哪些关键字传参,需要添加判断\n # 判断媒体类型的值是否为:application/json 或 json,使用json传参\n if req_mime == \"json\" or req_mime == \"application/json\":\n return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)\n \n # 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参\n # 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。\n elif req_mime == \"application/x-www-form-urlencoded\" or req_mime == \"x-www-form-urlencoded\" or req_mime == \"form\":\n return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)\n \n # 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参\n elif req_mime == \"multipart/form-data\" or req_mime == \"form-data\":\n return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)\n \n # 判断媒体类型的值是否为:query,使用params传参\n elif req_mime == \"query\":\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)\n \n # 判断媒体类型的值是否为:None,表示没有传参\n elif req_mime is None:\n return self.bpm_session.request(method=req_method, url=req_url)\n \n # 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。\n elif req_mime == \"query|json\" or req_mime == \"json|query\":\n # requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data[\"query\"], json=req_case_data[\"body\"])\n \n else:\n log.error(f\"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\n> raise ValueError(\"没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\nE ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\n\nrequests_method\\requests_method.py:91: ValueError"}, "attachments": [{"name": "log", "source": "04583cc5-90de-4b46-b582-0d46bb46c097-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"}, {"name": "mime", "value": "'data'"}, {"name": "case_data", "value": "'Kumiko'"}, {"name": "expect_data", "value": "{'state': True, 'message': '删除组织成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'根据组织编码删除组织'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}], "start": 1730880961237, "stop": 1730880961237, "uuid": "4a271151-a5eb-4843-978d-78a994c09e04", "historyId": "343cde229c818efe7f7ae68313dde06e", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "根据组织编码删除组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "0be47d43-7117-4b44-a56d-c5ea215946d2", "befores": [{"name": "url", "status": "passed", "start": 1730880960792, "stop": 1730880960792}], "start": 1730880960792, "stop": 1730880960807}
\ No newline at end of file
{"uuid": "89e41d54-44c6-439e-ba79-93ea350827e0", "befores": [{"name": "title", "status": "passed", "start": 1730880961144, "stop": 1730880961144}], "start": 1730880961144, "stop": 1730880961168}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'},期望数据为:{'state': False}, 服务器返回的数据为:{"state":false,"message":"添加维度信息失败,维度别名【code】必填!","code":200,"logId":"1854074528876568576"}
\ No newline at end of file
{"uuid": "3ac534a0-6e2f-4eda-baca-b0b928960403", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960240, "stop": 1730880960240}], "start": 1730880960240, "stop": 1730880960268}
\ No newline at end of file
{"uuid": "0dff40ad-fe2c-4af1-96a4-859e5a219b74", "befores": [{"name": "mime", "status": "passed", "start": 1730880960332, "stop": 1730880960332}], "start": 1730880960332, "stop": 1730880960360}
\ No newline at end of file
{"uuid": "15552d49-2cb7-444c-a8ec-5d8d4dbe7847", "befores": [{"name": "module", "status": "passed", "start": 1730880960973, "stop": 1730880960973}], "start": 1730880960973, "stop": 1730880961002}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'ids': ''},期望数据为:{'state': False, 'message': '删除维度失败,维度ids必填'}, 服务器返回的数据为:{"state":false,"message":"删除维度失败,维度ids必填","code":200,"logId":"1854074526871691264"}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码为空", "status": "passed", "attachments": [{"name": "log", "source": "122748ff-75ce-4e08-afd6-e63e33e13860-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': ''}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-用户名正确-密码为空'"}, {"name": "level", "value": "'中'"}], "start": 1730880960271, "stop": 1730880960297, "uuid": "858e4389-d60d-4833-b29c-4bb1c9d2d874", "historyId": "825577857095ca60bda38a78b8deed53", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "40371d9f-2fa7-43d6-8651-f1f6e9911d91", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960480, "stop": 1730880960480}], "start": 1730880960480, "stop": 1730880960491}
\ No newline at end of file
{"uuid": "bea6a05d-68b8-4e2c-8131-22ae85344365", "befores": [{"name": "method", "status": "passed", "start": 1730880961245, "stop": 1730880961245}], "start": 1730880961245, "stop": 1730880961274}
\ No newline at end of file
{"uuid": "ddc53b97-c431-423e-9163-c8c35da3069c", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960585, "stop": 1730880960585}], "start": 1730880960585, "stop": 1730880960608}
\ No newline at end of file
{"uuid": "8cb8efce-b1df-41d0-93a7-7cc944c06a98", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960332, "stop": 1730880960332}], "start": 1730880960332, "stop": 1730880960360}
\ No newline at end of file
{"uuid": "07982ab3-ce6c-4acd-a8aa-93b0e11eab3c", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960215, "stop": 1730880960215}], "start": 1730880960215, "stop": 1730880960238}
\ No newline at end of file
{"uuid": "9df8c1e9-d65a-41bc-a875-f26c9a1a4bff", "befores": [{"name": "api", "status": "passed", "start": 1730880960944, "stop": 1730880960944}], "start": 1730880960944, "stop": 1730880960970}
\ No newline at end of file
{"uuid": "a6258300-ff98-4e2b-a64b-798780e8ee76", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960332, "stop": 1730880960332}], "start": 1730880960332, "stop": 1730880960360}
\ No newline at end of file
{"uuid": "27752e1a-faf5-44ce-a143-cabf67f56bab", "befores": [{"name": "title", "status": "passed", "start": 1730880961007, "stop": 1730880961007}], "start": 1730880961007, "stop": 1730880961034}
\ No newline at end of file
{"uuid": "4d4ad267-f77e-4ffd-88f4-9d6091bf5096", "befores": [{"name": "api", "status": "passed", "start": 1730880961173, "stop": 1730880961173}], "start": 1730880961173, "stop": 1730880961201}
\ No newline at end of file
{"uuid": "d297fbb2-096d-42b9-8cfe-c1a43ec207e4", "befores": [{"name": "level", "status": "passed", "start": 1730880960363, "stop": 1730880960363}], "start": 1730880960363, "stop": 1730880960390}
\ No newline at end of file
{"uuid": "6e6a0b4c-ebf3-4fbc-a7da-25629caa1637", "befores": [{"name": "level", "status": "passed", "start": 1730880961206, "stop": 1730880961206}], "start": 1730880961206, "stop": 1730880961223}
\ No newline at end of file
{"uuid": "30e3c0f2-586f-4afb-bb90-a08c9e12d780", "befores": [{"name": "level", "status": "passed", "start": 1730880960792, "stop": 1730880960792}], "start": 1730880960792, "stop": 1730880960804}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}, 服务器返回的数据为:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1854074524459966464"}
\ No newline at end of file
{"uuid": "b192eda7-4cc7-4ed1-b24a-1aeda496334a", "befores": [{"name": "update_key", "status": "passed", "start": 1730880961173, "stop": 1730880961173}], "start": 1730880961173, "stop": 1730880961202}
\ No newline at end of file
{"uuid": "e57b98a9-c0f3-4767-9f34-098d47f3bace", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960241, "stop": 1730880960241}], "start": 1730880960241, "stop": 1730880960268}
\ No newline at end of file
{"uuid": "6842758c-ec4a-48d6-b94e-4f548d753b87", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960393, "stop": 1730880960394}], "start": 1730880960393, "stop": 1730880960422}
\ No newline at end of file
{"uuid": "999170a0-244f-4406-81e6-55c4b3ed506c", "befores": [{"name": "module", "status": "passed", "start": 1730880960215, "stop": 1730880960215}], "start": 1730880960215, "stop": 1730880960237}
\ No newline at end of file
{"uuid": "15d45ede-51bd-4a6b-8de3-3cfadd0b6c6b", "befores": [{"name": "title", "status": "passed", "start": 1730880960494, "stop": 1730880960494}], "start": 1730880960494, "stop": 1730880960517}
\ No newline at end of file
{"uuid": "80462c24-1bd8-49d4-bc80-c068d88e9c75", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960973, "stop": 1730880960973}], "start": 1730880960973, "stop": 1730880961002}
\ No newline at end of file
{"uuid": "0c5e3a8e-1da6-4061-adea-ce4a7fa265cd", "befores": [{"name": "url", "status": "passed", "start": 1730880960271, "stop": 1730880960271}], "start": 1730880960271, "stop": 1730880960299}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过长", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C6A31D0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase_data = {'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHns...UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None, module = '认证接口', api = '登录系统'\ntitle = '反向用例-用户名正确-密码过长', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert None == False\nE + where None = <built-in method get of dict object at 0x000002692C86A680>('state')\nE + where <built-in method get of dict object at 0x000002692C86A680> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...ksImlhdCI6MTczMDg4MDc4OX0.n-jQSuY-n2ZNHgB6KPBA1zlyfFopummPl1u5YLdqXIW3VZ23VS7iM9ARa-V3vNFN1dtycor5go8W55u15nxypg', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...ksImlhdCI6MTczMDg4MDc4OX0.n-jQSuY-n2ZNHgB6KPBA1zlyfFopummPl1u5YLdqXIW3VZ23VS7iM9ARa-V3vNFN1dtycor5go8W55u15nxypg', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_Yukino\\test_bpm.py:35: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C6A31D0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase_data = {'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHns...UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None, module = '认证接口', api = '登录系统'\ntitle = '反向用例-用户名正确-密码过长', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Yukino\\test_bpm.py:38: AssertionError"}, "attachments": [{"name": "log", "source": "fda9f934-d7d0-4f0f-ad66-e041e9310684-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-用户名正确-密码过长'"}, {"name": "level", "value": "'中'"}], "start": 1730880960809, "stop": 1730880960843, "uuid": "70a31bc7-ed43-4727-97ff-a64e8048b23d", "historyId": "18ff9a88add5f8e5fab1c6fb88102f18", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "f2c1f14e-92aa-409f-8b16-bac3c2e974b9", "befores": [{"name": "method", "status": "passed", "start": 1730880960074, "stop": 1730880960074}], "start": 1730880960074, "stop": 1730880960088}
\ No newline at end of file
{"uuid": "93b0715e-3820-4a7a-887e-2e9d8783bccf", "befores": [{"name": "mime", "status": "passed", "start": 1730880960611, "stop": 1730880960611}], "start": 1730880960611, "stop": 1730880960647}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074528163536896"}
\ No newline at end of file
{"uuid": "4bc77261-bd8e-4943-91cc-ca6307568e16", "befores": [{"name": "url", "status": "passed", "start": 1730880960425, "stop": 1730880960425}], "start": 1730880960425, "stop": 1730880960477}
\ No newline at end of file
{"name": "反向用例-维度id为空", "status": "passed", "attachments": [{"name": "log", "source": "45bec8f5-f460-45e3-88ed-3046dcb9c3e4-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': ''}"}, {"name": "expect_data", "value": "{'state': False, 'message': '删除维度失败,维度ids必填'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'根据维度编码删除维度'"}, {"name": "title", "value": "'反向用例-维度id为空'"}, {"name": "level", "value": "'高'"}], "start": 1730880961308, "stop": 1730880961321, "uuid": "bf10a5ce-33da-4f2e-b301-9339c97bf489", "historyId": "1ad06714ae9e76ea1a55bef57ae482e2", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "174b23d2-a6d2-413c-895b-31420786e540", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960074, "stop": 1730880960074}], "start": 1730880960074, "stop": 1730880960088}
\ No newline at end of file
{"uuid": "e62b399d-7da6-4ba0-a77d-9394f8492da4", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960585, "stop": 1730880960585}], "start": 1730880960584, "stop": 1730880960609}
\ No newline at end of file
{"name": "反向用例-维度id为空", "status": "passed", "attachments": [{"name": "log", "source": "6983f443-d3b4-4d83-b0e6-5abbadbdd857-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': ''}"}, {"name": "expect_data", "value": "{'state': False, 'message': '删除维度失败,维度ids必填'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'根据维度编码删除维度'"}, {"name": "title", "value": "'反向用例-维度id为空'"}, {"name": "level", "value": "'高'"}], "start": 1730880960649, "stop": 1730880960662, "uuid": "a9f08160-43d1-4483-a6cb-6c4d5f37c533", "historyId": "490f1a08d82f8c3fcc79e9186c5d8e15", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "67d00efb-f024-4853-bee7-43a48d881d26", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960494, "stop": 1730880960494}], "start": 1730880960494, "stop": 1730880960519}
\ No newline at end of file
{"uuid": "0dad390c-3fe1-4b45-adb3-2c883ca10d2b", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960361, "stop": 1730880960361}], "start": 1730880960361, "stop": 1730880960390}
\ No newline at end of file
{"uuid": "721bc42c-8fc4-4a65-8ae5-e208d5ab1402", "befores": [{"name": "method", "status": "passed", "start": 1730880961074, "stop": 1730880961074}], "start": 1730880961074, "stop": 1730880961125}
\ No newline at end of file
{"uuid": "60f142b8-269b-4b3a-8e96-a99276b4960f", "befores": [{"name": "api", "status": "passed", "start": 1730880961276, "stop": 1730880961276}], "start": 1730880961276, "stop": 1730880961304}
\ No newline at end of file
{"uuid": "600c6358-18f7-4bc5-bc26-6eda50170827", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960494, "stop": 1730880960494}], "start": 1730880960494, "stop": 1730880960519}
\ No newline at end of file
{"uuid": "cbbc68de-d205-4dda-aad7-888da53ec5e9", "befores": [{"name": "method", "status": "passed", "start": 1730880960425, "stop": 1730880960425}], "start": 1730880960425, "stop": 1730880960478}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码为特殊字符", "status": "passed", "attachments": [{"name": "log", "source": "2cef1c4f-8a12-411c-8d33-8ac1e30a5352-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': '✿❀♧♡♥'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-用户名正确-密码为特殊字符'"}, {"name": "level", "value": "'中'"}], "start": 1730880960241, "stop": 1730880960266, "uuid": "de4b65e0-712d-4e51-ab66-26c3f31cef2f", "historyId": "5e5719a38f5e603ce387a6584361860c", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "cc06e52f-c5f8-4a44-9703-8ee1f2c6335c", "befores": [{"name": "api", "status": "passed", "start": 1730880960548, "stop": 1730880960548}], "start": 1730880960548, "stop": 1730880960566}
\ No newline at end of file
{"uuid": "c57a4c4d-b7fe-4bcb-8cdb-d06a32143eba", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960074, "stop": 1730880960074}], "start": 1730880960074, "stop": 1730880960088}
\ No newline at end of file
{"uuid": "b268abe8-7271-44fb-b6f7-4d727331d59b", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880961173, "stop": 1730880961173}], "start": 1730880961173, "stop": 1730880961202}
\ No newline at end of file
{"uuid": "6f0a1151-99af-4792-9402-725728c0576c", "befores": [{"name": "api", "status": "passed", "start": 1730880960332, "stop": 1730880960332}], "start": 1730880960332, "stop": 1730880960359}
\ No newline at end of file
{"uuid": "863c1931-1eab-46dd-88a7-c3b871a3f3a6", "befores": [{"name": "title", "status": "passed", "start": 1730880960649, "stop": 1730880960649}], "start": 1730880960649, "stop": 1730880960662}
\ No newline at end of file
{"uuid": "dd46f548-54f6-471d-9521-fce9125509bd", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960548, "stop": 1730880960548}], "start": 1730880960548, "stop": 1730880960567}
\ No newline at end of file
{"uuid": "97577088-e646-4aff-aca2-a7230e00cf3d", "befores": [{"name": "method", "status": "passed", "start": 1730880961204, "stop": 1730880961204}], "start": 1730880961204, "stop": 1730880961227}
\ No newline at end of file
{"uuid": "8f3425a1-2867-4af0-9120-1c4fdb937059", "befores": [{"name": "url", "status": "passed", "start": 1730880961237, "stop": 1730880961237}], "start": 1730880961237, "stop": 1730880961244}
\ No newline at end of file
{"uuid": "fdb7f1a6-feca-4a3b-b406-f3c336fe4322", "befores": [{"name": "level", "status": "passed", "start": 1730880960521, "stop": 1730880960521}], "start": 1730880960521, "stop": 1730880960544}
\ No newline at end of file
{"uuid": "3bd239b8-7af8-4668-8d7a-b413e90ac08c", "befores": [{"name": "url", "status": "passed", "start": 1730880960611, "stop": 1730880960611}], "start": 1730880960611, "stop": 1730880960647}
\ No newline at end of file
{"uuid": "a2ee1581-81b6-406f-9ee5-47abe546d4ee", "befores": [{"name": "url", "status": "passed", "start": 1730880961308, "stop": 1730880961308}], "start": 1730880961308, "stop": 1730880961323}
\ No newline at end of file
{"uuid": "4aae4f9e-07cc-417c-8844-744c584e63df", "befores": [{"name": "mime", "status": "passed", "start": 1730880960808, "stop": 1730880960808}], "start": 1730880960808, "stop": 1730880960851}
\ No newline at end of file
{"uuid": "1781bf06-bc5b-4b6a-8e89-3e2a07dd2e6d", "befores": [{"name": "mime", "status": "passed", "start": 1730880960301, "stop": 1730880960301}], "start": 1730880960301, "stop": 1730880960330}
\ No newline at end of file
{"uuid": "7f009354-ab78-42b8-9d4d-60ac08b97d07", "befores": [{"name": "api", "status": "passed", "start": 1730880960973, "stop": 1730880960973}], "start": 1730880960973, "stop": 1730880961002}
\ No newline at end of file
{"uuid": "1fa9383a-bd97-4307-bb2d-f3c57bdcedcc", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880961173, "stop": 1730880961173}], "start": 1730880961173, "stop": 1730880961202}
\ No newline at end of file
{"uuid": "48504ba9-31bd-41e6-b766-77f492d0cf60", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960480, "stop": 1730880960480}], "start": 1730880960480, "stop": 1730880960492}
\ No newline at end of file
{"uuid": "84ceceef-a9b7-4964-9d05-432dd3c6fd47", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880961245, "stop": 1730880961245}], "start": 1730880961245, "stop": 1730880961273}
\ No newline at end of file
{"uuid": "b39c6cba-a5f9-4764-8a89-0e77d7568daa", "befores": [{"name": "level", "status": "passed", "start": 1730880961075, "stop": 1730880961075}], "start": 1730880961075, "stop": 1730880961121}
\ No newline at end of file
{"uuid": "1845ff10-eb5d-4f3f-9956-771753dd62d9", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960271, "stop": 1730880960271}], "start": 1730880960271, "stop": 1730880960298}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "272f8e1c-dd4c-449c-b41f-0b4ec8f39af2-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '添加维度成功!'}"}, {"name": "sql_type", "value": "'delete'"}, {"name": "sql_data", "value": "'DELETE FROM uc_demension WHERE CODE_ like \"Kumiko%\";'"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'添加维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}], "start": 1730880961075, "stop": 1730880961121, "uuid": "7e7b6b8c-1a0d-4518-a99f-ba767b8a4d91", "historyId": "af59296d2223fb6bcaa1dcbcf2f9be2b", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "9bdc5e63-3dbd-40ba-9ae4-13decc7a9bcc-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '需要更新'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '删除维度成功!'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'"}, {"name": "update_key", "value": "'ids'"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'根据维度编码删除维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}], "start": 1730880961276, "stop": 1730880961303, "uuid": "ffc9cf24-e493-451b-bb1b-1bb5695de7bf", "historyId": "2e8f3eb25015ae496d7322bbef8e9f17", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "bec9e14b-3beb-4ab8-90fa-f65e4884ab8d", "befores": [{"name": "url", "status": "passed", "start": 1730880961204, "stop": 1730880961204}], "start": 1730880961204, "stop": 1730880961226}
\ No newline at end of file
{"name": "反向用例-密码正确-用户名为空", "status": "passed", "attachments": [{"name": "log", "source": "768a6c2e-acb8-4cd8-b25f-292f7aaaf1ff-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'Post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-密码正确-用户名为空'"}, {"name": "level", "value": "'中'"}], "start": 1730880960945, "stop": 1730880960968, "uuid": "76896a9c-942b-4c9d-80d0-040887d54a61", "historyId": "a7008efe03438fb95ba2a11b72edc9d4", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "37e09737-90a3-403e-a6e7-2ba8e0b27d15", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960241, "stop": 1730880960241}], "start": 1730880960241, "stop": 1730880960268}
\ No newline at end of file
{"uuid": "f697d35e-e01e-49ad-9d74-c81d4757fc00", "befores": [{"name": "title", "status": "passed", "start": 1730880961126, "stop": 1730880961126}], "start": 1730880961126, "stop": 1730880961139}
\ No newline at end of file
{"uuid": "cc55a224-7da2-49a5-b2fc-3238be4b3059", "befores": [{"name": "method", "status": "passed", "start": 1730880960569, "stop": 1730880960569}], "start": 1730880960569, "stop": 1730880960576}
\ No newline at end of file
{"uuid": "3da5da67-64f3-42ee-a451-4344c2026f1f", "befores": [{"name": "method", "status": "passed", "start": 1730880961126, "stop": 1730880961126}], "start": 1730880961126, "stop": 1730880961142}
\ No newline at end of file
{"uuid": "9bfa5667-3374-4434-abb6-8ede80dd107d", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960973, "stop": 1730880960973}], "start": 1730880960973, "stop": 1730880961002}
\ No newline at end of file
{"uuid": "38d0b9e2-18df-41b5-a28a-72e6e5f61f59", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960792, "stop": 1730880960792}], "start": 1730880960792, "stop": 1730880960806}
\ No newline at end of file
{"uuid": "6836dc34-2336-48e8-928a-a0b22f0b9051", "befores": [{"name": "method", "status": "passed", "start": 1730880960039, "stop": 1730880960039}], "start": 1730880960039, "stop": 1730880960073}
\ No newline at end of file
{"uuid": "94400cbb-062d-429f-b142-69515ec0bba5", "befores": [{"name": "case_data", "status": "passed", "start": 1730880961126, "stop": 1730880961126}], "start": 1730880961126, "stop": 1730880961141}
\ No newline at end of file
{"uuid": "b891aa8e-f3bf-4c2c-b6f2-5092d33a30c3", "befores": [{"name": "mime", "status": "passed", "start": 1730880961173, "stop": 1730880961173}], "start": 1730880961173, "stop": 1730880961203}
\ No newline at end of file
ERROR  root:requests_method.py:90 方法:request_all,传入的媒体类型为:query | json, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖
\ No newline at end of file
{"uuid": "a66bb443-a067-48ae-ad7a-198ab594ba3a", "befores": [{"name": "api", "status": "passed", "start": 1730880960569, "stop": 1730880960569}], "start": 1730880960569, "stop": 1730880960574}
\ No newline at end of file
{"name": "正向用例", "status": "broken", "statusDetails": {"message": "ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖", "trace": "self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C748200>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', mime = 'query | json'\ncase_data = {'body': [{'alias': 'sz', 'value': 1}], 'query': {'orgCode': 'Kumiko'}}, expect_data = {'message': '保存组织参数成功!', 'state': True}, sql_type = None\nsql_data = None, update_key = None, module = '组织管理', api = '保存组织参数', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n> res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n\ntest_case\\test_Yukino\\test_bpm.py:30: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, req_method = 'post'\nreq_url = 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', req_mime = 'query | json'\nreq_case_data = {'body': [{'alias': 'sz', 'value': 1}], 'query': {'orgCode': 'Kumiko'}}, sql_type = None, sql_data = None, update_key = None\n\n def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):\n \"\"\"\n 封装公共的请求方法\n :param req_method: 请求方法\n :param req_url: 请求url\n :param req_mime: 请求的媒体类型\n :param req_case_data: 请求数据\n :param sql_type: sql语句类型\n :param sql_data: sql语句\n :param update_key: 更新的key\n :return: Response type\n \"\"\"\n # 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求\n if sql_type == \"delete\":\n self.db.delete(sql_data)\n \n # 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求\n elif sql_type == \"select\":\n select_result = self.db.select(sql_data)\n req_case_data[update_key] = select_result\n \n # 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 要执行删除--删除数据库中现有的数据\n self.db.delete(sql_data[\"delete\"])\n # 查询语句--将查询结果更新到用例数据中\n select_result = self.db.select(sql_data[\"select\"])\n req_case_data[update_key] = select_result\n \n # 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求\n # 发送请求时,用例使用使用哪些关键字传参,需要添加判断\n # 判断媒体类型的值是否为:application/json 或 json,使用json传参\n if req_mime == \"json\" or req_mime == \"application/json\":\n return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)\n \n # 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参\n # 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。\n elif req_mime == \"application/x-www-form-urlencoded\" or req_mime == \"x-www-form-urlencoded\" or req_mime == \"form\":\n return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)\n \n # 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参\n elif req_mime == \"multipart/form-data\" or req_mime == \"form-data\":\n return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)\n \n # 判断媒体类型的值是否为:query,使用params传参\n elif req_mime == \"query\":\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)\n \n # 判断媒体类型的值是否为:None,表示没有传参\n elif req_mime is None:\n return self.bpm_session.request(method=req_method, url=req_url)\n \n # 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。\n elif req_mime == \"query|json\" or req_mime == \"json|query\":\n # requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data[\"query\"], json=req_case_data[\"body\"])\n \n else:\n log.error(f\"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\n> raise ValueError(\"没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\nE ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\n\nrequests_method\\requests_method.py:91: ValueError"}, "attachments": [{"name": "log", "source": "8a2de90c-bca3-45ad-8bb4-66f54e27bbf9-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}, {"name": "mime", "value": "'query | json'"}, {"name": "case_data", "value": "{'query': {'orgCode': 'Kumiko'}, 'body': [{'alias': 'sz', 'value': 1}]}"}, {"name": "expect_data", "value": "{'state': True, 'message': '保存组织参数成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'保存组织参数'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}], "start": 1730880961229, "stop": 1730880961229, "uuid": "166956ea-1b23-44e5-b239-572f59e159fe", "historyId": "86270d8e53b4a9ef6700843d0c1e89a4", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "保存组织参数"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "faf7eed4-1dc8-401b-9602-28ad031a663d", "befores": [{"name": "module", "status": "passed", "start": 1730880961237, "stop": 1730880961237}], "start": 1730880961237, "stop": 1730880961242}
\ No newline at end of file
{"uuid": "830eec47-c614-4e28-91e4-025d3b6e2f88", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960215, "stop": 1730880960215}], "start": 1730880960215, "stop": 1730880960238}
\ No newline at end of file
{"name": "反向用例-密码正确-用户名过长", "status": "passed", "attachments": [{"name": "log", "source": "3b3af8e3-6a9e-4b1d-b4ec-bfdf9ee2db70-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-密码正确-用户名过长'"}, {"name": "level", "value": "'中'"}], "start": 1730880960363, "stop": 1730880960389, "uuid": "8834dc3f-b1cd-454a-a8de-7754a4e960e0", "historyId": "23fbc7757c434b9d907f58f0a635847f", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "36040275-184f-4fc7-bbe4-55e0c77c764d", "befores": [{"name": "method", "status": "passed", "start": 1730880961039, "stop": 1730880961039}], "start": 1730880961039, "stop": 1730880961072}
\ No newline at end of file
{"uuid": "0d44e19e-1ad5-46cf-b4e6-422e6544942b", "befores": [{"name": "update_key", "status": "passed", "start": 1730880961075, "stop": 1730880961075}], "start": 1730880961075, "stop": 1730880961123}
\ No newline at end of file
{"uuid": "1581f271-ea08-4093-89c5-d9f1a14ff422", "befores": [{"name": "mime", "status": "passed", "start": 1730880960074, "stop": 1730880960074}], "start": 1730880960074, "stop": 1730880960088}
\ No newline at end of file
{"uuid": "3e71cf1c-25c4-49fa-878b-dd4240f89f9a", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960393, "stop": 1730880960393}], "start": 1730880960393, "stop": 1730880960423}
\ No newline at end of file
{"uuid": "5cfba1ff-6328-4f60-b162-529f80af2e18", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960944, "stop": 1730880960944}], "start": 1730880960944, "stop": 1730880960971}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'},期望数据为:{'state': True, 'message': '更新维度成功!'}, 服务器返回的数据为:{"state":true,"message":"更新维度成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "9a555852-b577-460c-a724-e76bf1519dd2", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880961144, "stop": 1730880961144}], "start": 1730880961144, "stop": 1730880961169}
\ No newline at end of file
{"uuid": "4ee7b8bc-0f01-4606-ab0e-104b42f99bc1", "befores": [{"name": "url", "status": "passed", "start": 1730880960301, "stop": 1730880960301}], "start": 1730880960301, "stop": 1730880960330}
\ No newline at end of file
{"uuid": "5075cfaa-3218-4b86-8e20-185763c8b822", "befores": [{"name": "level", "status": "passed", "start": 1730880960216, "stop": 1730880960216}], "start": 1730880960216, "stop": 1730880960236}
\ No newline at end of file
{"uuid": "26dc4ee0-fba6-4b26-9a90-58c8072f0d92", "befores": [{"name": "level", "status": "passed", "start": 1730880961126, "stop": 1730880961126}], "start": 1730880961126, "stop": 1730880961139}
\ No newline at end of file
{"uuid": "d40b5e2b-bc0a-4934-b589-dbe7e6aa4856", "befores": [{"name": "mime", "status": "passed", "start": 1730880961144, "stop": 1730880961144}], "start": 1730880961144, "stop": 1730880961171}
\ No newline at end of file
{"uuid": "2d1d55e5-09e7-4738-a117-54cb01a79f81", "befores": [{"name": "level", "status": "passed", "start": 1730880960569, "stop": 1730880960569}], "start": 1730880960569, "stop": 1730880960573}
\ No newline at end of file
{"uuid": "814120ad-2682-4566-90ab-74ce6a6b208d", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960521, "stop": 1730880960521}], "start": 1730880960521, "stop": 1730880960546}
\ No newline at end of file
{"uuid": "07746409-a554-4655-9fd5-7ee45981ad41", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960792, "stop": 1730880960792}], "start": 1730880960792, "stop": 1730880960807}
\ No newline at end of file
{"uuid": "f609c4e4-192a-4196-b498-217766af4166", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960751, "stop": 1730880960751}], "start": 1730880960751, "stop": 1730880960790}
\ No newline at end of file
{"uuid": "9b296c9f-254c-4c0f-879b-0b86e8631289", "befores": [{"name": "title", "status": "passed", "start": 1730880960363, "stop": 1730880960363}], "start": 1730880960363, "stop": 1730880960390}
\ No newline at end of file
{"uuid": "57ea8aff-cbe2-44a1-9aa0-82ea3234ab8f", "befores": [{"name": "api", "status": "passed", "start": 1730880961144, "stop": 1730880961144}], "start": 1730880961144, "stop": 1730880961168}
\ No newline at end of file
{"uuid": "04741368-870f-4e0c-9472-249b99eaddcc", "befores": [{"name": "method", "status": "passed", "start": 1730880960577, "stop": 1730880960577}], "start": 1730880960577, "stop": 1730880960583}
\ No newline at end of file
{"uuid": "c022f33e-72fa-40d7-bb26-92219b876ff5", "befores": [{"name": "url", "status": "passed", "start": 1730880960074, "stop": 1730880960074}], "start": 1730880960074, "stop": 1730880960088}
\ No newline at end of file
{"uuid": "eb1c5146-78a3-4197-a6c7-79f12c28d805", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960494, "stop": 1730880960494}], "start": 1730880960494, "stop": 1730880960517}
\ No newline at end of file
{"uuid": "e0dabc1a-75fe-41a1-aa3c-a8f6c5d1b25a", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960611, "stop": 1730880960611}], "start": 1730880960611, "stop": 1730880960647}
\ No newline at end of file
{"uuid": "a728cd18-bc21-4878-ac7a-8dd4872fe687", "befores": [{"name": "mime", "status": "passed", "start": 1730880961039, "stop": 1730880961039}], "start": 1730880961039, "stop": 1730880961072}
\ No newline at end of file
{"name": "反向用例-密码正确-用户名过短", "status": "passed", "attachments": [{"name": "log", "source": "63db074f-8c1f-47aa-9e4f-d06afa148331-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-密码正确-用户名过短'"}, {"name": "level", "value": "'中'"}], "start": 1730880960974, "stop": 1730880961001, "uuid": "539d4402-42c8-4bf5-915d-8e2f5bede896", "historyId": "f673a9eaef0a31e6c946f711b54104ec", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "85efe42a-1fc9-4485-979d-4e07dea36b5e", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960494, "stop": 1730880960494}], "start": 1730880960494, "stop": 1730880960517}
\ No newline at end of file
{"uuid": "ca4a1a47-bb14-4e2a-8aa4-88c00a697911", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880961074, "stop": 1730880961074}], "start": 1730880961074, "stop": 1730880961123}
\ No newline at end of file
{"uuid": "c5d8a5d4-c85a-4b9c-802f-7e57505f1eb7", "befores": [{"name": "title", "status": "passed", "start": 1730880961245, "stop": 1730880961245}], "start": 1730880961245, "stop": 1730880961272}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过短", "status": "passed", "attachments": [{"name": "log", "source": "f862375d-ac4d-4ee2-893a-ecfafb3731c6-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'a'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-用户名正确-密码过短'"}, {"name": "level", "value": "'中'"}], "start": 1730880960216, "stop": 1730880960236, "uuid": "11655843-8ebd-4dce-9659-4b68c84ea24a", "historyId": "3c7beb3676d39d75e5924b899ba8173e", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "eb4f13bc-3517-42e5-889b-ffbfa7a1fe68", "befores": [{"name": "module", "status": "passed", "start": 1730880961276, "stop": 1730880961276}], "start": 1730880961276, "stop": 1730880961304}
\ No newline at end of file
{"uuid": "54ca4d47-f0c1-44e2-a65f-3278fd583a6c", "befores": [{"name": "api", "status": "passed", "start": 1730880960521, "stop": 1730880960521}], "start": 1730880960521, "stop": 1730880960544}
\ No newline at end of file
{"uuid": "7925e265-f83d-46c6-9ccb-04a6df935f1c", "befores": [{"name": "case_data", "status": "passed", "start": 1730880961039, "stop": 1730880961039}], "start": 1730880961039, "stop": 1730880961072}
\ No newline at end of file
{"uuid": "a3f54eb1-2882-4cf9-b01c-30949028aa07", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960611, "stop": 1730880960611}], "start": 1730880960611, "stop": 1730880960646}
\ No newline at end of file
ERROR  root:test_bpm.py:36 断言失败,用例数据为:{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'}, 服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[Kumiko]已存在!","value":"保存失败","code":200}
\ No newline at end of file
{"uuid": "c12492ed-4ce0-42dd-a7ef-bf3dd3b8a75c", "befores": [{"name": "level", "status": "passed", "start": 1730880960480, "stop": 1730880960480}], "start": 1730880960480, "stop": 1730880960491}
\ No newline at end of file
{"uuid": "2da1e35c-629f-45b3-b7d2-141e77108950", "befores": [{"name": "mime", "status": "passed", "start": 1730880960649, "stop": 1730880960649}], "start": 1730880960649, "stop": 1730880960663}
\ No newline at end of file
{"uuid": "70952995-884f-4091-a60d-ad0ad71cd0f9", "befores": [{"name": "level", "status": "passed", "start": 1730880960611, "stop": 1730880960611}], "start": 1730880960611, "stop": 1730880960643}
\ No newline at end of file
{"uuid": "1ac9f469-798c-4341-8554-8816dbf37093", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960751, "stop": 1730880960751}], "start": 1730880960751, "stop": 1730880960789}
\ No newline at end of file
{"uuid": "6e98cab4-20ca-4463-b07d-a51cfa6d8d43", "befores": [{"name": "title", "status": "passed", "start": 1730880960241, "stop": 1730880960241}], "start": 1730880960241, "stop": 1730880960267}
\ No newline at end of file
{"uuid": "130846c0-65a6-4eab-b97a-c4e081b81fa4", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880961228, "stop": 1730880961228}], "start": 1730880961228, "stop": 1730880961234}
\ No newline at end of file
INFO  root:db.py:52 执行的方法为:select,功能描述为:执行查询的sql语句,传入的参数为:SELECT ID_ FROM uc_demension WHERE CODE_ like "Kumiko%";
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'ids': '1854074528767516672'},期望数据为:{'state': True, 'message': '删除维度成功!'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "851baf5a-6cf8-4dd1-9162-1bde5f6d4db4", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960751, "stop": 1730880960751}], "start": 1730880960751, "stop": 1730880960790}
\ No newline at end of file
{"uuid": "1c2c4c44-d68b-4c96-9c84-23db147a0ac0", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960091, "stop": 1730880960091}], "start": 1730880960091, "stop": 1730880960211}
\ No newline at end of file
{"uuid": "54d3eddf-d723-4a5d-a748-05c6011f957d", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960480, "stop": 1730880960480}], "start": 1730880960480, "stop": 1730880960492}
\ No newline at end of file
{"uuid": "c7158052-8022-4700-835d-39a7d8c93d72", "befores": [{"name": "level", "status": "passed", "start": 1730880960880, "stop": 1730880960880}], "start": 1730880960880, "stop": 1730880960909}
\ No newline at end of file
{"uuid": "7aa23d57-1a64-4ac2-9a63-b7cf5eef4c03", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960361, "stop": 1730880960361}], "start": 1730880960361, "stop": 1730880960391}
\ No newline at end of file
{"uuid": "2e2664f3-0f30-4ca7-8fa1-5cc7e9a03c08", "befores": [{"name": "title", "status": "passed", "start": 1730880960880, "stop": 1730880960880}], "start": 1730880960880, "stop": 1730880960909}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074525860864000"}
\ No newline at end of file
{"uuid": "7ed435ea-db06-43d8-9174-fca2f21bb1dc", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960792, "stop": 1730880960792}], "start": 1730880960792, "stop": 1730880960806}
\ No newline at end of file
{"uuid": "a06534a2-a9c3-496b-be9e-1fe07bb42190", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880961308, "stop": 1730880961308}], "start": 1730880961308, "stop": 1730880961322}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "15c754a5-2461-4ca4-9479-af25fcd23e93-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'put'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'code': 'Kumiko'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '设置默认维度成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'设置默认维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}], "start": 1730880960521, "stop": 1730880960544, "uuid": "711a2587-5bea-44ba-940e-7c2c9e7c6efc", "historyId": "97db433b8c9df7c62d0d676f607c1135", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "设置默认维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "0b056c7f-d631-4573-b8b9-ac2e2dcec46f", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960880, "stop": 1730880960880}], "start": 1730880960880, "stop": 1730880960910}
\ No newline at end of file
{"uuid": "6daf4986-a95b-421c-bec4-1e3fbd2ef944", "befores": [{"name": "module", "status": "passed", "start": 1730880960585, "stop": 1730880960585}], "start": 1730880960585, "stop": 1730880960608}
\ No newline at end of file
{"uuid": "e1ff7750-9689-4141-9a8d-d53b24453859", "befores": [{"name": "method", "status": "passed", "start": 1730880960649, "stop": 1730880960649}], "start": 1730880960649, "stop": 1730880960664}
\ No newline at end of file
{"uuid": "5c8b665b-cdbf-4540-af6d-3a872b44dd93", "befores": [{"name": "level", "status": "passed", "start": 1730880960241, "stop": 1730880960241}], "start": 1730880960241, "stop": 1730880960266}
\ No newline at end of file
{"uuid": "2815c731-3a69-441e-9acd-4c0df836fd42", "befores": [{"name": "method", "status": "passed", "start": 1730880961173, "stop": 1730880961173}], "start": 1730880961173, "stop": 1730880961204}
\ No newline at end of file
{"uuid": "c2e67cd1-7f7e-4f14-b556-14dfd6d8baf7", "befores": [{"name": "level", "status": "passed", "start": 1730880960649, "stop": 1730880960649}], "start": 1730880960649, "stop": 1730880960662}
\ No newline at end of file
{"uuid": "8b089bb9-4772-4854-acc0-c51f22557dff", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960944, "stop": 1730880960944}], "start": 1730880960944, "stop": 1730880960970}
\ No newline at end of file
{"uuid": "98586cab-7a3c-4629-95a2-02c77cb3ef40", "befores": [{"name": "title", "status": "passed", "start": 1730880960480, "stop": 1730880960480}], "start": 1730880960480, "stop": 1730880960491}
\ No newline at end of file
{"uuid": "35963680-0679-4a55-9c86-f6887c3e7d76", "befores": [{"name": "update_key", "status": "passed", "start": 1730880961144, "stop": 1730880961144}], "start": 1730880961144, "stop": 1730880961169}
\ No newline at end of file
{"uuid": "757f9844-adcb-4c94-8879-0136cf9c26d7", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960913, "stop": 1730880960913}], "start": 1730880960913, "stop": 1730880960941}
\ No newline at end of file
{"uuid": "153cc2c6-2629-4b77-8a19-5a23f3e7bb7a", "befores": [{"name": "title", "status": "passed", "start": 1730880960611, "stop": 1730880960611}], "start": 1730880960611, "stop": 1730880960644}
\ No newline at end of file
{"uuid": "ff962170-7aed-4580-8cc8-05c7fcc1f3b9", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960039, "stop": 1730880960039}], "start": 1730880960039, "stop": 1730880960072}
\ No newline at end of file
{"uuid": "a0bd4ec1-a1d3-420c-9bff-d19e6fbf5fdb", "befores": [{"name": "case_data", "status": "passed", "start": 1730880961173, "stop": 1730880961173}], "start": 1730880961173, "stop": 1730880961203}
\ No newline at end of file
{"uuid": "d1b40e15-b9d4-4c46-8efb-83233e629a99", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960241, "stop": 1730880960241}], "start": 1730880960241, "stop": 1730880960268}
\ No newline at end of file
{"uuid": "df44e16d-e084-4f5f-a8dd-aca4a7aa1674", "befores": [{"name": "level", "status": "passed", "start": 1730880960854, "stop": 1730880960854}], "start": 1730880960854, "stop": 1730880960874}
\ No newline at end of file
{"uuid": "5ce7c827-c6e0-4f57-bc70-61d63d11ab63", "befores": [{"name": "title", "status": "passed", "start": 1730880961206, "stop": 1730880961206}], "start": 1730880961206, "stop": 1730880961224}
\ No newline at end of file
{"uuid": "11e7c851-3c8f-4d2a-8135-3d6a3e6f8fac", "befores": [{"name": "title", "status": "passed", "start": 1730880960577, "stop": 1730880960577}], "start": 1730880960577, "stop": 1730880960581}
\ No newline at end of file
{"uuid": "50949033-4140-4fc6-bcc7-002ada47a078", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960332, "stop": 1730880960332}], "start": 1730880960332, "stop": 1730880960360}
\ No newline at end of file
{"uuid": "4dff1a72-ffb8-46ec-98a3-678db87cd69d", "befores": [{"name": "title", "status": "passed", "start": 1730880960854, "stop": 1730880960854}], "start": 1730880960854, "stop": 1730880960874}
\ No newline at end of file
{"uuid": "55cf8bb1-4883-4403-aa74-2d5f223b9a64", "befores": [{"name": "mime", "status": "passed", "start": 1730880961308, "stop": 1730880961308}], "start": 1730880961308, "stop": 1730880961323}
\ No newline at end of file
{"uuid": "21fffdd8-566f-47f8-ba91-5008d0e4303a", "befores": [{"name": "module", "status": "passed", "start": 1730880960332, "stop": 1730880960332}], "start": 1730880960332, "stop": 1730880960359}
\ No newline at end of file
{"uuid": "de9248d1-b035-4919-b590-afcf759b80cf", "befores": [{"name": "url", "status": "passed", "start": 1730880960808, "stop": 1730880960808}], "start": 1730880960808, "stop": 1730880960851}
\ No newline at end of file
{"uuid": "1b2f7423-3b58-4db6-996b-36dcd263a303", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960649, "stop": 1730880960649}], "start": 1730880960649, "stop": 1730880960662}
\ No newline at end of file
{"uuid": "9b1996aa-2b54-4144-a41a-62b951d82d69", "befores": [{"name": "method", "status": "passed", "start": 1730880960361, "stop": 1730880960361}], "start": 1730880960361, "stop": 1730880960391}
\ No newline at end of file
{"uuid": "d0839256-bb0f-4d89-a3e9-cc2c5ecc10b4", "befores": [{"name": "api", "status": "passed", "start": 1730880960808, "stop": 1730880960808}], "start": 1730880960808, "stop": 1730880960847}
\ No newline at end of file
{"uuid": "c6c72fad-ced8-4922-9971-a524bd64b45c", "befores": [{"name": "method", "status": "passed", "start": 1730880960584, "stop": 1730880960584}], "start": 1730880960584, "stop": 1730880960609}
\ No newline at end of file
{"uuid": "3b771921-b9a7-4487-8dc6-819df5c9e701", "befores": [{"name": "url", "status": "passed", "start": 1730880960215, "stop": 1730880960215}], "start": 1730880960215, "stop": 1730880960239}
\ No newline at end of file
{"uuid": "ebef2c4c-33c1-46c1-b970-b6ec02074ec9", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960393, "stop": 1730880960393}], "start": 1730880960393, "stop": 1730880960423}
\ No newline at end of file
{"uuid": "00f03f24-790c-4dc0-a00a-812d7d87f001", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880961074, "stop": 1730880961074}], "start": 1730880961074, "stop": 1730880961124}
\ No newline at end of file
{"uuid": "eacadbbf-131b-49c0-bc7c-ebadacd94705", "befores": [{"name": "case_data", "status": "passed", "start": 1730880961276, "stop": 1730880961276}], "start": 1730880961276, "stop": 1730880961306}
\ No newline at end of file
{"uuid": "7ac0fa7f-ae8a-4996-bcee-7be587da3c66", "befores": [{"name": "module", "status": "passed", "start": 1730880961144, "stop": 1730880961144}], "start": 1730880961144, "stop": 1730880961168}
\ No newline at end of file
{"uuid": "3ef7925a-d8a0-4519-96ff-b2615680b1e8", "befores": [{"name": "module", "status": "passed", "start": 1730880960854, "stop": 1730880960854}], "start": 1730880960854, "stop": 1730880960875}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}, 服务器返回的数据为:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1854074527471476736"}
\ No newline at end of file
{"uuid": "bd66e8cd-5cd0-41c0-93b0-9b5f113f0133", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960569, "stop": 1730880960569}], "start": 1730880960569, "stop": 1730880960574}
\ No newline at end of file
{"uuid": "7d26da54-7146-4853-b5f4-523c32c5a696", "befores": [{"name": "level", "status": "passed", "start": 1730880961245, "stop": 1730880961245}], "start": 1730880961245, "stop": 1730880961272}
\ No newline at end of file
{"uuid": "8e85f46e-f86b-44d2-be3a-5f31fee135ee", "befores": [{"name": "method", "status": "passed", "start": 1730880961228, "stop": 1730880961228}], "start": 1730880961228, "stop": 1730880961235}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码错误", "status": "passed", "attachments": [{"name": "log", "source": "6f5d737b-8ddf-4b5d-ae9a-330b69aaaeeb-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'dPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '解密密码异常,请检查RSA公钥和私钥配置'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-用户名正确-密码错误'"}, {"name": "level", "value": "'中'"}], "start": 1730880960074, "stop": 1730880960087, "uuid": "70f6e831-81d4-4169-a2a0-8f729558a040", "historyId": "706718e33e5164ad89099fe5215f92a2", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "c4cf3c04-2567-4f49-a164-a94ff69356a3", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960569, "stop": 1730880960569}], "start": 1730880960569, "stop": 1730880960574}
\ No newline at end of file
{"uuid": "dc0244c9-fa77-48a6-93ef-95fb8b673eeb", "befores": [{"name": "url", "status": "passed", "start": 1730880960912, "stop": 1730880960913}], "start": 1730880960912, "stop": 1730880960943}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过长", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C561A90>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase_data = {'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHns...UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None, module = '认证接口', api = '登录系统'\ntitle = '反向用例-用户名正确-密码过长', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert None == False\nE + where None = <built-in method get of dict object at 0x000002692C6C3780>('state')\nE + where <built-in method get of dict object at 0x000002692C6C3780> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...gsImlhdCI6MTczMDg4MDc4OH0.ROOdZI7At5MqtwVwvwLiI6Zrj8hE1wGZldHfO8135Z4rC2FNRCGC09YfV_94VDimRwosuPP1SDmaUYP43CUL_A', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...gsImlhdCI6MTczMDg4MDc4OH0.ROOdZI7At5MqtwVwvwLiI6Zrj8hE1wGZldHfO8135Z4rC2FNRCGC09YfV_94VDimRwosuPP1SDmaUYP43CUL_A', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_Kumiko\\test_bpm.py:34: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C561A90>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase_data = {'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHns...UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None, module = '认证接口', api = '登录系统'\ntitle = '反向用例-用户名正确-密码过长', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Kumiko\\test_bpm.py:37: AssertionError"}, "attachments": [{"name": "log", "source": "d3a1c414-2069-4b30-8fe5-52ca8627da4c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-用户名正确-密码过长'"}, {"name": "level", "value": "'中'"}], "start": 1730880960091, "stop": 1730880960123, "uuid": "7e8628f2-f603-4c66-9de6-6a2051f8f233", "historyId": "f12665743262df36e5ff10b05e1dc1bb", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "3fe9e69f-fe50-42a7-b60e-65204ea64c8b", "befores": [{"name": "url", "status": "passed", "start": 1730880960569, "stop": 1730880960569}], "start": 1730880960569, "stop": 1730880960576}
\ No newline at end of file
{"uuid": "53799852-debd-42cf-bc2f-55c6f66c14e3", "befores": [{"name": "module", "status": "passed", "start": 1730880960394, "stop": 1730880960394}], "start": 1730880960394, "stop": 1730880960422}
\ No newline at end of file
{"uuid": "7d609c61-77f3-43b6-8a5c-45974822116a", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960944, "stop": 1730880960944}], "start": 1730880960944, "stop": 1730880960970}
\ No newline at end of file
{"uuid": "1908a403-26cc-4e99-b096-f1dc2004e645", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960271, "stop": 1730880960271}], "start": 1730880960271, "stop": 1730880960299}
\ No newline at end of file
{"uuid": "6e33607d-f84e-4c1a-9b06-583326726b8e", "befores": [{"name": "method", "status": "passed", "start": 1730880960853, "stop": 1730880960853}], "start": 1730880960853, "stop": 1730880960878}
\ No newline at end of file
{"uuid": "8ff853c2-3fd5-4b69-b8dd-b4a29efce62e", "befores": [{"name": "title", "status": "passed", "start": 1730880961173, "stop": 1730880961173}], "start": 1730880961173, "stop": 1730880961200}
\ No newline at end of file
{"uuid": "5a3a5bdf-4508-43d3-be3d-bd4ad01b0e19", "befores": [{"name": "case_data", "status": "passed", "start": 1730880961228, "stop": 1730880961228}], "start": 1730880961228, "stop": 1730880961235}
\ No newline at end of file
{"uuid": "38a5406a-875d-4eaa-8db6-f411373d3932", "befores": [{"name": "url", "status": "passed", "start": 1730880960973, "stop": 1730880960973}], "start": 1730880960973, "stop": 1730880961005}
\ No newline at end of file
{"uuid": "539404bb-1c20-4aba-a2f9-db9c9deaeb28", "befores": [{"name": "mime", "status": "passed", "start": 1730880960215, "stop": 1730880960215}], "start": 1730880960215, "stop": 1730880960239}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C5366F0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', mime = 'json', case_data = {'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', ...}\nexpect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'delete | select'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}, update_key = 'demId'\nmodule = '组织管理', api = '添加组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert False == True\nE + where False = <built-in method get of dict object at 0x000002692C870A00>('state')\nE + where <built-in method get of dict object at 0x000002692C870A00> = {'code': 200, 'message': '添加组织失败,组织编码[Kumiko]已存在!', 'state': False, 'value': '保存失败'}.get\nE + where {'code': 200, 'message': '添加组织失败,组织编码[Kumiko]已存在!', 'state': False, 'value': '保存失败'} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_Kumiko\\test_bpm.py:34: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C5366F0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', mime = 'json', case_data = {'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', ...}\nexpect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'delete | select'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}, update_key = 'demId'\nmodule = '组织管理', api = '添加组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Kumiko\\test_bpm.py:37: AssertionError"}, "attachments": [{"name": "log", "source": "9aeabc42-71aa-4af9-aa93-18454cf1931b-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '添加组织成功!'}"}, {"name": "sql_type", "value": "'delete | select'"}, {"name": "sql_data", "value": "{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}"}, {"name": "update_key", "value": "'demId'"}, {"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'添加组织'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}], "start": 1730880960548, "stop": 1730880960562, "uuid": "39ecd4b1-6281-4316-8961-1c39186be9a2", "historyId": "55735ae788288216164fac4da5cd450d", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': '', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074525474988032"}
\ No newline at end of file
{"uuid": "4891577d-f313-42d1-96ec-cf7a505064a0", "befores": [{"name": "module", "status": "passed", "start": 1730880960074, "stop": 1730880960074}], "start": 1730880960074, "stop": 1730880960087}
\ No newline at end of file
{"name": "反向用例-维度id有特殊字符", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C534BC0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'json'\ncase_data = {'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}, expect_data = {'message': '维度编码只能由数字、字母、下划线组成!', 'state': False}\nsql_type = None, sql_data = None, update_key = None, module = '维度管理', api = '添加维度', title = '反向用例-维度id有特殊字符', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert '添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!' == '维度编码只能由数字、字母、下划线组成!'\nE \nE - 维度编码只能由数字、字母、下划线组成!\nE + 添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!\n\ntest_case\\test_Kumiko\\test_bpm.py:34: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C534BC0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'json'\ncase_data = {'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}, expect_data = {'message': '维度编码只能由数字、字母、下划线组成!', 'state': False}\nsql_type = None, sql_data = None, update_key = None, module = '维度管理', api = '添加维度', title = '反向用例-维度id有特殊字符', level = '中'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Kumiko\\test_bpm.py:37: AssertionError"}, "attachments": [{"name": "log", "source": "c592d0b0-3b28-446d-9aad-63221dbc8c99-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'添加维度'"}, {"name": "title", "value": "'反向用例-维度id有特殊字符'"}, {"name": "level", "value": "'中'"}], "start": 1730880960494, "stop": 1730880960513, "uuid": "b84ca3c9-a3de-46e7-8647-2e63c935cc3a", "historyId": "44cee1474fc583311c18c6ed1db69f05", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "f6951fe2-d37d-47b3-8080-ea1870040e49", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960521, "stop": 1730880960521}], "start": 1730880960521, "stop": 1730880960546}
\ No newline at end of file
{"uuid": "120d6a1a-f82d-4831-bc8e-cfec3575d9fd", "befores": [{"name": "api", "status": "passed", "start": 1730880960854, "stop": 1730880960854}], "start": 1730880960854, "stop": 1730880960875}
\ No newline at end of file
{"uuid": "2d0322f3-931b-48db-9ed8-c678a35ed2c8", "befores": [{"name": "mime", "status": "passed", "start": 1730880960271, "stop": 1730880960271}], "start": 1730880960271, "stop": 1730880960299}
\ No newline at end of file
{"uuid": "e2fe112d-3f7d-4ac1-8043-9a9b6d0133a3", "befores": [{"name": "level", "status": "passed", "start": 1730880961237, "stop": 1730880961237}], "start": 1730880961237, "stop": 1730880961242}
\ No newline at end of file
{"uuid": "9688abdc-a90f-47b6-98a8-e876df9df5a3", "befores": [{"name": "title", "status": "passed", "start": 1730880960216, "stop": 1730880960216}], "start": 1730880960216, "stop": 1730880960237}
\ No newline at end of file
{"uuid": "4d0a6e9a-9a68-47b1-b2c2-817aa6bfeb4d", "befores": [{"name": "module", "status": "passed", "start": 1730880960611, "stop": 1730880960611}], "start": 1730880960611, "stop": 1730880960644}
\ No newline at end of file
{"uuid": "99047d9e-21e1-49e1-84a5-6bb5f8fa86fc", "befores": [{"name": "method", "status": "passed", "start": 1730880961007, "stop": 1730880961007}], "start": 1730880961007, "stop": 1730880961038}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'code': 'Kumiko'},期望数据为:{'state': True, 'message': '设置默认维度成功!'}, 服务器返回的数据为:{"state":true,"message":"设置默认维度成功!","value":"","code":200}
\ No newline at end of file
INFO  root:db.py:37 执行的方法为:delete,功能描述为:执行删除的sql语句,传入的参数为:DELETE FROM uc_demension WHERE CODE_ like "Kumiko%";
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'code': 'Kumiko', 'description': 'Kumiko添加的维度', 'isDefault': 0, 'name': 'Kumiko'},期望数据为:{'state': True, 'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "961d13e4-6339-41d4-9780-3e93fb905896", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960393, "stop": 1730880960393}], "start": 1730880960393, "stop": 1730880960423}
\ No newline at end of file
{"uuid": "99ed6b1b-319b-4566-bc60-ea43e27aebb7", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960649, "stop": 1730880960649}], "start": 1730880960649, "stop": 1730880960663}
\ No newline at end of file
{"name": "正向用例", "status": "broken", "statusDetails": {"message": "ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖", "trace": "self = <APIAutomaticTesting.test_case.test_Kumiko.test_bpm.TestBPM object at 0x000002692C537200>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', mime = 'data', case_data = 'Kumiko', expect_data = {'message': '删除组织成功!', 'state': True}\nsql_type = None, sql_data = None, update_key = None, module = '组织管理', api = '根据组织编码删除组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n> res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n\ntest_case\\test_Kumiko\\test_bpm.py:29: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C690860>, req_method = 'post'\nreq_url = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', req_mime = 'data', req_case_data = 'Kumiko', sql_type = None, sql_data = None, update_key = None\n\n def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):\n \"\"\"\n 封装公共的请求方法\n :param req_method: 请求方法\n :param req_url: 请求url\n :param req_mime: 请求的媒体类型\n :param req_case_data: 请求数据\n :param sql_type: sql语句类型\n :param sql_data: sql语句\n :param update_key: 更新的key\n :return: Response type\n \"\"\"\n # 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求\n if sql_type == \"delete\":\n self.db.delete(sql_data)\n \n # 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求\n elif sql_type == \"select\":\n select_result = self.db.select(sql_data)\n req_case_data[update_key] = select_result\n \n # 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 要执行删除--删除数据库中现有的数据\n self.db.delete(sql_data[\"delete\"])\n # 查询语句--将查询结果更新到用例数据中\n select_result = self.db.select(sql_data[\"select\"])\n req_case_data[update_key] = select_result\n \n # 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求\n # 发送请求时,用例使用使用哪些关键字传参,需要添加判断\n # 判断媒体类型的值是否为:application/json 或 json,使用json传参\n if req_mime == \"json\" or req_mime == \"application/json\":\n return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)\n \n # 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参\n # 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。\n elif req_mime == \"application/x-www-form-urlencoded\" or req_mime == \"x-www-form-urlencoded\" or req_mime == \"form\":\n return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)\n \n # 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参\n elif req_mime == \"multipart/form-data\" or req_mime == \"form-data\":\n return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)\n \n # 判断媒体类型的值是否为:query,使用params传参\n elif req_mime == \"query\":\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)\n \n # 判断媒体类型的值是否为:None,表示没有传参\n elif req_mime is None:\n return self.bpm_session.request(method=req_method, url=req_url)\n \n # 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。\n elif req_mime == \"query|json\" or req_mime == \"json|query\":\n # requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params\n return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data[\"query\"], json=req_case_data[\"body\"])\n \n else:\n log.error(f\"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\n> raise ValueError(\"没有符合的判断分支,可以自行封装,也可以继承之后覆盖\")\nE ValueError: 没有符合的判断分支,可以自行封装,也可以继承之后覆盖\n\nrequests_method\\requests_method.py:91: ValueError"}, "attachments": [{"name": "log", "source": "e17600d0-62b7-44d2-9205-e8bbcb1ecbd1-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"}, {"name": "mime", "value": "'data'"}, {"name": "case_data", "value": "'Kumiko'"}, {"name": "expect_data", "value": "{'state': True, 'message': '删除组织成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'根据组织编码删除组织'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}], "start": 1730880960577, "stop": 1730880960577, "uuid": "7bf6ac94-f8a3-4fef-8a16-c9fc75475086", "historyId": "dee662659759b2c5304cb19df4d4d17d", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "根据组织编码删除组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "e291e2cf-7900-4203-916e-f5c96ae9108d", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960271, "stop": 1730880960271}], "start": 1730880960271, "stop": 1730880960298}
\ No newline at end of file
{"uuid": "2dc0c71d-49fb-4955-b310-e10cfe7a8343", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880961204, "stop": 1730880961204}], "start": 1730880961204, "stop": 1730880961224}
\ No newline at end of file
{"uuid": "536d5ef6-5362-4598-855e-a5cd741a3628", "befores": [{"name": "module", "status": "passed", "start": 1730880961007, "stop": 1730880961007}], "start": 1730880961007, "stop": 1730880961036}
\ No newline at end of file
{"uuid": "9d5d8621-b5a5-4c8d-bb1e-87981c9e758d", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960301, "stop": 1730880960301}], "start": 1730880960301, "stop": 1730880960329}
\ No newline at end of file
{"uuid": "bf5e900d-d14b-4422-b98c-8af3efbbd441", "befores": [{"name": "mime", "status": "passed", "start": 1730880961237, "stop": 1730880961237}], "start": 1730880961237, "stop": 1730880961243}
\ No newline at end of file
{"uuid": "05435bbf-1636-4dea-a987-6388b2949ca8", "befores": [{"name": "api", "status": "passed", "start": 1730880961007, "stop": 1730880961007}], "start": 1730880961007, "stop": 1730880961035}
\ No newline at end of file
{"uuid": "bed80071-260a-43ae-beb3-00e4c32c7e63", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960039, "stop": 1730880960039}], "start": 1730880960039, "stop": 1730880960071}
\ No newline at end of file
{"uuid": "a0513174-cb44-4408-88be-9c6af3ce6adc", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960913, "stop": 1730880960913}], "start": 1730880960913, "stop": 1730880960942}
\ No newline at end of file
{"uuid": "21e3d3a5-657d-40ac-b5fa-b326c4c48225", "befores": [{"name": "module", "status": "passed", "start": 1730880960039, "stop": 1730880960039}], "start": 1730880960039, "stop": 1730880960070}
\ No newline at end of file
{"uuid": "9ab8857e-0374-4b27-9add-23bec45884ef", "befores": [{"name": "title", "status": "passed", "start": 1730880960548, "stop": 1730880960548}], "start": 1730880960548, "stop": 1730880960566}
\ No newline at end of file
ERROR  root:test_bpm.py:36 断言失败,用例数据为:{'code': '✿❀♧♡♥', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'},期望数据为:{'state': False, 'message': '维度编码只能由数字、字母、下划线组成!'}, 服务器返回的数据为:{"state":false,"message":"添加维度失败,维度别名【✿❀♧♡♥】在系统中已存在!","value":"","code":200}
\ No newline at end of file
{"uuid": "63997e38-1fb8-4a6c-86d8-ba147627260d", "befores": [{"name": "module", "status": "passed", "start": 1730880960494, "stop": 1730880960494}], "start": 1730880960494, "stop": 1730880960517}
\ No newline at end of file
{"uuid": "b3f4ac62-5f37-435c-a200-3b42b7f7c9da", "befores": [{"name": "title", "status": "passed", "start": 1730880960091, "stop": 1730880960091}], "start": 1730880960091, "stop": 1730880960210}
\ No newline at end of file
{"uuid": "f95a32cd-6ab4-41de-8627-6bb9e040a21c", "befores": [{"name": "method", "status": "passed", "start": 1730880960301, "stop": 1730880960301}], "start": 1730880960301, "stop": 1730880960330}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "90f5baaf-5654-47a1-8675-3b957542287d-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'put'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '更新维度成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'更新维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}], "start": 1730880960585, "stop": 1730880960606, "uuid": "900439b7-7e42-495f-9c7b-eb0ee293e612", "historyId": "f855f2b2c78861fd42210bd29c2290b5", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "更新维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "c5e90ff0-dc4e-433c-acd0-34ba503cf713", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960548, "stop": 1730880960548}], "start": 1730880960548, "stop": 1730880960567}
\ No newline at end of file
{"uuid": "4b96b4d4-fb51-4359-ba5b-72a8afcf01ee", "befores": [{"name": "method", "status": "passed", "start": 1730880960808, "stop": 1730880960808}], "start": 1730880960808, "stop": 1730880960852}
\ No newline at end of file
{"uuid": "af4f7f5a-3f10-4d32-b994-7b6a7ab961fd", "befores": [{"name": "update_key", "status": "passed", "start": 1730880961308, "stop": 1730880961308}], "start": 1730880961308, "stop": 1730880961322}
\ No newline at end of file
{"uuid": "8026f527-ae96-46bc-873e-c9545a2f3acd", "befores": [{"name": "mime", "status": "passed", "start": 1730880960240, "stop": 1730880960240}], "start": 1730880960240, "stop": 1730880960268}
\ No newline at end of file
{"uuid": "220a27c8-27c8-4216-9dab-dc145cf21d9b", "befores": [{"name": "title", "status": "passed", "start": 1730880960394, "stop": 1730880960394}], "start": 1730880960394, "stop": 1730880960421}
\ No newline at end of file
{"uuid": "2a2a604e-04ac-4d43-bd48-382abecd4f7c", "befores": [{"name": "method", "status": "passed", "start": 1730880960331, "stop": 1730880960331}], "start": 1730880960331, "stop": 1730880960361}
\ No newline at end of file
{"uuid": "fa979fca-69ca-4255-b843-4a7189ed8ec6", "befores": [{"name": "method", "status": "passed", "start": 1730880960090, "stop": 1730880960090}], "start": 1730880960090, "stop": 1730880960212}
\ No newline at end of file
{"uuid": "665ebf50-6795-4e58-ae8a-90f806b7bae9", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880961039, "stop": 1730880961040}], "start": 1730880961039, "stop": 1730880961071}
\ No newline at end of file
{"uuid": "4103f605-78fc-4260-88a1-248f73cd9f75", "befores": [{"name": "update_key", "status": "passed", "start": 1730880961040, "stop": 1730880961040}], "start": 1730880961040, "stop": 1730880961070}
\ No newline at end of file
{"uuid": "548cecfd-97d4-4873-b1a2-e1cd26d19fcd", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960241, "stop": 1730880960241}], "start": 1730880960241, "stop": 1730880960267}
\ No newline at end of file
{"uuid": "4b3b418a-8879-43fa-b0a5-f5c9c79939c2", "children": ["82482944-96b7-4631-8b34-6ec129bae27d", "70f6e831-81d4-4169-a2a0-8f729558a040", "7e8628f2-f603-4c66-9de6-6a2051f8f233", "11655843-8ebd-4dce-9659-4b68c84ea24a", "de4b65e0-712d-4e51-ab66-26c3f31cef2f", "858e4389-d60d-4833-b29c-4bb1c9d2d874", "55afc6c0-3f6f-44c7-9416-a34501a4c327", "f56c3a04-0e3f-40bb-a947-03e780f8dab5", "8834dc3f-b1cd-454a-a8de-7754a4e960e0", "d3c88d85-e0f9-493b-af14-91dd5f93b709", "c98e4d5d-1a09-432e-8bdb-953cc507ef84", "7cd43c15-c691-46fe-a2f0-07bbb32cb7b7", "b84ca3c9-a3de-46e7-8647-2e63c935cc3a", "711a2587-5bea-44ba-940e-7c2c9e7c6efc", "39ecd4b1-6281-4316-8961-1c39186be9a2", "3ac66d8b-7cce-42a4-b953-84aa526f1739", "7bf6ac94-f8a3-4fef-8a16-c9fc75475086", "900439b7-7e42-495f-9c7b-eb0ee293e612", "cdb9971f-bfbd-43a2-9039-d2f93449478d", "a9f08160-43d1-4483-a6cb-6c4d5f37c533", "21cbc14f-bf60-4ad0-92d7-af465eeeba6f", "49bb7d18-2583-4d6b-b6ef-7e2fa75790d9", "70a31bc7-ed43-4727-97ff-a64e8048b23d", "a5515abc-9f83-4d9d-a1c4-867ac1d03caf", "34911dda-890e-441b-a68e-5d05160febaa", "8126e62f-1abd-4055-9d44-90cad11f5e5c", "76896a9c-942b-4c9d-80d0-040887d54a61", "539d4402-42c8-4bf5-915d-8e2f5bede896", "5485ac76-9613-4bae-90d6-954fab42c98f", "6e01540a-ce2e-4f68-9260-a167d98aa654", "7e7b6b8c-1a0d-4518-a99f-ba767b8a4d91", "c5e931c3-bd96-4ed3-8ae8-4df0b34f2b80", "304c2d74-e53c-4a44-856c-2169a477fff6", "78eef37f-c0d1-4de0-9cdf-c479ec6dd8bb", "cd5e316b-aec5-413a-adf9-99290b9716b5", "166956ea-1b23-44e5-b239-572f59e159fe", "4a271151-a5eb-4843-978d-78a994c09e04", "a9254732-98aa-4773-973b-b9eb983d86a3", "ffc9cf24-e493-451b-bb1b-1bb5695de7bf", "bf10a5ce-33da-4f2e-b301-9339c97bf489"], "befores": [{"name": "_session_faker", "status": "passed", "start": 1730880959924, "stop": 1730880959970}], "start": 1730880959924, "stop": 1730880961324}
\ No newline at end of file
{"uuid": "12636299-f4c3-4de9-bbac-91a1fc073139", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960808, "stop": 1730880960808}], "start": 1730880960808, "stop": 1730880960851}
\ No newline at end of file
{"uuid": "f60c1e63-40bb-4d3f-af98-47bda6a0972a", "befores": [{"name": "url", "status": "passed", "start": 1730880960361, "stop": 1730880960361}], "start": 1730880960361, "stop": 1730880960391}
\ No newline at end of file
{"uuid": "62fe27f9-87bf-4d55-b444-7eeb10d9c862", "befores": [{"name": "level", "status": "passed", "start": 1730880960494, "stop": 1730880960494}], "start": 1730880960494, "stop": 1730880960517}
\ No newline at end of file
{"uuid": "47336c62-6d1b-4a04-8a2e-f9479fdd4c3a", "befores": [{"name": "level", "status": "passed", "start": 1730880961040, "stop": 1730880961040}], "start": 1730880961040, "stop": 1730880961069}
\ No newline at end of file
{"uuid": "b9b07170-bdc7-4909-aa88-645421ea13d9", "befores": [{"name": "url", "status": "passed", "start": 1730880960480, "stop": 1730880960480}], "start": 1730880960480, "stop": 1730880960493}
\ No newline at end of file
{"uuid": "c1a124b7-a359-4d34-ab75-1616722e78e8", "befores": [{"name": "api", "status": "passed", "start": 1730880960091, "stop": 1730880960091}], "start": 1730880960091, "stop": 1730880960210}
\ No newline at end of file
{"uuid": "15278222-7b8d-42e3-bffb-c6c790e9e338", "befores": [{"name": "mime", "status": "passed", "start": 1730880960039, "stop": 1730880960039}], "start": 1730880960039, "stop": 1730880960072}
\ No newline at end of file
{"uuid": "4dbb17bf-74c6-4180-bb7f-501cff112a55", "befores": [{"name": "api", "status": "passed", "start": 1730880960425, "stop": 1730880960425}], "start": 1730880960425, "stop": 1730880960476}
\ No newline at end of file
{"uuid": "ab1b88d3-6da5-4fc3-a399-9372977b0127", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880961173, "stop": 1730880961173}], "start": 1730880961173, "stop": 1730880961202}
\ No newline at end of file
ERROR  root:test_bpm.py:36 断言失败,用例数据为:{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MzA5NjcxODgsImlhdCI6MTczMDg4MDc4OH0.ROOdZI7At5MqtwVwvwLiI6Zrj8hE1wGZldHfO8135Z4rC2FNRCGC09YfV_94VDimRwosuPP1SDmaUYP43CUL_A","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
{"name": "反向用例-密码正确-用户名过短", "status": "passed", "attachments": [{"name": "log", "source": "6189f584-d9c7-4a5f-82ac-8f7ea64d3a8b-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'a', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-密码正确-用户名过短'"}, {"name": "level", "value": "'中'"}], "start": 1730880960332, "stop": 1730880960358, "uuid": "f56c3a04-0e3f-40bb-a947-03e780f8dab5", "historyId": "c56daabd4d9838e945c29e45ee3d9256", "testCaseId": "6054428783d8d3e84b0f2211935dce66", "fullName": "test_case.test_Kumiko.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Kumiko"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Kumiko.test_bpm"}]}
\ No newline at end of file
{"uuid": "09fba059-9a95-4752-b744-efdea3af6107", "befores": [{"name": "title", "status": "passed", "start": 1730880960569, "stop": 1730880960569}], "start": 1730880960569, "stop": 1730880960573}
\ No newline at end of file
{"uuid": "00e4e945-a58c-4769-b710-384a4f207ea2", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960361, "stop": 1730880960361}], "start": 1730880960361, "stop": 1730880960391}
\ No newline at end of file
{"uuid": "bbbadf56-0df2-4e49-90da-c964d7a73e08", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960854, "stop": 1730880960854}], "start": 1730880960854, "stop": 1730880960876}
\ No newline at end of file
{"uuid": "04abd0a9-9717-4341-9740-cb11522886d4", "befores": [{"name": "update_key", "status": "passed", "start": 1730880961276, "stop": 1730880961276}], "start": 1730880961276, "stop": 1730880961304}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码为空", "status": "passed", "attachments": [{"name": "log", "source": "2529c06e-c349-4f07-a2b6-e5aca408cd13-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': ''}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-用户名正确-密码为空'"}, {"name": "level", "value": "'中'"}], "start": 1730880960913, "stop": 1730880960939, "uuid": "8126e62f-1abd-4055-9d44-90cad11f5e5c", "historyId": "31f95b5cd414557ffcf8868ef4fe8d93", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "628a82ff-b869-4f03-a715-bb90b84a36af", "befores": [{"name": "title", "status": "passed", "start": 1730880961229, "stop": 1730880961229}], "start": 1730880961229, "stop": 1730880961233}
\ No newline at end of file
{"uuid": "40b8d2a1-f9e3-4554-930f-1f134d60f4d3", "befores": [{"name": "case_data", "status": "passed", "start": 1730880961204, "stop": 1730880961204}], "start": 1730880961204, "stop": 1730880961226}
\ No newline at end of file
{"uuid": "e7179f0f-6770-4abf-baaa-7c329bee627b", "befores": [{"name": "mime", "status": "passed", "start": 1730880960569, "stop": 1730880960569}], "start": 1730880960569, "stop": 1730880960574}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码为特殊字符", "status": "passed", "attachments": [{"name": "log", "source": "308fc0e3-71ae-42e9-bdd4-7c30207e7e35-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': '✿❀♧♡♥'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-用户名正确-密码为特殊字符'"}, {"name": "level", "value": "'中'"}], "start": 1730880960880, "stop": 1730880960908, "uuid": "34911dda-890e-441b-a68e-5d05160febaa", "historyId": "d236513d2f58a43b0a882b76e53dd7aa", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "cf5b7dc8-4118-4c50-9038-1ee918ae73f5", "befores": [{"name": "module", "status": "passed", "start": 1730880961308, "stop": 1730880961308}], "start": 1730880961308, "stop": 1730880961322}
\ No newline at end of file
{"uuid": "6cc62aa0-f239-409c-a900-0ac2cf8ff3c3", "befores": [{"name": "api", "status": "passed", "start": 1730880960611, "stop": 1730880960611}], "start": 1730880960611, "stop": 1730880960644}
\ No newline at end of file
{"uuid": "9f70780e-2094-4525-aafe-d8f41cc1cd72", "befores": [{"name": "title", "status": "passed", "start": 1730880960913, "stop": 1730880960913}], "start": 1730880960913, "stop": 1730880960940}
\ No newline at end of file
{"uuid": "d86012be-3d7d-48ec-bd0d-647f8c40a929", "befores": [{"name": "mime", "status": "passed", "start": 1730880960853, "stop": 1730880960853}], "start": 1730880960853, "stop": 1730880960877}
\ No newline at end of file
{"uuid": "df9a7e5c-d12d-4763-ac42-8c4a1cfa9eee", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960548, "stop": 1730880960548}], "start": 1730880960548, "stop": 1730880960567}
\ No newline at end of file
{"uuid": "c2492c44-a4bb-40a7-adc6-455cf9159bf2", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960808, "stop": 1730880960808}], "start": 1730880960808, "stop": 1730880960850}
\ No newline at end of file
{"uuid": "b044f257-b857-4172-8c33-5e59256f286a", "befores": [{"name": "update_key", "status": "passed", "start": 1730880961007, "stop": 1730880961007}], "start": 1730880961007, "stop": 1730880961036}
\ No newline at end of file
{"uuid": "7f4530ee-d682-425a-b9c8-e44b1812d880", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880961308, "stop": 1730880961308}], "start": 1730880961308, "stop": 1730880961323}
\ No newline at end of file
{"uuid": "7b55a1e3-8060-4eac-8bb6-ec011c092723", "befores": [{"name": "level", "status": "passed", "start": 1730880961144, "stop": 1730880961144}], "start": 1730880961144, "stop": 1730880961167}
\ No newline at end of file
{"uuid": "174cc840-8d5e-4f3e-8dc6-ea6c3573b011", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880961126, "stop": 1730880961126}], "start": 1730880961126, "stop": 1730880961141}
\ No newline at end of file
{"uuid": "d40733f0-cba5-49e7-a01a-bd47974f449f", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960751, "stop": 1730880960751}], "start": 1730880960751, "stop": 1730880960790}
\ No newline at end of file
{"uuid": "b768e1f4-7717-41a1-8147-fa36510246eb", "befores": [{"name": "url", "status": "passed", "start": 1730880960649, "stop": 1730880960649}], "start": 1730880960649, "stop": 1730880960663}
\ No newline at end of file
{"uuid": "9820a8f1-bbec-437b-a74b-68f749ee6676", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960649, "stop": 1730880960649}], "start": 1730880960649, "stop": 1730880960663}
\ No newline at end of file
{"uuid": "eee60401-63c6-4a66-8da6-45f85c615b7f", "befores": [{"name": "level", "status": "passed", "start": 1730880961276, "stop": 1730880961276}], "start": 1730880961276, "stop": 1730880961304}
\ No newline at end of file
{"uuid": "a4727540-20e6-491f-b291-d19c4c690766", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960393, "stop": 1730880960393}], "start": 1730880960393, "stop": 1730880960422}
\ No newline at end of file
{"uuid": "d5736702-bcd6-4e77-8253-53f102e0f928", "befores": [{"name": "api", "status": "passed", "start": 1730880961126, "stop": 1730880961126}], "start": 1730880961126, "stop": 1730880961139}
\ No newline at end of file
{"uuid": "6ae764dc-dd8d-4585-b695-d122dc4bcd42", "befores": [{"name": "url", "status": "passed", "start": 1730880961074, "stop": 1730880961074}], "start": 1730880961074, "stop": 1730880961124}
\ No newline at end of file
{"uuid": "18094acf-849a-4731-88c5-d11298f51305", "befores": [{"name": "title", "status": "passed", "start": 1730880961237, "stop": 1730880961237}], "start": 1730880961237, "stop": 1730880961242}
\ No newline at end of file
{"uuid": "fd55e2ff-7ec4-4432-8ed0-47a989bf2b4c", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880961144, "stop": 1730880961144}], "start": 1730880961144, "stop": 1730880961170}
\ No newline at end of file
{"uuid": "6a6bd0df-b9c6-4fc3-943f-1737c7cec547", "befores": [{"name": "level", "status": "passed", "start": 1730880960040, "stop": 1730880960040}], "start": 1730880960040, "stop": 1730880960069}
\ No newline at end of file
ERROR  root:requests_method.py:90 方法:request_all,传入的媒体类型为:data, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖
\ No newline at end of file
{"uuid": "9f156e17-6c36-40e3-bea4-f2ad278ac715", "befores": [{"name": "module", "status": "passed", "start": 1730880961173, "stop": 1730880961173}], "start": 1730880961173, "stop": 1730880961201}
\ No newline at end of file
{"uuid": "d46044aa-d9e2-4955-a840-bf94d8848bab", "befores": [{"name": "api", "status": "passed", "start": 1730880960880, "stop": 1730880960880}], "start": 1730880960880, "stop": 1730880960909}
\ No newline at end of file
{"uuid": "08c9f4b9-222f-4f56-9ac3-3a99016b8b23", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960363, "stop": 1730880960363}], "start": 1730880960363, "stop": 1730880960390}
\ No newline at end of file
{"uuid": "597c8bb1-2538-4d97-9861-31d57848c57f", "befores": [{"name": "url", "status": "passed", "start": 1730880960393, "stop": 1730880960393}], "start": 1730880960393, "stop": 1730880960423}
\ No newline at end of file
{"uuid": "d13ac2e1-fb4d-4d19-a287-38e06900f1e3", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960548, "stop": 1730880960548}], "start": 1730880960548, "stop": 1730880960567}
\ No newline at end of file
{"uuid": "ba279528-902b-4ab7-8930-47ef3b5b2bf9", "befores": [{"name": "url", "status": "passed", "start": 1730880961126, "stop": 1730880961126}], "start": 1730880961126, "stop": 1730880961142}
\ No newline at end of file
{"uuid": "fa3c053e-fd6a-4822-9705-cacecb25c936", "befores": [{"name": "level", "status": "passed", "start": 1730880961174, "stop": 1730880961174}], "start": 1730880961174, "stop": 1730880961200}
\ No newline at end of file
{"uuid": "58bba6b1-3b9f-4d5e-8357-8a3d28091a3a", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960973, "stop": 1730880960973}], "start": 1730880960973, "stop": 1730880961003}
\ No newline at end of file
{"uuid": "c059166b-7c6c-4001-b09c-a24afc7c57e9", "befores": [{"name": "mime", "status": "passed", "start": 1730880960480, "stop": 1730880960480}], "start": 1730880960480, "stop": 1730880960492}
\ No newline at end of file
{"uuid": "dea3e96e-0319-4276-9cd5-d81b9ed7187d", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960585, "stop": 1730880960585}], "start": 1730880960585, "stop": 1730880960608}
\ No newline at end of file
{"uuid": "024abb70-97da-4456-8925-84068474c22c", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960792, "stop": 1730880960792}], "start": 1730880960792, "stop": 1730880960806}
\ No newline at end of file
{"uuid": "b13075f2-f938-4f9c-938e-a95a03459c4a", "befores": [{"name": "url", "status": "passed", "start": 1730880960944, "stop": 1730880960944}], "start": 1730880960944, "stop": 1730880960972}
\ No newline at end of file
{"uuid": "d64f8ad1-f076-4b31-bf77-65ba963a8743", "befores": [{"name": "api", "status": "passed", "start": 1730880960480, "stop": 1730880960480}], "start": 1730880960480, "stop": 1730880960491}
\ No newline at end of file
{"uuid": "d8637e1d-6f5d-41ee-8717-21c6600a110b", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880961228, "stop": 1730880961228}], "start": 1730880961228, "stop": 1730880961234}
\ No newline at end of file
{"uuid": "697df44d-ff49-4e43-a05c-e55384551315", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960361, "stop": 1730880960361}], "start": 1730880960361, "stop": 1730880960391}
\ No newline at end of file
{"uuid": "cb0cf7af-e329-4361-b144-ba529644c790", "befores": [{"name": "mime", "status": "passed", "start": 1730880960521, "stop": 1730880960521}], "start": 1730880960521, "stop": 1730880960546}
\ No newline at end of file
{"uuid": "4d169d96-db67-4fcb-af67-7a7483ba25ba", "befores": [{"name": "update_key", "status": "passed", "start": 1730880960577, "stop": 1730880960577}], "start": 1730880960577, "stop": 1730880960582}
\ No newline at end of file
{"uuid": "21aa3a79-ea32-46ad-9309-b2a6e0a8a872", "befores": [{"name": "api", "status": "passed", "start": 1730880961245, "stop": 1730880961245}], "start": 1730880961245, "stop": 1730880961272}
\ No newline at end of file
{"uuid": "caac21b3-b119-4cfa-baf1-1f16dafba074", "befores": [{"name": "module", "status": "passed", "start": 1730880961245, "stop": 1730880961245}], "start": 1730880961245, "stop": 1730880961273}
\ No newline at end of file
{"uuid": "5b297d47-e2a8-406a-93b2-d76458b2d30b", "befores": [{"name": "mime", "status": "passed", "start": 1730880960548, "stop": 1730880960548}], "start": 1730880960548, "stop": 1730880960568}
\ No newline at end of file
{"uuid": "9109da8f-3eb2-41ac-800e-de3af9f285eb", "befores": [{"name": "api", "status": "passed", "start": 1730880960216, "stop": 1730880960216}], "start": 1730880960216, "stop": 1730880960237}
\ No newline at end of file
{"uuid": "cfe88e2b-1303-4d51-87ca-1897b70370bc", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960751, "stop": 1730880960751}], "start": 1730880960751, "stop": 1730880960790}
\ No newline at end of file
{"uuid": "7c9f52ab-269b-4568-a8a4-bed0036510ba", "befores": [{"name": "update_key", "status": "passed", "start": 1730880961204, "stop": 1730880961204}], "start": 1730880961204, "stop": 1730880961224}
\ No newline at end of file
{"uuid": "bc05f5fa-fd96-4276-8c66-c15abbde8e48", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960215, "stop": 1730880960215}], "start": 1730880960215, "stop": 1730880960237}
\ No newline at end of file
{"uuid": "1bf6844e-2241-46cb-a8ab-2f2f625b6b4a", "befores": [{"name": "method", "status": "passed", "start": 1730880960240, "stop": 1730880960240}], "start": 1730880960240, "stop": 1730880960269}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "0f4d2bf4-50f5-42a8-b954-e5cdeea21865-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'put'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'code': 'Kumiko', 'description': 'Yukino添加的维度', 'isDefault': 0, 'name': 'Yukino'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '更新维度成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'更新维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}], "start": 1730880961245, "stop": 1730880961271, "uuid": "a9254732-98aa-4773-973b-b9eb983d86a3", "historyId": "2f4e3ce668c96b480115165e8ed1dc57", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "更新维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "a86bf0db-05a8-4264-9d05-f2cc4d284a91", "befores": [{"name": "case_data", "status": "passed", "start": 1730880961007, "stop": 1730880961007}], "start": 1730880961007, "stop": 1730880961038}
\ No newline at end of file
{"uuid": "c2b27b4f-ce11-4d33-b65a-962353cfbb51", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880961237, "stop": 1730880961237}], "start": 1730880961237, "stop": 1730880961243}
\ No newline at end of file
{"uuid": "d32ef0a4-9ba8-4bec-bd9d-a413ef880325", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960611, "stop": 1730880960611}], "start": 1730880960611, "stop": 1730880960647}
\ No newline at end of file
{"uuid": "cdf05035-5d6e-463d-9640-52fea74ae3e4", "befores": [{"name": "url", "status": "passed", "start": 1730880960880, "stop": 1730880960880}], "start": 1730880960880, "stop": 1730880960911}
\ No newline at end of file
{"uuid": "0ceeb3fd-9d55-4267-92f0-1b494b1fdadc", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960880, "stop": 1730880960880}], "start": 1730880960880, "stop": 1730880960910}
\ No newline at end of file
{"uuid": "65344fed-472f-4c85-8077-824b1298a798", "befores": [{"name": "url", "status": "passed", "start": 1730880960584, "stop": 1730880960584}], "start": 1730880960584, "stop": 1730880960609}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C569EE0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', mime = 'json', case_data = {'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', ...}\nexpect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'delete | select'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}, update_key = 'demId'\nmodule = '组织管理', api = '添加组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n> assert res.json().get(key) == expect_data[key]\nE AssertionError: assert False == True\nE + where False = <built-in method get of dict object at 0x000002692C873080>('state')\nE + where <built-in method get of dict object at 0x000002692C873080> = {'code': 200, 'message': '添加组织失败,组织编码[Kumiko]已存在!', 'state': False, 'value': '保存失败'}.get\nE + where {'code': 200, 'message': '添加组织失败,组织编码[Kumiko]已存在!', 'state': False, 'value': '保存失败'} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_Yukino\\test_bpm.py:35: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutomaticTesting.test_case.test_Yukino.test_bpm.TestBPM object at 0x000002692C569EE0>\nreq_fix = <APIAutomaticTesting.requests_method.requests_method.RequestsMethod object at 0x000002692C823230>, method = 'post'\nurl = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', mime = 'json', case_data = {'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', ...}\nexpect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'delete | select'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}, update_key = 'demId'\nmodule = '组织管理', api = '添加组织', title = '正向用例', level = '高'\n\n @allure.epic(\"BPM_Kumiko\")\n @pytest.mark.parametrize(\"method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level\",ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):\n allure.dynamic.feature(module) # 用例模块\n allure.dynamic.story(api) # 用例接口\n allure.dynamic.title(title) # 用例标题\n allure.dynamic.severity(level) # 级别\n \n # 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n \n # 断言\n try:\n for key in expect_data.keys():\n assert res.json().get(key) == expect_data[key]\n except AssertionError:\n log.error(f\"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_Yukino\\test_bpm.py:38: AssertionError"}, "attachments": [{"name": "log", "source": "35763846-23e2-42fa-9448-1aff653f2964-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'Kumiko', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '高', 'limitNum': 0, 'name': 'Kumiko', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '添加组织成功!'}"}, {"name": "sql_type", "value": "'delete | select'"}, {"name": "sql_data", "value": "{'delete': 'DELETE FROM uc_org WHERE CODE_ = \"Kumiko\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_ like \"Kumiko%\";'}"}, {"name": "update_key", "value": "'demId'"}, {"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'添加组织'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}], "start": 1730880961206, "stop": 1730880961219, "uuid": "cd5e316b-aec5-413a-adf9-99290b9716b5", "historyId": "c3cc166e9e0e98a0dd49973feae05774", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "f74129f8-56ca-4265-98cd-0b427fe6181d", "befores": [{"name": "url", "status": "passed", "start": 1730880961173, "stop": 1730880961173}], "start": 1730880961173, "stop": 1730880961203}
\ No newline at end of file
{"uuid": "4fd8c8f4-3ea9-45c0-9aa4-a9d99f0c14d7", "befores": [{"name": "method", "status": "passed", "start": 1730880960494, "stop": 1730880960494}], "start": 1730880960494, "stop": 1730880960520}
\ No newline at end of file
{"uuid": "bc39d146-8c4f-4b68-bd9f-2d7e99762804", "befores": [{"name": "method", "status": "passed", "start": 1730880960880, "stop": 1730880960880}], "start": 1730880960880, "stop": 1730880960911}
\ No newline at end of file
{"uuid": "df352197-0ce2-4f24-94b3-3cacb3b45cce", "befores": [{"name": "module", "status": "passed", "start": 1730880960751, "stop": 1730880960751}], "start": 1730880960751, "stop": 1730880960789}
\ No newline at end of file
{"name": "反向用例-维度id为空", "status": "passed", "attachments": [{"name": "log", "source": "66b5a124-fdfd-4501-92eb-0d4d718e0779-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': '', 'description': 'Kumiko1添加的维度', 'isDefault': 0, 'name': 'Kumiko1'}"}, {"name": "expect_data", "value": "{'state': False}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'添加维度'"}, {"name": "title", "value": "'反向用例-维度id为空'"}, {"name": "level", "value": "'中'"}], "start": 1730880961126, "stop": 1730880961139, "uuid": "c5e931c3-bd96-4ed3-8ae8-4df0b34f2b80", "historyId": "a6285d3196c5f18fe1b5c5b2061a52c5", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
INFO  root:db.py:52 执行的方法为:select,功能描述为:执行查询的sql语句,传入的参数为:SELECT ID_ FROM uc_demension WHERE CODE_ like "Kumiko%";
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'ids': '1854074526024441856'},期望数据为:{'state': True, 'message': '删除维度成功!'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "30b8e8f8-5d5b-4125-acac-2507f437a614", "befores": [{"name": "url", "status": "passed", "start": 1730880960331, "stop": 1730880960331}], "start": 1730880960331, "stop": 1730880960360}
\ No newline at end of file
{"uuid": "6cc7cfe6-7192-4fd8-a2ab-f2daddf79d73", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960039, "stop": 1730880960039}], "start": 1730880960039, "stop": 1730880960071}
\ No newline at end of file
ERROR  root:requests_method.py:90 方法:request_all,传入的媒体类型为:query | json, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖
\ No newline at end of file
{"uuid": "c23cd019-55e7-43df-ba8c-52b3b532f223", "befores": [{"name": "module", "status": "passed", "start": 1730880960913, "stop": 1730880960913}], "start": 1730880960913, "stop": 1730880960940}
\ No newline at end of file
{"uuid": "444c1f79-180e-4ca9-a4d0-23239a7ec5aa", "befores": [{"name": "mime", "status": "passed", "start": 1730880960792, "stop": 1730880960792}], "start": 1730880960792, "stop": 1730880960807}
\ No newline at end of file
{"uuid": "523f2687-2ff5-4272-82c2-98ca20a07bb5", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880960425, "stop": 1730880960425}], "start": 1730880960425, "stop": 1730880960477}
\ No newline at end of file
{"uuid": "0618b0a8-796d-4c33-a17f-99f728c3929b", "children": ["21cbc14f-bf60-4ad0-92d7-af465eeeba6f", "49bb7d18-2583-4d6b-b6ef-7e2fa75790d9", "70a31bc7-ed43-4727-97ff-a64e8048b23d", "a5515abc-9f83-4d9d-a1c4-867ac1d03caf", "34911dda-890e-441b-a68e-5d05160febaa", "8126e62f-1abd-4055-9d44-90cad11f5e5c", "76896a9c-942b-4c9d-80d0-040887d54a61", "539d4402-42c8-4bf5-915d-8e2f5bede896", "5485ac76-9613-4bae-90d6-954fab42c98f", "6e01540a-ce2e-4f68-9260-a167d98aa654", "7e7b6b8c-1a0d-4518-a99f-ba767b8a4d91", "c5e931c3-bd96-4ed3-8ae8-4df0b34f2b80", "304c2d74-e53c-4a44-856c-2169a477fff6", "78eef37f-c0d1-4de0-9cdf-c479ec6dd8bb", "cd5e316b-aec5-413a-adf9-99290b9716b5", "166956ea-1b23-44e5-b239-572f59e159fe", "4a271151-a5eb-4843-978d-78a994c09e04", "a9254732-98aa-4773-973b-b9eb983d86a3", "ffc9cf24-e493-451b-bb1b-1bb5695de7bf", "bf10a5ce-33da-4f2e-b301-9339c97bf489"], "befores": [{"name": "req_fix", "status": "passed", "start": 1730880960666, "stop": 1730880960751}], "afters": [{"name": "req_fix::0", "status": "passed", "start": 1730880961324, "stop": 1730880961324}], "start": 1730880960666, "stop": 1730880961324}
\ No newline at end of file
{"uuid": "df0df281-997a-4640-860e-1fa956575579", "befores": [{"name": "mime", "status": "passed", "start": 1730880960361, "stop": 1730880960361}], "start": 1730880960361, "stop": 1730880960391}
\ No newline at end of file
{"uuid": "8c3d51c6-d028-4587-a06c-089e2a354a71", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960091, "stop": 1730880960091}], "start": 1730880960091, "stop": 1730880960211}
\ No newline at end of file
{"uuid": "16af80b0-7678-4e63-aa4e-a7e6b85a759f", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880961245, "stop": 1730880961245}], "start": 1730880961245, "stop": 1730880961274}
\ No newline at end of file
INFO  root:test_bpm.py:40 断言成功,用例数据为:{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1854074528578772992"}
\ No newline at end of file
{"uuid": "077dc50d-4865-48dd-ac8f-de32ae14283e", "befores": [{"name": "url", "status": "passed", "start": 1730880961276, "stop": 1730880961276}], "start": 1730880961276, "stop": 1730880961307}
\ No newline at end of file
{"uuid": "e2f9cbad-654a-46d4-b146-55c95f1a6c65", "befores": [{"name": "mime", "status": "passed", "start": 1730880960751, "stop": 1730880960751}], "start": 1730880960751, "stop": 1730880960790}
\ No newline at end of file
{"name": "反向用例-密码正确-用户名为特殊字符", "status": "passed", "attachments": [{"name": "log", "source": "f50341bc-8753-4ee5-bcbc-c7bcdf120323-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': '✿❀♧♡♥', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}, {"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-密码正确-用户名为特殊字符'"}, {"name": "level", "value": "'中'"}], "start": 1730880961040, "stop": 1730880961069, "uuid": "6e01540a-ce2e-4f68-9260-a167d98aa654", "historyId": "51b74019754c7f46baad94dd99b41275", "testCaseId": "56687cae79e63657843fb544ff67d17c", "fullName": "test_case.test_Yukino.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM_Kumiko"}, {"name": "parentSuite", "value": "test_case.test_Yukino"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "Lin"}, {"name": "thread", "value": "23792-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_Yukino.test_bpm"}]}
\ No newline at end of file
{"uuid": "b6cd2bb1-574d-4844-af6b-0e30e640d80c", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960301, "stop": 1730880960301}], "start": 1730880960301, "stop": 1730880960330}
\ No newline at end of file
{"uuid": "fc07cd4c-a45c-429e-b687-5613a3015ba2", "befores": [{"name": "update_key", "status": "passed", "start": 1730880961228, "stop": 1730880961228}], "start": 1730880961228, "stop": 1730880961234}
\ No newline at end of file
{"uuid": "36b20059-d5e8-4fc0-8941-4af39feea768", "befores": [{"name": "url", "status": "passed", "start": 1730880960039, "stop": 1730880960039}], "start": 1730880960039, "stop": 1730880960072}
\ No newline at end of file
{"uuid": "33edf774-56e6-4f87-8133-b324790672b6", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960577, "stop": 1730880960577}], "start": 1730880960577, "stop": 1730880960583}
\ No newline at end of file
{"uuid": "bc187322-1ff7-4211-9549-569f5fe7843e", "befores": [{"name": "mime", "status": "passed", "start": 1730880960090, "stop": 1730880960090}], "start": 1730880960090, "stop": 1730880960211}
\ No newline at end of file
{"uuid": "65dd43f2-a528-4c75-b58b-cb7c4067e6c8", "befores": [{"name": "api", "status": "passed", "start": 1730880961237, "stop": 1730880961237}], "start": 1730880961237, "stop": 1730880961242}
\ No newline at end of file
INFO  root:test_bpm.py:39 断言成功,用例数据为:{'username': 'admin', 'password': 'a'},期望数据为:{'state': False, 'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1854074525089112064"}
\ No newline at end of file
{"uuid": "d437a7cb-ef18-43db-a887-5844721ed20a", "befores": [{"name": "api", "status": "passed", "start": 1730880960394, "stop": 1730880960394}], "start": 1730880960394, "stop": 1730880960421}
\ No newline at end of file
{"uuid": "7f7b4711-6cfb-4a40-b675-60c8b19d2751", "befores": [{"name": "sql_data", "status": "passed", "start": 1730880961040, "stop": 1730880961040}], "start": 1730880961040, "stop": 1730880961071}
\ No newline at end of file
{"uuid": "8440a8ce-41e4-420d-a959-adbc996a1101", "befores": [{"name": "api", "status": "passed", "start": 1730880960039, "stop": 1730880960039}], "start": 1730880960039, "stop": 1730880960069}
\ No newline at end of file
{"uuid": "17fd7aed-798a-4af9-b6c1-2469b5664e88", "befores": [{"name": "level", "status": "passed", "start": 1730880960091, "stop": 1730880960091}], "start": 1730880960091, "stop": 1730880960210}
\ No newline at end of file
{"uuid": "9bdf6e7b-c3d9-4d92-8501-57d3dbbe072f", "befores": [{"name": "mime", "status": "passed", "start": 1730880961007, "stop": 1730880961007}], "start": 1730880961007, "stop": 1730880961038}
\ No newline at end of file
{"uuid": "31c7912c-f0cc-4ade-8d08-37e588357aea", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880961237, "stop": 1730880961237}], "start": 1730880961237, "stop": 1730880961243}
\ No newline at end of file
{"uuid": "8a0bc011-32a1-4b04-a0e8-7c6d209e8902", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960425, "stop": 1730880960425}], "start": 1730880960425, "stop": 1730880960477}
\ No newline at end of file
{"uuid": "3dffbb30-4d4b-4e37-91d1-8725f4d6764d", "befores": [{"name": "module", "status": "passed", "start": 1730880960091, "stop": 1730880960091}], "start": 1730880960091, "stop": 1730880960210}
\ No newline at end of file
ERROR  root:test_bpm.py:37 断言失败,用例数据为:{'username': 'admin', 'password': 'bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU=bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRBh0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MzA5NjcxODksImlhdCI6MTczMDg4MDc4OX0.n-jQSuY-n2ZNHgB6KPBA1zlyfFopummPl1u5YLdqXIW3VZ23VS7iM9ARa-V3vNFN1dtycor5go8W55u15nxypg","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
{"uuid": "9af31671-583b-49d9-9fc0-b64b227b5c60", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880960425, "stop": 1730880960425}], "start": 1730880960425, "stop": 1730880960477}
\ No newline at end of file
{"uuid": "4018a5cd-0bad-43e6-b596-c92839279edb", "befores": [{"name": "level", "status": "passed", "start": 1730880960332, "stop": 1730880960332}], "start": 1730880960332, "stop": 1730880960359}
\ No newline at end of file
{"uuid": "2b080323-cd94-401e-af14-a99a1e7dcefd", "befores": [{"name": "title", "status": "passed", "start": 1730880960271, "stop": 1730880960271}], "start": 1730880960271, "stop": 1730880960297}
\ No newline at end of file
{"uuid": "79f6f34f-dad0-436a-9149-c9fcec013e5e", "befores": [{"name": "level", "status": "passed", "start": 1730880961308, "stop": 1730880961308}], "start": 1730880961308, "stop": 1730880961321}
\ No newline at end of file
{"uuid": "272471d8-e279-459d-8d4d-7425daddba43", "befores": [{"name": "sql_type", "status": "passed", "start": 1730880960569, "stop": 1730880960569}], "start": 1730880960569, "stop": 1730880960574}
\ No newline at end of file
{"uuid": "2270a67a-c1b8-4810-acf1-6e2e6319b436", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960584, "stop": 1730880960584}], "start": 1730880960584, "stop": 1730880960609}
\ No newline at end of file
{"uuid": "0bfabd9a-6061-4994-ad29-246f4d992b2d", "befores": [{"name": "expect_data", "status": "passed", "start": 1730880961228, "stop": 1730880961228}], "start": 1730880961228, "stop": 1730880961234}
\ No newline at end of file
{"uuid": "a4878a2b-4a7a-4ce8-ae01-2d943e37ad5f", "befores": [{"name": "case_data", "status": "passed", "start": 1730880960039, "stop": 1730880960039}], "start": 1730880960039, "stop": 1730880960072}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description:
-----------------(❁´◡`❁)---------------------------------------------------
"""
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:15
--Description: 封装公共的请求方法
-----------------(❁´◡`❁)---------------------------------------------------
"""
import requests
from APIAutomaticTesting import log, logor
from APIAutomaticTesting.common.db import DB
from APIAutomaticTesting.common.read_basic_ini import ReadBasicIni
class RequestsMethod:
def __init__(self):
"""关联登录成功的状态"""
self.db = DB()
self.bpm_session = requests.sessions.Session()
login_url = ReadBasicIni().get_host("bpm") + "/auth"
login_data = {"username": "admin",
"password": "bhH36FXIkEcNKgRoQMMgdPJ84B1MZ9fwOpCYw66EeybH/ulnpEGOIQGr6GdOFdCKppLG1Uf84Zf4UrRB"
"h0fsDe2LRV/VpCdj25fAbHnsva4YXkDBsdt2thwOywonbt4RpDlSq2K9mZakCTdWoGok53n4V7YNxsB6yHL/OwBH3PU="}
token = self.bpm_session.post(url=login_url, json=login_data).json().get("token")
self.bpm_session.headers.update({"Authorization": f"Bearer {token}"})
def request_all(self, req_method, req_url, req_mime=None, req_case_data=None, sql_type=None, sql_data=None, update_key=None):
"""
封装公共的请求方法
:param req_method: 请求方法
:param req_url: 请求url
:param req_mime: 请求的媒体类型
:param req_case_data: 请求数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response type
"""
# 判断sql语句类型是否为delete,如果是,先执行删除的sql语句,执行完之后再发送请求
if sql_type == "delete":
self.db.delete(sql_data)
# 判断sql语句类型是否为select,如果是,先执行查询的sql语句,并获取查询的结果,并将查询结果更新到用例数据中,再发送请求
elif sql_type == "select":
select_result = self.db.select(sql_data)
req_case_data[update_key] = select_result
# 判断sql语句类型是否为:select|delete or delete|select,如果是,同时执行查询和删除
elif sql_type == "select|delete" or sql_type == "delete|select":
# 要执行删除--删除数据库中现有的数据
self.db.delete(sql_data["delete"])
# 查询语句--将查询结果更新到用例数据中
select_result = self.db.select(sql_data["select"])
req_case_data[update_key] = select_result
# 上面的分支执行完之后,该删除的数据已经删除,该更新用例数据的已更新,下面就可以发送请求
# 发送请求时,用例使用使用哪些关键字传参,需要添加判断
# 判断媒体类型的值是否为:application/json 或 json,使用json传参
if req_mime == "json" or req_mime == "application/json":
return self.bpm_session.request(method=req_method, url=req_url, json=req_case_data)
# 判断媒体类型的值是否为:application/x-www-form-urlencoded 、x-www-form-urlencoded 或 form,使用data传参
# 除了上传文件和json类型传参以外的任何方式在请求体中传参,都使用data传参。
elif req_mime == "application/x-www-form-urlencoded" or req_mime == "x-www-form-urlencoded" or req_mime == "form":
return self.bpm_session.request(method=req_method, url=req_url, data=req_case_data)
# 判断媒体类型的值是否为:multipart/form-data 或 form-data,使用files传参
elif req_mime == "multipart/form-data" or req_mime == "form-data":
return self.bpm_session.request(method=req_method, url=req_url, files=req_case_data)
# 判断媒体类型的值是否为:query,使用params传参
elif req_mime == "query":
return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data)
# 判断媒体类型的值是否为:None,表示没有传参
elif req_mime is None:
return self.bpm_session.request(method=req_method, url=req_url)
# 判断请求的媒体类型是否为:query|json 或者 json|query 如果是,表示在地址栏和请求体中同时传参,请求体还是以json类型传参。
elif req_mime == "query|json" or req_mime == "json|query":
# requests可以在地址栏和请求体同时传参,请求体传参根据不同的媒体类型选择不同关键字传参,地址使用params
return self.bpm_session.request(method=req_method, url=req_url, params=req_case_data["query"], json=req_case_data["body"])
else:
log.error(f"方法:request_all,传入的媒体类型为:{req_mime}, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖")
raise ValueError("没有符合的判断分支,可以自行封装,也可以继承之后覆盖")
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description:
-----------------(❁´◡`❁)---------------------------------------------------
"""
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: conftest.py
--Author: Lin
--Datetime: 2024/11/6 下午3:47
--Description:
---------------- 垂死病中惊坐起,扶摇直上九万里 ----------------------------------
"""
# pytest配置文件
def pytest_collection_modifyitems(items):
for item in items:
item.name = item.name.encode('utf-8').decode('unicode_escape')
item._nodeid = item._nodeid.encode('utf-8').decode('unicode_escape')
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description:
-----------------(❁´◡`❁)---------------------------------------------------
"""
USERNAME = 'Kumiko'
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description:
-----------------(❁´◡`❁)---------------------------------------------------
"""
import pytest
from APIAutomaticTesting.requests_method.requests_method import RequestsMethod
@pytest.fixture(scope="session")
def req_fix():
"""创建RequestsMethod类型对象"""
req = RequestsMethod()
yield req
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description: 主程序,请运行这个
-----------------(❁´◡`❁)---------------------------------------------------
"""
import pytest
import allure
from APIAutomaticTesting import log, logor
from APIAutomaticTesting.common.read_excel import ReadExcel
from APIAutomaticTesting.test_case.test_Kumiko import USERNAME
class TestBPM:
@allure.epic("BPM_Kumiko")
@pytest.mark.parametrize("method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level", ReadExcel(USERNAME).get_data())
def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level):
allure.dynamic.feature(module) # 用例模块
allure.dynamic.story(api) # 用例接口
allure.dynamic.title(title) # 用例标题
allure.dynamic.severity(level) # 级别
# 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象
res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)
# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}")
raise AssertionError("断言失败")
else:
log.info(f"断言成功,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}")
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description:
-----------------(❁´◡`❁)---------------------------------------------------
"""
USERNAME = 'Yukino'
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description:
-----------------(❁´◡`❁)---------------------------------------------------
"""
import pytest
from APIAutomaticTesting.requests_method.requests_method import RequestsMethod
@pytest.fixture(scope="session")
def req_fix():
req = RequestsMethod()
yield req
\ No newline at end of file
"""
-*-coding:utf-8 -*-
----------------------------------------------------------------------------
--ProjectName: pytest
--FileName: test_bpm.py
--Author: Lin
--Datetime: 2024/11/05 下午7:11
--Description: 主程序,请运行这个
-----------------(❁´◡`❁)---------------------------------------------------
"""
import pytest
import allure
from APIAutomaticTesting import log, logor
from APIAutomaticTesting.common.read_excel import ReadExcel
from APIAutomaticTesting.test_case.test_Kumiko import USERNAME
class TestBPM:
@allure.epic("BPM_Kumiko")
@pytest.mark.parametrize("method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api, title, level",ReadExcel(USERNAME).get_data())
def test_bpm(self, req_fix, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key, module, api,title, level):
allure.dynamic.feature(module) # 用例模块
allure.dynamic.story(api) # 用例接口
allure.dynamic.title(title) # 用例标题
allure.dynamic.severity(level) # 级别
# 使用RequestsMethod类对象调用request_all方法发送请求。自定义固件就是RequestsMethod类对象
res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, req_case_data=case_data, sql_type=sql_type, sql_data=sql_data, update_key=update_key)
# 断言
try:
for key in expect_data.keys():
assert res.json().get(key) == expect_data[key]
except AssertionError:
log.error(f"断言失败,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}")
raise AssertionError("断言失败")
else:
log.info(f"断言成功,用例数据为:{case_data},期望数据为:{expect_data}, 服务器返回的数据为:{res.text}")
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment