Commit 87697efe by mengxh

api auto test v1

parent 809cba2c
import functools
import logging
import os
import time
def __loger(file_path):
#获取logger对象
logger=logging.getLogger()
#设置日志写入文件中的级别
logger.level=logging.INFO
hander=logging.FileHandler(file_path,mode='a',encoding='utf-8')
#设置文件的写入格式
formatter=logging.Formatter('时间:%(asctime)s - 日记级别:%(levelname)s, 日志信息:%(message)s')
#设置日志的文件格式
hander.setFormatter(formatter)
#
logger.addHandler(hander)
return logger
# print(__file__)
# print(os.path.dirname(__file__))
# print(os.path.join(os.path.dirname(__file__), 'report'))
#获取日志的存放路径
log_dir=os.path.join(os.path.join(os.path.dirname(__file__), 'report'), 'log')
#设置日志文件的名称
log_name='BPMAPItest'+time.strftime("%Y_%m_%d_%H_%M_%S",time.localtime())+"log"
#日志文件路径
log_path=os.path.join(log_dir,log_name)
__log=__loger(log_path)
"""
__doc__: 获取函数或者方法的描述信息
__name__: 获取函数或者方法的名称
__code__: 获取函数或者方法的对象
"""
# 定义日志的装饰器
def log_decorator(param):
# param使用被装饰对象的名称
@functools.wraps(param)
def inner(*args, **kwargs):
__log.info(
f"执行的功能为:{param.__name__}, 功能的描述为:{param.__doc__}, 所在的文件为:{param.__code__.co_filename}, 所在的行为:{param.__code__.co_firstlineno}")
try:
res = param(*args, **kwargs)
except Exception as e:
__log.error(
f"执行的功能为:{param.__name__}, 功能的描述为:{param.__doc__}, 所在的文件为:{param.__code__.co_filename}, 所在的行为:{param.__code__.co_firstlineno}.报错,错误为:{type(e)}, 错误的描述为:{e}")
raise e
else:
return res
return inner
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test66
# FileName: db.py
# Author: lao_zhao
# Datetime: 2025/5/9 11:34
# Description:
#
# ---------------------------------------------------------------------------
import pymysql
from API2 import log_decorator
from API2.common.read_system_ini import ReadSystemIni
class DB:
@log_decorator
def __init__(self):
"""创建链接对象和游标对象"""
ini = ReadSystemIni()
self.conn = pymysql.connect(
host=ini.get_sql_connect_msg("host"),
port=int(ini.get_sql_connect_msg("port")),
user=ini.get_sql_connect_msg("user"),
password=ini.get_sql_connect_msg("password"),
database=ini.get_sql_connect_msg("database"),
charset="utf8"
)
self.cursor = self.conn.cursor()
@log_decorator
def close(self):
"""先关闭游标对象,再关闭链接对象"""
self.cursor.close()
self.conn.close()
@log_decorator
def delete(self, sql_sentence):
"""执行删除的sql语句"""
if isinstance(sql_sentence, str) and sql_sentence.lower().startswith("delete"):
self.cursor.execute(sql_sentence)
self.conn.commit()
else:
raise ValueError("删除的sql语句错误")
@log_decorator
def select(self, sql_sentence):
"""执行查询的sql语句,并返回查询"""
if isinstance(sql_sentence, str) and sql_sentence.lower().startswith("select"):
self.cursor.execute(sql_sentence)
select_result = self.cursor.fetchone()
if select_result:
return select_result[0]
else:
raise ValueError("删除的sql语句错误")
\ No newline at end of file
import openpyxl
from API2 import log_decorator
from API2.common.read_json import read_json
from API2.common.read_system_ini import ReadSystemIni
from API2.common.read_user_ini import ReadUserIni
class ReadExcel:
@log_decorator
def __init__(self,username):
"""获取excel的路径及工作表的名称,加载工作簿获取工作表;获取所以json文件的路径,获取json文件内容的python对象"""
# self.ini=ReadIni()
self.system_ini=ReadSystemIni()
#获取用户
self.ini=ReadUserIni(username)
#获取excel和工作表的名称
excel_path=self.ini.get_file_path('excel')
table_name=self.ini.get_table_name('table_name')
#获取所有的json文件
case_data_path=self.ini.get_file_path("case")
expect_data_path=self.ini.get_file_path("expect")
sql_data_path=self.ini.get_file_path("sql")
#调用read_json读取json文件
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)
#获取工作表
wb=openpyxl.load_workbook(excel_path)
self.ws=wb[table_name]
@log_decorator
def __get_cell_value(self,column,row):
"""获取指定单元格数据"""
value=self.ws[column+str(row)].value
if isinstance(value,str) and len(value.strip())>0:
return value.strip()
@log_decorator
def module_name(self,row):
"""根据行,获取模块名称"""
return self.__get_cell_value('b',row)
@log_decorator
def api_name(self,row):
"""根据行,获取接口名称"""
return self.__get_cell_value('c',row)
@log_decorator
def case_req(self,row):
"""根据行,获取请求方法"""
return self.__get_cell_value('f',row)
@log_decorator
def case_url(self,row):
"""根据行,获取请求的url"""
value=self.__get_cell_value('g',row)
if value:
# return self.ini.get_host("host")+value
return self.system_ini.get_host("host")+value
@log_decorator
def case_mime(self,row):
"""根据行,获取请求的媒体类型"""
value=self.__get_cell_value('h',row)
if value:
return value.lower()
@log_decorator
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]
@log_decorator
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]
@log_decorator
def sql_data(self,row):
"""根据行,获取sql语句的key"""
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]
@log_decorator
def sql_type(self,row):
"""根据行,获取sql类型"""
value=self.__get_cell_value('k',row)
if value:
return value.lower()
@log_decorator
def updata_key(self,row):
"""根据行,获取需要更新的key"""
return self.__get_cell_value('m',row)
@log_decorator
def case_title(self, row):
"""根据行获取用例的标题"""
return self.__get_cell_value("d", row)
@log_decorator
def case_level(self, row):
"""根据行,获取用例的等级"""
return self.__get_cell_value("e", row)
@log_decorator
def get_data(self):
"""将用例存放到二维列表中"""
list_data=[]
for row in range(2,self.ws.max_row+1):
module = self.module_name(row)
api = self.api_name(row)
title = self.case_title(row)
level = self.case_level(row)
req=self.case_req(row)
url=self.case_url(row)
mime=self.case_mime(row)
case=self.case_data(row)
expect=self.expect_data(row)
sql_type=self.sql_type(row)
sql=self.sql_data(row)
updata_key=self.updata_key(row)
if url and req and expect:
list_data.append([module, api, title, level,req,url,mime,case,expect,sql_type,sql,updata_key])
else:
return list_data
if __name__ == '__main__':
excel = ReadExcel()
# excel.get_data()
print(excel.get_data(),end='\t')
\ No newline at end of file
import configparser
import os
from API2 import log_decorator
print(os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config"))
class ReadIni:
@log_decorator
def __init__(self):
self.data_config_path=os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config")
ini_path=os.path.join(self.data_config_path,"config.ini")
self.conf=configparser.ConfigParser()
self.conf.read(ini_path,encoding='utf-8')
@log_decorator
def get_file_path(self,key):
"""根据key,获取file节点下文件的路径"""
return os.path.join(self.data_config_path,self.conf.get("file", key))
@log_decorator
def get_host(self,key):
"""根据key,获取被测系统的域名"""
return self.conf.get("url",key)
@log_decorator
def get_table_name(self,key):
"""根据key,获取数据表的表名"""
return self.conf.get("table",key)
@log_decorator
def get_sql_connect_msg(self,key):
"""根据key,获取数据库的连接信息"""
return self.conf.get("sql",key)
if __name__ == '__main__':
ini=ReadIni()
print(ini.get_sql_connect_msg('host'))
print(ini.get_host('host'))
print(ini.get_file_path('excel'))
print(ini.get_table_name('table_name'))
\ No newline at end of file
import json
import os
from API2 import log_decorator
@log_decorator
def read_json(file_path):
"""读取json文件,将json文件的内容序列化为python对象,再返回"""
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:
return json.loads(f.read())
else:
raise FileExistsError("json文件路径错误")
if __name__ == '__main__':
read_json(r"E:\untitled\API2\data_config\sql_data.json")
import configparser
import os
from API2 import log_decorator
class ReadSystemIni:
@log_decorator
def __init__(self):
"""读取系统的ini文件"""
self.data_conf_path=os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config")
ini_path=os.path.join(self.data_conf_path,"system_config.ini")
self.conf = configparser.ConfigParser()
self.conf.read(ini_path, encoding='utf-8')
@log_decorator
def get_host(self,key):
"""根据key,获取被测系统的域名"""
return self.conf.get('url',key)
@log_decorator
def get_sql_connect_msg(self,key):
"""根据key,获取数据库的连接信息"""
return self.conf.get('sql',key)
@log_decorator
def get_username(self,key):
"""根据key,获取用户存放数据的目录名称"""
return self.conf.get('user',key)
if __name__ == '__main__':
req = ReadSystemIni()
print(req.get_username('user1'))
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test66
# FileName: read_user_ini.py
# Author: lao_zhao
# Datetime: 2025/5/9 11:21
# Description:
#
# ---------------------------------------------------------------------------
import configparser
import os
from API2 import log_decorator
class ReadUserIni:
@log_decorator
def __init__(self, username):
"""获取用户配置ini文件的路径,并创建Configparser对象,在读取ini文件"""
data_config_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config")
# 获取用例存放数据的目录路径
self.user_data_config_path = os.path.join(data_config_path, username)
ini_path = os.path.join(self.user_data_config_path, "config.ini")
self.conf = configparser.ConfigParser()
self.conf.read(ini_path, encoding="utf-8")
@log_decorator
def get_file_path(self, key):
"""根据key,获取file节点下文件的路径"""
return os.path.join(self.user_data_config_path, self.conf.get("file", key))
@log_decorator
def get_table_name(self, key):
"""根据key,获取工作表的名称"""
return self.conf.get("table", key)
if __name__ == '__main__':
ini = ReadUserIni("bpm")
print(ini.get_file_path("case"))
\ No newline at end of file
{
"认证接口": {
"登录系统": {
"LoginSuccess": {
"username": "admin",
"password": "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8="
},
"LoginErrorPasswordParamIsClass": "{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}",
"LoginErrorPasswordParamIsNone": "{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}",
"LoginErrorPasswordParamIsDouble": "{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}",
"LoginErrorOnlyUsername": "{\"username\": \"admin\"}",
"LoginErrorPasswordParamIsSpecial": "{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}",
"LoginErrorPasswordDataIsLong": "{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}",
"LoginErrorPasswordDataIsShort": "{\"username\": \"admin\",\"password\": \"f\"}",
"LoginErrorPasswordDataIsSpecial": "{\"username\": \"admin\",\"password\": \"♠♣▣▤▥▦▩◘◙◈♫\"}",
"LoginErrorPasswordDataIsError": "{\"username\": \"admin\",\"password\": \"123456\"}",
"LoginErrorPasswordDataIsNone": "{\"username\": \"admin\",\"password\": \"\"}",
"LoginErrorPasswordDataIsClass": "{\"username\": \"admin\",\"password\": class}"
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {
"code": "testDemension",
"description": "测试维度",
"isDefault": 0,
"name": "测试维度"
}
},
"根据维度编码获取维度信息": {
"GetDemMessageSuccess": "code=testDemension"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "需要更新"},
"DeleteDemErrorIdsIsId": "id=需要更新"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "testAddOrg",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": "测试添加的组织",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"保存组织参数": {
"SaveOrgParamSuccess": {
"query": "orgCode=testAddOrg",
"body": "[{\"alias\":\"test0428\",\"value\":500}]"
},
"SaveOrgParamSuccess2": {
"query": {"orgCode": "testAddOrg"},
"body": [{"alias":"test0428","value":100}]
}
},
"删除组织": {
"DelOrgSuccess": "testAddOrg"
}
}
}
[file]
# 配置数据文件
# 配置用例管理文件
excel=APIAutoTest.xlsx
# 配置用例数据文件
case=case_data.json
# 配置期望数据文件
expect=expect_data.json
# 配置sql语句数据文件
sql=sql_data.json
[table]
# 配置数据表的表名
table_name = BPM
{
"认证接口": {
"登录系统": {
"LoginSuccess": {
"username": "超级管理员",
"loginStatus": true
},
"LoginErrorPasswordParamIsClass": {
"message": "账号或密码错误"
},
"LoginErrorPasswordParamIsNone": {
"message": "账号或密码错误"
},
"LoginErrorPasswordParamIsDouble": {
"message": "账号或密码错误"
},
"LoginErrorOnlyUsername": {
"message": "账号或密码错误"
},
"LoginErrorPasswordParamIsSpecial": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsLong": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsShort": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsSpecial": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsError": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsNone": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsClass": {
"message": "账号或密码错误"
}
},
"刷新token": {
"RefreshSuccess": {
"message": "刷新成功"
}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"message": "添加维度成功"}
},
"根据维度编码获取维度信息": {
"GetDemMessageSuccess": {"isDelete": "0"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"message": "删除维度成功!"},
"DeleteDemErrorIdsIsId": {"message": "删除维度失败"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"message": "添加组织成功!"}
},
"保存组织参数": {
"SaveOrgParamSuccess": {"state":true,"message":"保存组织参数成功!","value":"","code":200},
"SaveOrgParamSuccess2": {"state":true,"message":"保存组织参数成功!","value":"","code":200}
},
"删除组织": {
"DelOrgSuccess": {"state":true,"message":"删除组织成功!","value":"","code":200}
}
}
}
\ No newline at end of file
{
"维度管理": {
"添加维度": {
"AddDemSuccess": "delete from uc_demension where CODE_=\"testDemension\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "select ID_ from uc_demension where CODE_=\"testDemension\";",
"DeleteDemErrorIdsIsId": "select ID_ from uc_demension where CODE_=\"testDemension\";"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"select": "select ID_ from uc_demension where CODE_=\"testDemension\";",
"delete": "delete from uc_org where CODE_=\"testAddOrg\";"
}
}
}
}
\ No newline at end of file
{
"认证接口": {
"登录系统": {
"LoginSuccess": {
"username": "admin",
"password": "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8="
},
"LoginErrorPasswordParamIsClass": "{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}",
"LoginErrorPasswordParamIsNone": "{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}",
"LoginErrorPasswordParamIsDouble": "{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}",
"LoginErrorOnlyUsername": "{\"username\": \"admin\"}",
"LoginErrorPasswordParamIsSpecial": "{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}",
"LoginErrorPasswordDataIsLong": "{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}",
"LoginErrorPasswordDataIsShort": "{\"username\": \"admin\",\"password\": \"f\"}",
"LoginErrorPasswordDataIsSpecial": "{\"username\": \"admin\",\"password\": \"♠♣▣▤▥▦▩◘◙◈♫\"}",
"LoginErrorPasswordDataIsError": "{\"username\": \"admin\",\"password\": \"123456\"}",
"LoginErrorPasswordDataIsNone": "{\"username\": \"admin\",\"password\": \"\"}",
"LoginErrorPasswordDataIsClass": "{\"username\": \"admin\",\"password\": class}"
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {
"code": "testDemension",
"description": "测试维度",
"isDefault": 0,
"name": "测试维度"
}
},
"根据维度编码获取维度信息": {
"GetDemMessageSuccess": "code=testDemension"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "需要更新"},
"DeleteDemErrorIdsIsId": "id=需要更新"
}
}
}
[file]
# 配置数据文件
# 配置用例管理文件
excel=APIAutoTest.xlsx
# 配置用例数据文件
case=case_data.json
# 配置期望数据文件
expect=expect_data.json
# 配置sql语句数据文件
sql=sql_data.json
[url]
host=http://36.139.193.99:8088
[table]
# 配置数据表的表名
table_name = BPM
[sql]
# 配置数据库的链接信息
host=36.139.193.99
port=3306
database=eip8
user=root
password=Rhrc@2024
\ No newline at end of file
{
"认证接口": {
"登录系统": {
"LoginSuccess": {
"username": "超级管理员",
"loginStatus": true
},
"LoginErrorPasswordParamIsClass": {
"message": "账号或密码错误"
},
"LoginErrorPasswordParamIsNone": {
"message": "账号或密码错误"
},
"LoginErrorPasswordParamIsDouble": {
"message": "账号或密码错误"
},
"LoginErrorOnlyUsername": {
"message": "账号或密码错误"
},
"LoginErrorPasswordParamIsSpecial": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsLong": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsShort": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsSpecial": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsError": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsNone": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsClass": {
"message": "账号或密码错误"
}
},
"刷新token": {
"RefreshSuccess": {
"message": "刷新成功"
}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"message": "添加维度成功"}
},
"根据维度编码获取维度信息": {
"GetDemMessageSuccess": {"isDelete": "0"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"message": "删除维度成功!"},
"DeleteDemErrorIdsIsId": {"message": "删除维度失败"}
}
}
}
\ No newline at end of file
{
"维度管理": {
"添加维度": {
"AddDemSuccess": "delete from uc_demension where CODE_=\"testDemension\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "select ID_ from uc_demension where CODE_=\"testDemension\";",
"DeleteDemErrorIdsIsId": "select ID_ from uc_demension where CODE_=\"testDemension\";"
}
}
}
\ No newline at end of file
[url]
host=http://36.139.193.99:8088
[sql]
# 配置数据库的链接信息
host=36.139.193.99
port=3306
database=eip8
user=root
password=Rhrc@2024
[user]
# 配置数据配置层中用户存放数据的目录名称
user1=bpm
user2=zhangsan
\ No newline at end of file
[file]
# 配置数据文件
# 配置用例管理文件
excel=接口用例.xlsx
# 配置用例数据文件
case=用例数据.json
# 配置期望数据文件
expect=期望数据.json
# 配置sql语句数据文件
sql=sql语句.json
[table]
# 配置数据表的表名
table_name = 张三
{
{
"维度管理": {
"添加维度": {
"AddDemSuccess": "delete from uc_demension where CODE_=\"testDemension\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "select ID_ from uc_demension where CODE_=\"testDemension\";",
"DeleteDemErrorIdsIsId": "select ID_ from uc_demension where CODE_=\"testDemension\";"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"select": "select ID_ from uc_demension where CODE_=\"testDemension\";",
"delete": "delete from uc_org where CODE_=\"testAddOrg\";"
}
}
}
}
\ No newline at end of file
{
{
"认证接口": {
"登录系统": {
"LoginSuccess": {
"username": "超级管理员",
"loginStatus": true
},
"LoginErrorPasswordParamIsClass": {
"message": "账号或密码错误"
},
"LoginErrorPasswordParamIsNone": {
"message": "账号或密码错误"
},
"LoginErrorPasswordParamIsDouble": {
"message": "账号或密码错误"
},
"LoginErrorOnlyUsername": {
"message": "账号或密码错误"
},
"LoginErrorPasswordParamIsSpecial": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsLong": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsShort": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsSpecial": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsError": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsNone": {
"message": "账号或密码错误"
},
"LoginErrorPasswordDataIsClass": {
"message": "账号或密码错误"
}
},
"刷新token": {
"RefreshSuccess": {
"message": "刷新成功"
}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"message": "添加维度成功"}
},
"根据维度编码获取维度信息": {
"GetDemMessageSuccess": {"isDelete": "0"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"message": "删除维度成功!"},
"DeleteDemErrorIdsIsId": {"message": "删除维度失败"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"message": "添加组织成功!"}
},
"保存组织参数": {
"SaveOrgParamSuccess": {"state":true,"message":"保存组织参数成功!","value":"","code":200},
"SaveOrgParamSuccess2": {"state":true,"message":"保存组织参数成功!","value":"","code":200}
},
"删除组织": {
"DelOrgSuccess": {"state":true,"message":"删除组织成功!","value":"","code":200}
}
}
}
\ No newline at end of file
{
{
"认证接口": {
"登录系统": {
"LoginSuccess": {
"username": "admin",
"password": "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8="
},
"LoginErrorPasswordParamIsClass": "{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}",
"LoginErrorPasswordParamIsNone": "{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}",
"LoginErrorPasswordParamIsDouble": "{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}",
"LoginErrorOnlyUsername": "{\"username\": \"admin\"}",
"LoginErrorPasswordParamIsSpecial": "{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}",
"LoginErrorPasswordDataIsLong": "{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}",
"LoginErrorPasswordDataIsShort": "{\"username\": \"admin\",\"password\": \"f\"}",
"LoginErrorPasswordDataIsSpecial": "{\"username\": \"admin\",\"password\": \"♠♣▣▤▥▦▩◘◙◈♫\"}",
"LoginErrorPasswordDataIsError": "{\"username\": \"admin\",\"password\": \"123456\"}",
"LoginErrorPasswordDataIsNone": "{\"username\": \"admin\",\"password\": \"\"}",
"LoginErrorPasswordDataIsClass": "{\"username\": \"admin\",\"password\": class}"
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {
"code": "testDemension",
"description": "测试维度",
"isDefault": 0,
"name": "测试维度"
}
},
"根据维度编码获取维度信息": {
"GetDemMessageSuccess": "code=testDemension"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "需要更新"},
"DeleteDemErrorIdsIsId": "id=需要更新"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "testAddOrg",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": "测试添加的组织",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"保存组织参数": {
"SaveOrgParamSuccess": {
"query": "orgCode=testAddOrg",
"body": "[{\"alias\":\"test0428\",\"value\":500}]"
},
"SaveOrgParamSuccess2": {
"query": {"orgCode": "testAddOrg"},
"body": [{"alias":"test0428","value":100}]
}
},
"删除组织": {
"DelOrgSuccess": "testAddOrg"
}
}
}
{"uuid": "c5f73e34-014a-457a-86cf-33abb45996c4", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538640, "stop": 1747021538640}], "start": 1747021538640, "stop": 1747021538701}
\ No newline at end of file
{"uuid": "79fe883e-fc4a-4f26-93ae-c9fed4eab366", "befores": [{"name": "url", "status": "passed", "start": 1747021536840, "stop": 1747021536840}], "start": 1747021536840, "stop": 1747021536880}
\ No newline at end of file
{"uuid": "f79bd427-4e56-4d88-9604-37c21aad5dfd", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021536368, "stop": 1747021536368}], "start": 1747021536367, "stop": 1747021536679}
\ No newline at end of file
{"uuid": "9108573b-fb60-4049-a88a-49be7af26b2f", "befores": [{"name": "case", "status": "passed", "start": 1747021536951, "stop": 1747021536951}], "start": 1747021536951, "stop": 1747021536982}
\ No newline at end of file
{"uuid": "0f304795-bac0-43af-92db-a16c4341cef0", "befores": [{"name": "title", "status": "passed", "start": 1747021537097, "stop": 1747021537097}], "start": 1747021537097, "stop": 1747021537137}
\ No newline at end of file
{"uuid": "0c821347-8ba2-4c84-bc82-d7e8c7599c49", "befores": [{"name": "url", "status": "passed", "start": 1747021538138, "stop": 1747021538138}], "start": 1747021538138, "stop": 1747021538180}
\ No newline at end of file
{"uuid": "412776cb-a850-4834-a110-0671401c52af", "befores": [{"name": "module", "status": "passed", "start": 1747021538037, "stop": 1747021538037}], "start": 1747021538037, "stop": 1747021538078}
\ No newline at end of file
{"uuid": "a237aedb-8ffc-4a6b-abac-5d1556c13bb3", "befores": [{"name": "mime", "status": "passed", "start": 1747021538527, "stop": 1747021538527}], "start": 1747021538527, "stop": 1747021538566}
\ No newline at end of file
{"uuid": "7aa1a4bb-21b0-4716-a1c2-fba2811aa64c", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537297, "stop": 1747021537297}], "start": 1747021537297, "stop": 1747021537350}
\ No newline at end of file
{"uuid": "47b9496d-1ec1-4dd9-8e3b-d55cf76da1fe", "befores": [{"name": "level", "status": "passed", "start": 1747021538993, "stop": 1747021538993}], "start": 1747021538993, "stop": 1747021539038}
\ No newline at end of file
{"uuid": "1e0039e3-39f3-46b8-a732-bee60392426f", "befores": [{"name": "mime", "status": "passed", "start": 1747021537995, "stop": 1747021537995}], "start": 1747021537995, "stop": 1747021538026}
\ No newline at end of file
{"uuid": "ce3041c8-7eaa-41e3-b4a8-02bbf847b9de", "befores": [{"name": "url", "status": "passed", "start": 1747021536691, "stop": 1747021536691}], "start": 1747021536691, "stop": 1747021536729}
\ No newline at end of file
{"uuid": "ed1ebc29-a312-4869-9993-22db3e18854a", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021536995, "stop": 1747021536995}], "start": 1747021536995, "stop": 1747021537031}
\ No newline at end of file
{"uuid": "370c8419-e87a-4171-9a1a-d2dcbc567327", "befores": [{"name": "level", "status": "passed", "start": 1747021538037, "stop": 1747021538037}], "start": 1747021538037, "stop": 1747021538075}
\ No newline at end of file
{"uuid": "0f1468c8-4a29-42f3-b333-be0da5fa3594", "befores": [{"name": "module", "status": "passed", "start": 1747021538821, "stop": 1747021538821}], "start": 1747021538821, "stop": 1747021538866}
\ No newline at end of file
{"uuid": "c113dddf-d5d6-4729-a06a-69e995f78fc9", "befores": [{"name": "level", "status": "passed", "start": 1747021538323, "stop": 1747021538323}], "start": 1747021538323, "stop": 1747021538372}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:__init__, 功能的描述为:关联被测系统状态, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:9
INFO  root:__init__.py:44 执行的功能为:__init__, 功能的描述为:None, 所在的文件为:E:\untitled\API2\common\read_ini.py, 所在的行为:8
INFO  root:__init__.py:44 执行的功能为:get_host, 功能的描述为:根据key,获取被测系统的域名, 所在的文件为:E:\untitled\API2\common\read_ini.py, 所在的行为:20
INFO  root:__init__.py:44 执行的功能为:__init__, 功能的描述为:创建链接对象和游标对象, 所在的文件为:E:\untitled\API2\common\db.py, 所在的行为:17
INFO  root:__init__.py:44 执行的功能为:__init__, 功能的描述为:读取系统的ini文件, 所在的文件为:E:\untitled\API2\common\read_system_ini.py, 所在的行为:9
INFO  root:__init__.py:44 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的连接信息, 所在的文件为:E:\untitled\API2\common\read_system_ini.py, 所在的行为:23
INFO  root:__init__.py:44 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的连接信息, 所在的文件为:E:\untitled\API2\common\read_system_ini.py, 所在的行为:23
INFO  root:__init__.py:44 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的连接信息, 所在的文件为:E:\untitled\API2\common\read_system_ini.py, 所在的行为:23
INFO  root:__init__.py:44 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的连接信息, 所在的文件为:E:\untitled\API2\common\read_system_ini.py, 所在的行为:23
INFO  root:__init__.py:44 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的连接信息, 所在的文件为:E:\untitled\API2\common\read_system_ini.py, 所在的行为:23
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
\ No newline at end of file
{"uuid": "2a0030cd-ae89-405d-bac9-36e2b6fdfd4a", "befores": [{"name": "url", "status": "passed", "start": 1747021538429, "stop": 1747021538429}], "start": 1747021538429, "stop": 1747021538469}
\ No newline at end of file
{"uuid": "1775a8e1-0549-4575-b75d-8af996d67be2", "befores": [{"name": "req", "status": "passed", "start": 1747021538576, "stop": 1747021538576}], "start": 1747021538576, "stop": 1747021538632}
\ No newline at end of file
{"uuid": "e225c8dd-d12a-4662-be9c-41f4def8e14a", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021536691, "stop": 1747021536691}], "start": 1747021536691, "stop": 1747021536725}
\ No newline at end of file
{"uuid": "671b09ff-0805-44ca-ad9f-e1784e78c6fd", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021536889, "stop": 1747021536889}], "start": 1747021536889, "stop": 1747021536939}
\ No newline at end of file
{"uuid": "201e7014-01e3-4d87-9406-319dcebeb441", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538822, "stop": 1747021538822}], "start": 1747021538822, "stop": 1747021538856}
\ No newline at end of file
{"name": "test_bpm[维度管理-根据维度编码删除维度-反向用例-ids为id-中-DELETE-http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds-query-id=需要更新-expect20-select-select ID_ from uc_demension where CODE_=\"testDemension\";-需要更新]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t请求的url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds, \n\t用例数据为:id=需要更新, \n\t期望数据为:{'message': '删除维度失败'}, \n\t服务器返回的数据为:{\"state\":false,\"message\":\"删除维度失败,维度ids必填\",\"code\":200,\"logId\":\"1921772324798341120\"}", "trace": "self = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F5AEF70>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '维度管理', api = '根据维度编码删除维度', title = '反向用例-ids为id', level = '中'\nreq = 'DELETE', url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', mime = 'query', case = 'id=需要更新', expect = {'message': '删除维度失败'}, sql_type = 'select'\nsql_data = 'select ID_ from uc_demension where CODE_=\"testDemension\";', update_key = '需要更新'\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '删除维度失败' == '删除维度失败,维度ids必填'\nE \nE - 删除维度失败,维度ids必填\nE + 删除维度失败\n\ntest_case\\test_zhangsan\\test_bpm.py:28: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F5AEF70>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '维度管理', api = '根据维度编码删除维度', title = '反向用例-ids为id', level = '中'\nreq = 'DELETE', url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', mime = 'query', case = 'id=需要更新', expect = {'message': '删除维度失败'}, sql_type = 'select'\nsql_data = 'select ID_ from uc_demension where CODE_=\"testDemension\";', update_key = '需要更新'\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n assert expect[key] == res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t请求的url为:{url}, \\n\\t用例数据为:{case}, \\n\\t期望数据为:{expect}, \\n\\t服务器返回的数据为:{res.text}\")\nE AssertionError: 断言失败,\nE \t请求的url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds, \nE \t用例数据为:id=需要更新, \nE \t期望数据为:{'message': '删除维度失败'}, \nE \t服务器返回的数据为:{\"state\":false,\"message\":\"删除维度失败,维度ids必填\",\"code\":200,\"logId\":\"1921772324798341120\"}\n\ntest_case\\test_zhangsan\\test_bpm.py:30: AssertionError"}, "attachments": [{"name": "log", "source": "5eb684bb-09bb-404d-956c-6dc771a47c61-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'根据维度编码删除维度'"}, {"name": "title", "value": "'反向用例-ids为id'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'DELETE'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case", "value": "'id=需要更新'"}, {"name": "expect", "value": "{'message': '删除维度失败'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'select ID_ from uc_demension where CODE_=\"testDemension\";'"}, {"name": "update_key", "value": "'需要更新'"}], "start": 1747021539045, "stop": 1747021539070, "uuid": "16b05fd2-a28b-4e60-b060-802097ff36eb", "historyId": "f0e544d2d1fc32d0184fdce24766dc87", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "137d0099-acf1-4896-b47a-aa724ffc0802", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538748, "stop": 1747021538748}], "start": 1747021538748, "stop": 1747021538808}
\ No newline at end of file
{"uuid": "51f9d136-d5f6-42bc-9bc8-47e962523b54", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538994, "stop": 1747021538994}], "start": 1747021538994, "stop": 1747021539031}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
用例数据为None
\ No newline at end of file
{"uuid": "776ce44c-2ad3-46f3-86e1-5e6ba65b2c7a", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538381, "stop": 1747021538381}], "start": 1747021538381, "stop": 1747021538413}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的key为空-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}-expect2-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t用例数据为{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}", "trace": "self = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F1070>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的key为空', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n> assert expect[key]==res.json().get(key)\nE AssertionError: assert '账号或密码错误' == 'Unexpected c..., column: 23]'\nE \nE + 账号或密码错误\nE - Unexpected character (':' (code 58)): was expecting double-quote to start field name\nE - at [Source: (PushbackInputStream); line: 1, column: 23]\n\ntest_case\\test_bpm\\test_bpm.py:19: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F1070>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的key为空', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n assert expect[key]==res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t用例数据为{case}\")\nE AssertionError: 断言失败,\nE \t用例数据为{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}\n\ntest_case\\test_bpm\\test_bpm.py:21: AssertionError"}, "attachments": [{"name": "log", "source": "3307a9bc-317f-433a-960e-67e92e1dc4a9-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的key为空'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021536692, "stop": 1747021536713, "uuid": "8b3dd2ae-c769-49fe-9686-8504407105f2", "historyId": "622a3347fe4a9dcc000480e8fd9c0ecc", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "372c03f1-4e89-461f-ac1e-179b3b5024bc", "befores": [{"name": "expect", "status": "passed", "start": 1747021536738, "stop": 1747021536738}], "start": 1747021536738, "stop": 1747021536777}
\ No newline at end of file
{"uuid": "c8482b0d-83e8-4cb4-89ed-931ccccca7b4", "befores": [{"name": "expect", "status": "passed", "start": 1747021538037, "stop": 1747021538037}], "start": 1747021538037, "stop": 1747021538070}
\ No newline at end of file
{"uuid": "a5e8ec5f-fde6-47f1-a19b-1f3891ccdc19", "befores": [{"name": "case", "status": "passed", "start": 1747021537609, "stop": 1747021537609}], "start": 1747021537609, "stop": 1747021537645}
\ No newline at end of file
{"uuid": "0ae6a34b-36bf-4065-b94d-59261817b1a7", "befores": [{"name": "level", "status": "passed", "start": 1747021537609, "stop": 1747021537609}], "start": 1747021537609, "stop": 1747021537648}
\ No newline at end of file
{"uuid": "b818c122-28b7-4c10-b787-cdd50412ea15", "befores": [{"name": "mime", "status": "passed", "start": 1747021537655, "stop": 1747021537655}], "start": 1747021537655, "stop": 1747021537692}
\ No newline at end of file
{"uuid": "0311bbf7-c825-4e1a-b6af-b626a6a83a7a", "befores": [{"name": "mime", "status": "passed", "start": 1747021537362, "stop": 1747021537362}], "start": 1747021537362, "stop": 1747021537386}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
请求的url为:http://36.139.193.99:8088/auth,
用例数据为:{"username": "admin","password": "123456"},
期望数据为:{'message': '账号或密码错误'},
服务器返回的数据为:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1921772322210455552"}
\ No newline at end of file
{"uuid": "631b01d7-576e-41ec-9838-204aed123caa", "befores": [{"name": "case", "status": "passed", "start": 1747021538640, "stop": 1747021538640}], "start": 1747021538640, "stop": 1747021538704}
\ No newline at end of file
{"uuid": "53684941-0fac-4e80-91a2-a2a0c1d064e3", "befores": [{"name": "expect", "status": "passed", "start": 1747021537297, "stop": 1747021537297}], "start": 1747021537297, "stop": 1747021537351}
\ No newline at end of file
{"uuid": "73a9aa22-9deb-4938-8d17-75f04d1bf297", "befores": [{"name": "req", "status": "passed", "start": 1747021538138, "stop": 1747021538138}], "start": 1747021538138, "stop": 1747021538181}
\ No newline at end of file
{"uuid": "6269c1ce-88c7-4fec-9b67-42147d45cf88", "befores": [{"name": "expect", "status": "passed", "start": 1747021536889, "stop": 1747021536889}], "start": 1747021536889, "stop": 1747021536940}
\ No newline at end of file
{"uuid": "c3dbdd2a-2fab-4365-be54-dc529be1f1da", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538138, "stop": 1747021538138}], "start": 1747021538138, "stop": 1747021538177}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
用例数据为{"username": "admin","password": "123456"}
\ No newline at end of file
{"uuid": "c0aee90b-c09f-4bea-a545-9092e4c8823a", "befores": [{"name": "url", "status": "passed", "start": 1747021538640, "stop": 1747021538640}], "start": 1747021538640, "stop": 1747021538706}
\ No newline at end of file
{"uuid": "3b5145e4-6c3a-4c6c-8346-7e24ebb6726a", "befores": [{"name": "case", "status": "passed", "start": 1747021537143, "stop": 1747021537143}], "start": 1747021537143, "stop": 1747021537180}
\ No newline at end of file
{"uuid": "369ee13a-40b2-416f-a0dc-2f76365b71ad", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537190, "stop": 1747021537190}], "start": 1747021537190, "stop": 1747021537285}
\ No newline at end of file
{"uuid": "c730f206-f9c6-4143-b004-be47f03e5c48", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537396, "stop": 1747021537396}], "start": 1747021537396, "stop": 1747021537448}
\ No newline at end of file
{"uuid": "6df80e01-3101-45b1-bcc2-e61dc7125211", "befores": [{"name": "req", "status": "passed", "start": 1747021538993, "stop": 1747021538993}], "start": 1747021538993, "stop": 1747021539038}
\ No newline at end of file
{"uuid": "e31213b9-8bcf-4d72-b690-daadea23dbe0", "befores": [{"name": "req", "status": "passed", "start": 1747021538084, "stop": 1747021538084}], "start": 1747021538084, "stop": 1747021538127}
\ No newline at end of file
{"uuid": "1f569708-5dd3-4874-955d-a850ce18922e", "befores": [{"name": "expect", "status": "passed", "start": 1747021538640, "stop": 1747021538640}], "start": 1747021538640, "stop": 1747021538703}
\ No newline at end of file
{"uuid": "1200aa59-409b-4cf0-aaa7-129401d455b0", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538822, "stop": 1747021538822}], "start": 1747021538822, "stop": 1747021538858}
\ No newline at end of file
{"uuid": "dd525dc7-e3f4-479e-9e8e-ef70c9336722", "befores": [{"name": "title", "status": "passed", "start": 1747021539044, "stop": 1747021539044}], "start": 1747021539044, "stop": 1747021539088}
\ No newline at end of file
{"uuid": "220f9544-60aa-484f-9fdd-434c1191b68c", "befores": [{"name": "update_key", "status": "passed", "start": 1747021539045, "stop": 1747021539045}], "start": 1747021539045, "stop": 1747021539080}
\ No newline at end of file
{"uuid": "a218ada8-c206-401d-8211-df9733d5c909", "befores": [{"name": "module", "status": "passed", "start": 1747021536788, "stop": 1747021536788}], "start": 1747021536788, "stop": 1747021536834}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
\ No newline at end of file
{"uuid": "0e27d102-1ea9-4cc6-b9e2-a1e727bb158b", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021536738, "stop": 1747021536738}], "start": 1747021536738, "stop": 1747021536776}
\ No newline at end of file
{"uuid": "cb399250-c83b-4716-b8ef-b13303adcef3", "befores": [{"name": "url", "status": "passed", "start": 1747021538872, "stop": 1747021538872}], "start": 1747021538872, "stop": 1747021538938}
\ No newline at end of file
{"uuid": "6fd4b4e5-48ef-43d4-8b8d-27ff2a400ade", "befores": [{"name": "title", "status": "passed", "start": 1747021538993, "stop": 1747021538993}], "start": 1747021538992, "stop": 1747021539039}
\ No newline at end of file
{"uuid": "7177fc37-6fa7-47a5-89f5-c512f07b7329", "befores": [{"name": "update_key", "status": "passed", "start": 1747021536840, "stop": 1747021536840}], "start": 1747021536840, "stop": 1747021536875}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的数据为空-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"password\": \"\"}-expect10-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "3cf6e654-aa81-4ee5-8dc0-fb473577de11-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的数据为空'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": \"\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021537098, "stop": 1747021537128, "uuid": "dd194a69-d511-4efc-b430-3e96a4e373ce", "historyId": "89531fdad5fd4b0247c0e8e26f94dae6", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "8f126054-eea3-44ec-8a0a-ebae750dc1d3", "befores": [{"name": "level", "status": "passed", "start": 1747021538084, "stop": 1747021538084}], "start": 1747021538084, "stop": 1747021538128}
\ No newline at end of file
{"uuid": "e5d88220-3c56-4357-8506-10337c73e5c5", "befores": [{"name": "module", "status": "passed", "start": 1747021538476, "stop": 1747021538476}], "start": 1747021538476, "stop": 1747021538523}
\ No newline at end of file
{"uuid": "a1b4a55f-75a6-4c3c-b8e4-f008ef2d8ab2", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537515, "stop": 1747021537515}], "start": 1747021537515, "stop": 1747021537545}
\ No newline at end of file
{"uuid": "c2094282-d345-4c54-ae23-1950df104ec2", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538037, "stop": 1747021538037}], "start": 1747021538037, "stop": 1747021538067}
\ No newline at end of file
{"uuid": "dd31d179-6c3a-40c1-ba33-584242a2c103", "befores": [{"name": "case", "status": "passed", "start": 1747021537396, "stop": 1747021537396}], "start": 1747021537396, "stop": 1747021537451}
\ No newline at end of file
{"uuid": "ad5c3551-bd31-4b68-8453-d59f7f786ae0", "befores": [{"name": "title", "status": "passed", "start": 1747021536305, "stop": 1747021536305}], "start": 1747021536305, "stop": 1747021536360}
\ No newline at end of file
{"uuid": "847e0065-cdfc-4f16-bac3-d9f407b4c667", "befores": [{"name": "level", "status": "passed", "start": 1747021538872, "stop": 1747021538872}], "start": 1747021538872, "stop": 1747021538940}
\ No newline at end of file
{"uuid": "5147a683-9cc7-4b41-8eb3-514ef271b1b7", "befores": [{"name": "api", "status": "passed", "start": 1747021536738, "stop": 1747021536738}], "start": 1747021536738, "stop": 1747021536784}
\ No newline at end of file
{"name": "test_bpm[维度管理-根据维度编码删除维度-正向用例-中-DELETE-http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds-query-case19-expect19-select-select ID_ from uc_demension where CODE_=\"testDemension\";-ids]", "status": "passed", "attachments": [{"name": "log", "source": "e09e510b-e8e5-420d-8073-fe0bc81bdd20-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'根据维度编码删除维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'DELETE'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case", "value": "{'ids': '需要更新'}"}, {"name": "expect", "value": "{'message': '删除维度成功!'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'select ID_ from uc_demension where CODE_=\"testDemension\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1747021538994, "stop": 1747021539030, "uuid": "82b29b74-2c32-42d5-9476-da9d4fe6216f", "historyId": "744e2fead5ae8e499b28827bc0f7bd10", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "f6c90a50-d596-4255-a4e3-d3ea2dcbaef6", "befores": [{"name": "level", "status": "passed", "start": 1747021538381, "stop": 1747021538381}], "start": 1747021538381, "stop": 1747021538420}
\ No newline at end of file
{"uuid": "6fa41b96-41af-4e04-bd05-5aff8aa39bd3", "befores": [{"name": "url", "status": "passed", "start": 1747021538323, "stop": 1747021538323}], "start": 1747021538323, "stop": 1747021538371}
\ No newline at end of file
{"uuid": "4990d15f-a859-489a-9b02-c0ffb4addcfe", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537609, "stop": 1747021537609}], "start": 1747021537609, "stop": 1747021537642}
\ No newline at end of file
{"uuid": "ee10396a-1a24-437b-b14f-5869de32ca64", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537560, "stop": 1747021537560}], "start": 1747021537560, "stop": 1747021537594}
\ No newline at end of file
{"uuid": "2bc3d2b6-22c8-49b0-b7e0-08a26826d1c2", "befores": [{"name": "level", "status": "passed", "start": 1747021537995, "stop": 1747021537995}], "start": 1747021537995, "stop": 1747021538029}
\ No newline at end of file
{"uuid": "2534db69-d0ed-4066-9709-ac099bc5a280", "befores": [{"name": "expect", "status": "passed", "start": 1747021538993, "stop": 1747021538993}], "start": 1747021538993, "stop": 1747021539033}
\ No newline at end of file
{"uuid": "d2856232-9565-4d80-9185-e7200ec5ce29", "befores": [{"name": "url", "status": "passed", "start": 1747021538037, "stop": 1747021538037}], "start": 1747021538037, "stop": 1747021538072}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的数据过长-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}-expect6-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t用例数据为{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}", "trace": "self = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F1370>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的数据过长', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4...2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n> assert expect[key]==res.json().get(key)\nE AssertionError: assert '账号或密码错误' == None\nE + where None = <built-in method get of dict object at 0x0000018E8F5E2840>('message')\nE + where <built-in method get of dict object at 0x0000018E8F5E2840> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...ksImlhdCI6MTc0NzAyMTE5OX0.c4COfQNcLx_KfYh0Xalh4LyFaBJrmsnRq2-L-9RYpEQ88xbXr2ad35Z9pPWIhXqtq63AcEbNsHAqomT0PlNv5g', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...ksImlhdCI6MTc0NzAyMTE5OX0.c4COfQNcLx_KfYh0Xalh4LyFaBJrmsnRq2-L-9RYpEQ88xbXr2ad35Z9pPWIhXqtq63AcEbNsHAqomT0PlNv5g', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_bpm\\test_bpm.py:19: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F1370>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的数据过长', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4...2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n assert expect[key]==res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t用例数据为{case}\")\nE AssertionError: 断言失败,\nE \t用例数据为{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}\n\ntest_case\\test_bpm\\test_bpm.py:21: AssertionError"}, "attachments": [{"name": "log", "source": "536656ec-ad30-4f69-ab5d-017997752a20-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的数据过长'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021536889, "stop": 1747021536928, "uuid": "e69ec35c-6cac-4239-9a9b-695bddbdd5d1", "historyId": "e798d0eb0ddff963d03b6c2d33c250c5", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
\ No newline at end of file
{"uuid": "58460cee-bd19-454b-bddf-f40909320761", "befores": [{"name": "level", "status": "passed", "start": 1747021536951, "stop": 1747021536951}], "start": 1747021536951, "stop": 1747021536986}
\ No newline at end of file
{"uuid": "64cf299d-8683-41f4-a502-53f1f8c06200", "befores": [{"name": "case", "status": "passed", "start": 1747021537515, "stop": 1747021537515}], "start": 1747021537515, "stop": 1747021537547}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
请求的url为:http://36.139.193.99:8088/auth,
用例数据为:{"username": "admin",class: "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8="},
期望数据为:{'message': '账号或密码错误'},
服务器返回的数据为:{"state":false,"message":"Unexpected character ('c' (code 99)): was expecting double-quote to start field name\n at [Source: (PushbackInputStream); line: 1, column: 23]","code":200,"logId":"1921772320352378880"}
\ No newline at end of file
{"uuid": "9b388136-1ebc-490c-9ae4-015293fb722f", "befores": [{"name": "title", "status": "passed", "start": 1747021536995, "stop": 1747021536995}], "start": 1747021536995, "stop": 1747021537040}
\ No newline at end of file
{"uuid": "2d20c994-0fa1-4443-b859-9b8cfc0a9731", "befores": [{"name": "mime", "status": "passed", "start": 1747021536788, "stop": 1747021536788}], "start": 1747021536788, "stop": 1747021536828}
\ No newline at end of file
{"uuid": "a713c2ce-1122-48c9-83d2-113f771877c0", "befores": [{"name": "req", "status": "passed", "start": 1747021537097, "stop": 1747021537097}], "start": 1747021537097, "stop": 1747021537135}
\ No newline at end of file
{"uuid": "31a3bb44-9b8f-4e56-a19a-93c9de48aade", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537143, "stop": 1747021537143}], "start": 1747021537143, "stop": 1747021537178}
\ No newline at end of file
{"uuid": "83f1c806-65d7-4ddb-ab61-50807ed5a195", "befores": [{"name": "case", "status": "passed", "start": 1747021536691, "stop": 1747021536691}], "start": 1747021536691, "stop": 1747021536727}
\ No newline at end of file
{"uuid": "e1a4a373-464b-4411-907d-183e996f3e3f", "befores": [{"name": "module", "status": "passed", "start": 1747021537461, "stop": 1747021537462}], "start": 1747021537461, "stop": 1747021537511}
\ No newline at end of file
{"uuid": "deebfe32-ae8c-4e2c-9239-d1f6cb9c9637", "befores": [{"name": "module", "status": "passed", "start": 1747021538870, "stop": 1747021538870}], "start": 1747021538870, "stop": 1747021538942}
\ No newline at end of file
{"name": "test_bpm[维度管理-添加维度-正向用例-高-post-http://36.139.193.99:8088/api/demension/v1/dem/addDem-application/json-case13-expect13-delete-delete from uc_demension where CODE_=\"testDemension\";-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t请求的url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem, \n\t用例数据为:{'code': 'testDemension', 'description': '测试维度', 'isDefault': 0, 'name': '测试维度'}, \n\t期望数据为:{'message': '添加维度成功'}, \n\t服务器返回的数据为:{\"state\":true,\"message\":\"添加维度成功!\",\"value\":\"\",\"code\":200}", "trace": "self = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F578AF0>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '维度管理', api = '添加维度', title = '正向用例', level = '高'\nreq = 'post', url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'application/json'\ncase = {'code': 'testDemension', 'description': '测试维度', 'isDefault': 0, 'name': '测试维度'}, expect = {'message': '添加维度成功'}, sql_type = 'delete'\nsql_data = 'delete from uc_demension where CODE_=\"testDemension\";', update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '添加维度成功' == '添加维度成功!'\nE \nE - 添加维度成功!\nE ? -\nE + 添加维度成功\n\ntest_case\\test_zhangsan\\test_bpm.py:28: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F578AF0>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '维度管理', api = '添加维度', title = '正向用例', level = '高'\nreq = 'post', url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'application/json'\ncase = {'code': 'testDemension', 'description': '测试维度', 'isDefault': 0, 'name': '测试维度'}, expect = {'message': '添加维度成功'}, sql_type = 'delete'\nsql_data = 'delete from uc_demension where CODE_=\"testDemension\";', update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n assert expect[key] == res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t请求的url为:{url}, \\n\\t用例数据为:{case}, \\n\\t期望数据为:{expect}, \\n\\t服务器返回的数据为:{res.text}\")\nE AssertionError: 断言失败,\nE \t请求的url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem, \nE \t用例数据为:{'code': 'testDemension', 'description': '测试维度', 'isDefault': 0, 'name': '测试维度'}, \nE \t期望数据为:{'message': '添加维度成功'}, \nE \t服务器返回的数据为:{\"state\":true,\"message\":\"添加维度成功!\",\"value\":\"\",\"code\":200}\n\ntest_case\\test_zhangsan\\test_bpm.py:30: AssertionError"}, "attachments": [{"name": "log", "source": "fe07aff8-ddc1-4c7f-83a7-cb4682e68cd5-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'添加维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}, {"name": "req", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "{'code': 'testDemension', 'description': '测试维度', 'isDefault': 0, 'name': '测试维度'}"}, {"name": "expect", "value": "{'message': '添加维度成功'}"}, {"name": "sql_type", "value": "'delete'"}, {"name": "sql_data", "value": "'delete from uc_demension where CODE_=\"testDemension\";'"}, {"name": "update_key", "value": "None"}], "start": 1747021538641, "stop": 1747021538690, "uuid": "26420fe6-66d1-4007-91f8-180dd7a40cbc", "historyId": "d717d0670b53f15b03daec347766ae53", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
INFO  root:__init__.py:44 执行的功能为:delete, 功能的描述为:执行删除的sql语句, 所在的文件为:E:\untitled\API2\common\db.py, 所在的行为:37
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
用例数据为{'code': 'testDemension', 'description': '测试维度', 'isDefault': 0, 'name': '测试维度'}
\ No newline at end of file
{"uuid": "77fd12ba-df6f-4c6f-b40f-7dce046f8231", "befores": [{"name": "mime", "status": "passed", "start": 1747021536840, "stop": 1747021536840}], "start": 1747021536840, "stop": 1747021536879}
\ No newline at end of file
{"uuid": "5633a7b5-852b-47bc-9ef7-df1df3a5a150", "befores": [{"name": "expect", "status": "passed", "start": 1747021536306, "stop": 1747021536306}], "start": 1747021536306, "stop": 1747021536356}
\ No newline at end of file
{"uuid": "6195ec99-79ec-4b30-9ef0-1260dcc5cf1e", "befores": [{"name": "api", "status": "passed", "start": 1747021536788, "stop": 1747021536788}], "start": 1747021536788, "stop": 1747021536832}
\ No newline at end of file
{"uuid": "b02dbdaf-3a02-4859-9bf6-3ffbe8c4088b", "befores": [{"name": "title", "status": "passed", "start": 1747021537462, "stop": 1747021537462}], "start": 1747021537462, "stop": 1747021537509}
\ No newline at end of file
{"uuid": "776d2102-00df-4e45-8766-20d12a2e8ed7", "befores": [{"name": "mime", "status": "passed", "start": 1747021536951, "stop": 1747021536951}], "start": 1747021536951, "stop": 1747021536983}
\ No newline at end of file
{"uuid": "20e64696-51d0-415d-93be-b3b2cf234a2c", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537396, "stop": 1747021537396}], "start": 1747021537396, "stop": 1747021537446}
\ No newline at end of file
{"uuid": "600f856e-d685-4322-b774-90c3fc617187", "befores": [{"name": "update_key", "status": "passed", "start": 1747021536995, "stop": 1747021536995}], "start": 1747021536995, "stop": 1747021537030}
\ No newline at end of file
{"uuid": "4c162e05-3968-4665-ab33-5abb8ad87fa6", "befores": [{"name": "url", "status": "passed", "start": 1747021536738, "stop": 1747021536738}], "start": 1747021536738, "stop": 1747021536779}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
INFO  root:__init__.py:44 执行的功能为:select, 功能的描述为:执行查询的sql语句,并返回查询, 所在的文件为:E:\untitled\API2\common\db.py, 所在的行为:46
\ No newline at end of file
{"uuid": "c8ebb48e-929d-435a-9b01-7e455d989430", "befores": [{"name": "level", "status": "passed", "start": 1747021537396, "stop": 1747021537396}], "start": 1747021537396, "stop": 1747021537453}
\ No newline at end of file
{"uuid": "ce687efd-fff2-4fff-a740-d8be4c487cc1", "befores": [{"name": "title", "status": "passed", "start": 1747021536738, "stop": 1747021536738}], "start": 1747021536738, "stop": 1747021536782}
\ No newline at end of file
{"uuid": "247d3a6d-b308-4e34-9162-df7024fa62ca", "befores": [{"name": "req", "status": "passed", "start": 1747021537609, "stop": 1747021537609}], "start": 1747021537609, "stop": 1747021537647}
\ No newline at end of file
{"uuid": "2aa4db2a-c2a8-4324-997f-4fa86b776673", "befores": [{"name": "api", "status": "passed", "start": 1747021538945, "stop": 1747021538946}], "start": 1747021538945, "stop": 1747021538988}
\ No newline at end of file
{"uuid": "5ce40158-32cc-42bf-9bf6-3bc6c64dfa05", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021536840, "stop": 1747021536840}], "start": 1747021536840, "stop": 1747021536876}
\ No newline at end of file
{"uuid": "3087997b-2c48-443d-88c5-c978ecdf2917", "befores": [{"name": "module", "status": "passed", "start": 1747021537097, "stop": 1747021537097}], "start": 1747021537097, "stop": 1747021537138}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
\ No newline at end of file
{"uuid": "b04761ee-9054-4354-831b-4cfc2d67eb54", "befores": [{"name": "module", "status": "passed", "start": 1747021537609, "stop": 1747021537609}], "start": 1747021537609, "stop": 1747021537650}
\ No newline at end of file
{"uuid": "1140dd50-6c7f-4c7d-9532-c7365f8ec91e", "befores": [{"name": "case", "status": "passed", "start": 1747021538084, "stop": 1747021538084}], "start": 1747021538084, "stop": 1747021538123}
\ No newline at end of file
{"uuid": "cc128e24-0577-45d2-a4d7-6389f20e4bcd", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538037, "stop": 1747021538037}], "start": 1747021538037, "stop": 1747021538069}
\ No newline at end of file
{"uuid": "14d6d525-f7e7-4fb6-8de2-de2d0b5ab75f", "befores": [{"name": "level", "status": "passed", "start": 1747021536840, "stop": 1747021536840}], "start": 1747021536840, "stop": 1747021536881}
\ No newline at end of file
{"uuid": "46efd316-87b3-4155-ba66-98076ad4d874", "befores": [{"name": "title", "status": "passed", "start": 1747021537945, "stop": 1747021537945}], "start": 1747021537945, "stop": 1747021537989}
\ No newline at end of file
{"uuid": "8b09dec1-f6b8-4c36-9a72-f50e1d2f2983", "befores": [{"name": "case", "status": "passed", "start": 1747021537189, "stop": 1747021537189}], "start": 1747021537189, "stop": 1747021537287}
\ No newline at end of file
{"uuid": "a5f633a9-2212-4e78-84a0-914ec69b668f", "befores": [{"name": "mime", "status": "passed", "start": 1747021538822, "stop": 1747021538822}], "start": 1747021538822, "stop": 1747021538861}
\ No newline at end of file
{"uuid": "2d654e79-e53b-4f4a-ae7b-3253e38b5fe3", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537462, "stop": 1747021537462}], "start": 1747021537462, "stop": 1747021537502}
\ No newline at end of file
{"uuid": "7545b094-c030-4694-8644-9df0095e99c9", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538139, "stop": 1747021538139}], "start": 1747021538139, "stop": 1747021538174}
\ No newline at end of file
{"uuid": "4cb86c4c-1b5b-4f5e-9792-a825dcc9bee4", "befores": [{"name": "expect", "status": "passed", "start": 1747021537362, "stop": 1747021537362}], "start": 1747021537362, "stop": 1747021537384}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
用例数据为{"username": "admin",: "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8="}
\ No newline at end of file
{"uuid": "076955cf-95ac-44a8-8b99-cadc28a9307c", "befores": [{"name": "level", "status": "passed", "start": 1747021538821, "stop": 1747021538821}], "start": 1747021538821, "stop": 1747021538863}
\ No newline at end of file
{"uuid": "b0c18d67-0261-46a7-9cf4-47600164ac46", "befores": [{"name": "level", "status": "passed", "start": 1747021538748, "stop": 1747021538748}], "start": 1747021538748, "stop": 1747021538815}
\ No newline at end of file
{"uuid": "ad40e51d-f4a7-4a7d-8329-3eca989a55e9", "befores": [{"name": "mime", "status": "passed", "start": 1747021537097, "stop": 1747021537097}], "start": 1747021537097, "stop": 1747021537134}
\ No newline at end of file
{"uuid": "43685d86-0b9a-4239-a5f4-9052f4e132b1", "befores": [{"name": "title", "status": "passed", "start": 1747021537362, "stop": 1747021537362}], "start": 1747021537362, "stop": 1747021537389}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的数据为关键字-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"password\": class}-expect11-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t请求的url为:http://36.139.193.99:8088/auth, \n\t用例数据为:{\"username\": \"admin\",\"password\": class}, \n\t期望数据为:{'message': '账号或密码错误'}, \n\t服务器返回的数据为:{\"state\":false,\"message\":\"Unrecognized token 'class': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\\n at [Source: (PushbackInputStream); line: 1, column: 40]\",\"code\":200,\"logId\":\"1921772322617303040\"}", "trace": "self = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F578D90>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的数据为关键字'\nlevel = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json', case = '{\"username\": \"admin\",\"password\": class}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == 'Unrecognized..., column: 40]'\nE \nE + 账号或密码错误\nE - Unrecognized token 'class': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\nE - at [Source: (PushbackInputStream); line: 1, column: 40]\n\ntest_case\\test_zhangsan\\test_bpm.py:28: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F578D90>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的数据为关键字'\nlevel = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json', case = '{\"username\": \"admin\",\"password\": class}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n assert expect[key] == res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t请求的url为:{url}, \\n\\t用例数据为:{case}, \\n\\t期望数据为:{expect}, \\n\\t服务器返回的数据为:{res.text}\")\nE AssertionError: 断言失败,\nE \t请求的url为:http://36.139.193.99:8088/auth, \nE \t用例数据为:{\"username\": \"admin\",\"password\": class}, \nE \t期望数据为:{'message': '账号或密码错误'}, \nE \t服务器返回的数据为:{\"state\":false,\"message\":\"Unrecognized token 'class': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\\n at [Source: (PushbackInputStream); line: 1, column: 40]\",\"code\":200,\"logId\":\"1921772322617303040\"}\n\ntest_case\\test_zhangsan\\test_bpm.py:30: AssertionError"}, "attachments": [{"name": "log", "source": "dcdbcf16-bfb8-4a87-b92c-f32593a0c13a-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的数据为关键字'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": class}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538528, "stop": 1747021538552, "uuid": "f354970d-0d48-4eca-9474-54d41f82c837", "historyId": "4d1b5afe5ef7f138e117a89b56836431", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的key为class-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}-expect1-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t用例数据为{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}", "trace": "self = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F49CBB0>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的key为class', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n> assert expect[key]==res.json().get(key)\nE AssertionError: assert '账号或密码错误' == 'Unexpected c..., column: 23]'\nE \nE + 账号或密码错误\nE - Unexpected character ('c' (code 99)): was expecting double-quote to start field name\nE - at [Source: (PushbackInputStream); line: 1, column: 23]\n\ntest_case\\test_bpm\\test_bpm.py:19: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F49CBB0>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的key为class', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n assert expect[key]==res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t用例数据为{case}\")\nE AssertionError: 断言失败,\nE \t用例数据为{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}\n\ntest_case\\test_bpm\\test_bpm.py:21: AssertionError"}, "attachments": [{"name": "log", "source": "a6ad4946-c6aa-4932-bec0-186a7619b59e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的key为class'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021536368, "stop": 1747021536385, "uuid": "7d457a8a-bf0a-45b6-b4a3-86d17d800d17", "historyId": "9fe5fecf873e461cfef4201f6117a2c0", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "3b395fe6-23af-4205-afbe-0961a1517f4e", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021536789, "stop": 1747021536789}], "start": 1747021536789, "stop": 1747021536826}
\ No newline at end of file
{"uuid": "ebff77ae-eaf3-4bea-8a5e-da5368bb8eaf", "befores": [{"name": "update_key", "status": "passed", "start": 1747021536738, "stop": 1747021536738}], "start": 1747021536738, "stop": 1747021536775}
\ No newline at end of file
{"uuid": "726ac2ee-fb70-4ff6-bee6-bbd2e6a6507e", "befores": [{"name": "req", "status": "passed", "start": 1747021536691, "stop": 1747021536691}], "start": 1747021536691, "stop": 1747021536729}
\ No newline at end of file
{"uuid": "b99a9e6a-94c8-4dea-98cb-32e0f629a38a", "befores": [{"name": "url", "status": "passed", "start": 1747021537462, "stop": 1747021537462}], "start": 1747021537462, "stop": 1747021537507}
\ No newline at end of file
{"uuid": "40138ead-be4d-4051-9fd7-e2399f6f7e56", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537297, "stop": 1747021537297}], "start": 1747021537297, "stop": 1747021537349}
\ No newline at end of file
{"uuid": "17c3b0e6-7165-45bb-b3e3-5b22b9571b88", "befores": [{"name": "req", "status": "passed", "start": 1747021537362, "stop": 1747021537362}], "start": 1747021537362, "stop": 1747021537388}
\ No newline at end of file
{"uuid": "6ebdadff-0eba-4492-9c99-1f6c077517d6", "befores": [{"name": "mime", "status": "passed", "start": 1747021538577, "stop": 1747021538577}], "start": 1747021538577, "stop": 1747021538629}
\ No newline at end of file
{"uuid": "b441db14-977a-4870-84fe-91c38e6052c2", "befores": [{"name": "title", "status": "passed", "start": 1747021537297, "stop": 1747021537297}], "start": 1747021537297, "stop": 1747021537357}
\ No newline at end of file
{"uuid": "c49e00fb-a03b-4828-9a41-486ddc9a598d", "befores": [{"name": "api", "status": "passed", "start": 1747021537097, "stop": 1747021537097}], "start": 1747021537097, "stop": 1747021537138}
\ No newline at end of file
{"uuid": "13030021-3ea3-4c39-8a80-63ff0a45c650", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537995, "stop": 1747021537995}], "start": 1747021537995, "stop": 1747021538023}
\ No newline at end of file
{"uuid": "8cf9088d-c8aa-492a-85e2-a96578b24cd0", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538324, "stop": 1747021538324}], "start": 1747021538324, "stop": 1747021538366}
\ No newline at end of file
{"uuid": "df986e12-4698-462c-9c80-a334d66442ea", "befores": [{"name": "req", "status": "passed", "start": 1747021537945, "stop": 1747021537945}], "start": 1747021537945, "stop": 1747021537987}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的key为class-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}-expect1-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t请求的url为:http://36.139.193.99:8088/auth, \n\t用例数据为:{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}, \n\t期望数据为:{'message': '账号或密码错误'}, \n\t服务器返回的数据为:{\"state\":false,\"message\":\"Unexpected character ('c' (code 99)): was expecting double-quote to start field name\\n at [Source: (PushbackInputStream); line: 1, column: 23]\",\"code\":200,\"logId\":\"1921772320352378880\"}", "trace": "self = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F5DA130>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的key为class'\nlevel = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == 'Unexpected c..., column: 23]'\nE \nE + 账号或密码错误\nE - Unexpected character ('c' (code 99)): was expecting double-quote to start field name\nE - at [Source: (PushbackInputStream); line: 1, column: 23]\n\ntest_case\\test_zhangsan\\test_bpm.py:28: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F5DA130>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的key为class'\nlevel = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n assert expect[key] == res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t请求的url为:{url}, \\n\\t用例数据为:{case}, \\n\\t期望数据为:{expect}, \\n\\t服务器返回的数据为:{res.text}\")\nE AssertionError: 断言失败,\nE \t请求的url为:http://36.139.193.99:8088/auth, \nE \t用例数据为:{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}, \nE \t期望数据为:{'message': '账号或密码错误'}, \nE \t服务器返回的数据为:{\"state\":false,\"message\":\"Unexpected character ('c' (code 99)): was expecting double-quote to start field name\\n at [Source: (PushbackInputStream); line: 1, column: 23]\",\"code\":200,\"logId\":\"1921772320352378880\"}\n\ntest_case\\test_zhangsan\\test_bpm.py:30: AssertionError"}, "attachments": [{"name": "log", "source": "20b34149-9f07-43c0-928b-578a36fcd891-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的key为class'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",class: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021537996, "stop": 1747021538011, "uuid": "f4654f3f-4dfb-4217-a104-4befcfbbb941", "historyId": "595074a96bbb9d90fccbd59025a28737", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "04021ad2-d5fe-474c-a0d3-01a2c47e13b2", "befores": [{"name": "case", "status": "passed", "start": 1747021536789, "stop": 1747021536789}], "start": 1747021536789, "stop": 1747021536827}
\ No newline at end of file
{"uuid": "bb34056d-cba4-4ca0-8a98-6a52ac53e0e2", "befores": [{"name": "level", "status": "passed", "start": 1747021537655, "stop": 1747021537655}], "start": 1747021537655, "stop": 1747021537695}
\ No newline at end of file
{"uuid": "4163ec6e-dab9-45dc-a074-52b480ce7eab", "befores": [{"name": "module", "status": "passed", "start": 1747021538714, "stop": 1747021538714}], "start": 1747021538714, "stop": 1747021538744}
\ No newline at end of file
{"name": "test_login", "status": "passed", "attachments": [{"name": "log", "source": "a24a4126-10cc-496d-9de9-4b7c3ac8d7eb-attachment.txt", "type": "text/plain"}], "start": 1747021537803, "stop": 1747021537839, "uuid": "2ed2561e-17f0-4060-95fa-9e93d0f1c705", "historyId": "4be1007c29874ad657ed2fcd8a25c996", "testCaseId": "4be1007c29874ad657ed2fcd8a25c996", "fullName": "test_case.test_bpm_dependency.test_auth.TestAuth#test_login", "labels": [{"name": "tag", "value": "dependency(scope='session')"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_auth"}, {"name": "subSuite", "value": "TestAuth"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_auth"}]}
\ No newline at end of file
{"uuid": "d62e2472-deb6-4719-ab64-5ad95ddc531a", "befores": [{"name": "req", "status": "passed", "start": 1747021537462, "stop": 1747021537462}], "start": 1747021537462, "stop": 1747021537508}
\ No newline at end of file
{"uuid": "c6c8518b-991a-42ec-b8d3-b43059a573ff", "befores": [{"name": "mime", "status": "passed", "start": 1747021537560, "stop": 1747021537560}], "start": 1747021537560, "stop": 1747021537600}
\ No newline at end of file
{"uuid": "9bacdb0a-a0ce-4bdb-bd95-2e91fbc61331", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537515, "stop": 1747021537515}], "start": 1747021537515, "stop": 1747021537542}
\ No newline at end of file
{"uuid": "eaf6fb0b-6610-4c6c-b0a7-a530a8436838", "befores": [{"name": "api", "status": "passed", "start": 1747021537046, "stop": 1747021537046}], "start": 1747021537046, "stop": 1747021537092}
\ No newline at end of file
{"uuid": "0c8003f4-2419-4deb-9b94-96e526109531", "befores": [{"name": "expect", "status": "passed", "start": 1747021537046, "stop": 1747021537047}], "start": 1747021537046, "stop": 1747021537086}
\ No newline at end of file
{"uuid": "73a0b4d6-5324-4715-8206-7f464ded2e7b", "befores": [{"name": "mime", "status": "passed", "start": 1747021537462, "stop": 1747021537462}], "start": 1747021537462, "stop": 1747021537505}
\ No newline at end of file
{"uuid": "9e11393c-eb4e-4ec5-8fc9-cf8d004fd7d1", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538994, "stop": 1747021538994}], "start": 1747021538993, "stop": 1747021539032}
\ No newline at end of file
{"uuid": "3f29a75b-36b6-47b1-be5b-d720678cfaf6", "befores": [{"name": "module", "status": "passed", "start": 1747021537395, "stop": 1747021537396}], "start": 1747021537395, "stop": 1747021537457}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
\ No newline at end of file
{"uuid": "aac5cc6c-ea47-41eb-ac02-7eb9e539a4c7", "befores": [{"name": "expect", "status": "passed", "start": 1747021538323, "stop": 1747021538323}], "start": 1747021538323, "stop": 1747021538369}
\ No newline at end of file
{"uuid": "1f1f5648-3610-4af6-8285-307a6d782890", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537946, "stop": 1747021537946}], "start": 1747021537946, "stop": 1747021537981}
\ No newline at end of file
{"uuid": "1571bf6b-7352-43dd-a67e-5805687208f8", "befores": [{"name": "module", "status": "passed", "start": 1747021536888, "stop": 1747021536888}], "start": 1747021536888, "stop": 1747021536947}
\ No newline at end of file
{"uuid": "3899b594-5e5b-428f-894b-614f4f8cb6bb", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537560, "stop": 1747021537560}], "start": 1747021537560, "stop": 1747021537595}
\ No newline at end of file
{"uuid": "85fae815-34e9-49d1-ab16-2cebc2d5691c", "befores": [{"name": "module", "status": "passed", "start": 1747021538238, "stop": 1747021538238}], "start": 1747021538238, "stop": 1747021538319}
\ No newline at end of file
{"uuid": "10ee20a5-cc94-4f40-b059-4d4cb104eebe", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021536306, "stop": 1747021536306}], "start": 1747021536306, "stop": 1747021536354}
\ No newline at end of file
{"uuid": "2e4129cf-e46b-46af-a948-815f0f563007", "befores": [{"name": "req", "status": "passed", "start": 1747021538323, "stop": 1747021538323}], "start": 1747021538323, "stop": 1747021538372}
\ No newline at end of file
{"uuid": "397a8d59-7e94-42ff-849c-e7f6cfea058f", "befores": [{"name": "level", "status": "passed", "start": 1747021536367, "stop": 1747021536367}], "start": 1747021536367, "stop": 1747021536685}
\ No newline at end of file
{"uuid": "737eef2f-de74-4c65-9012-09c7dcd0066f", "befores": [{"name": "mime", "status": "passed", "start": 1747021538640, "stop": 1747021538640}], "start": 1747021538640, "stop": 1747021538705}
\ No newline at end of file
{"uuid": "d0337783-21f4-4751-98a7-19c442eaa1ac", "befores": [{"name": "api", "status": "passed", "start": 1747021538084, "stop": 1747021538084}], "start": 1747021538084, "stop": 1747021538131}
\ No newline at end of file
{"uuid": "621568fe-a9e7-48b1-afcc-573180dfcade", "befores": [{"name": "api", "status": "passed", "start": 1747021536888, "stop": 1747021536888}], "start": 1747021536888, "stop": 1747021536946}
\ No newline at end of file
{"uuid": "63574ac1-2463-4332-bbaf-848f8172a353", "befores": [{"name": "req", "status": "passed", "start": 1747021538714, "stop": 1747021538714}], "start": 1747021538714, "stop": 1747021538740}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的数据过长-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}-expect6-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t请求的url为:http://36.139.193.99:8088/auth, \n\t用例数据为:{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}, \n\t期望数据为:{'message': '账号或密码错误'}, \n\t服务器返回的数据为:{\"token\":\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3NDcxMDc2MDAsImlhdCI6MTc0NzAyMTIwMH0.xsT-DVC-kCZ_NABXPn0kSFLB3J2uk0SOCQeVHu-HDY1_vjukFzCIO4X5hlVy4bt_HaIYOT8jvg1Bq27Yp3RIhw\",\"username\":\"超级管理员\",\"account\":\"admin\",\"userId\":\"1\",\"expiration\":86400,\"loginStatus\":true,\"userAttrs\":{\"tenantId\":\"-1\"}}", "trace": "self = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F578820>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的数据过长'\nlevel = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4...2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == None\nE + where None = <built-in method get of dict object at 0x0000018E8F718DC0>('message')\nE + where <built-in method get of dict object at 0x0000018E8F718DC0> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...AsImlhdCI6MTc0NzAyMTIwMH0.xsT-DVC-kCZ_NABXPn0kSFLB3J2uk0SOCQeVHu-HDY1_vjukFzCIO4X5hlVy4bt_HaIYOT8jvg1Bq27Yp3RIhw', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...AsImlhdCI6MTc0NzAyMTIwMH0.xsT-DVC-kCZ_NABXPn0kSFLB3J2uk0SOCQeVHu-HDY1_vjukFzCIO4X5hlVy4bt_HaIYOT8jvg1Bq27Yp3RIhw', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_zhangsan\\test_bpm.py:28: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F578820>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的数据过长'\nlevel = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4...2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n assert expect[key] == res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t请求的url为:{url}, \\n\\t用例数据为:{case}, \\n\\t期望数据为:{expect}, \\n\\t服务器返回的数据为:{res.text}\")\nE AssertionError: 断言失败,\nE \t请求的url为:http://36.139.193.99:8088/auth, \nE \t用例数据为:{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}, \nE \t期望数据为:{'message': '账号或密码错误'}, \nE \t服务器返回的数据为:{\"token\":\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3NDcxMDc2MDAsImlhdCI6MTc0NzAyMTIwMH0.xsT-DVC-kCZ_NABXPn0kSFLB3J2uk0SOCQeVHu-HDY1_vjukFzCIO4X5hlVy4bt_HaIYOT8jvg1Bq27Yp3RIhw\",\"username\":\"超级管理员\",\"account\":\"admin\",\"userId\":\"1\",\"expiration\":86400,\"loginStatus\":true,\"userAttrs\":{\"tenantId\":\"-1\"}}\n\ntest_case\\test_zhangsan\\test_bpm.py:30: AssertionError"}, "attachments": [{"name": "log", "source": "6f729153-940e-45ed-9a3c-87bd23358c82-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的数据过长'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538239, "stop": 1747021538299, "uuid": "d33b5a51-270e-42e5-af0f-929339086445", "historyId": "485b219f6fcc10c8781e44ac88cdfe0e", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-正向用例-正确的用户名和密码进行登录-高-POST-http://36.139.193.99:8088/auth-application/json-case0-expect0-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "072ae4ba-5e80-41da-b40b-bcb28c9d3bb8-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'正向用例-正确的用户名和密码进行登录'"}, {"name": "level", "value": "'高'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "{'username': 'admin', 'password': 'fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8='}"}, {"name": "expect", "value": "{'username': '超级管理员', 'loginStatus': True}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021536308, "stop": 1747021536340, "uuid": "e9393968-6768-4f8b-90f3-fb74bf6f381d", "historyId": "db4660a4865247a399d925b9a4724cbd", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"name": "test_bpm[组织管理-保存组织参数-正向用例-中-post-http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams-query|json-case17-expect17-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "17af6069-3412-4d78-b014-6954f2a4a28b-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'保存组织参数'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}, {"name": "mime", "value": "'query|json'"}, {"name": "case", "value": "{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'test0428', 'value': 100}]}"}, {"name": "expect", "value": "{'state': True, 'message': '保存组织参数成功!', 'value': '', 'code': 200}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538872, "stop": 1747021538931, "uuid": "9beb3caf-5882-48f9-8312-0d9decce5e5f", "historyId": "7d3e66ec146aefcd8a2d784d037febd7", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "3f7a0260-085b-485c-8d08-2e73230a01dc", "befores": [{"name": "title", "status": "passed", "start": 1747021538640, "stop": 1747021538640}], "start": 1747021538640, "stop": 1747021538709}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-正向用例-正确的用户名和密码进行登录-高-POST-http://36.139.193.99:8088/auth-application/json-case0-expect0-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "fc033646-77d7-43d0-9a9c-b00c317e746a-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'正向用例-正确的用户名和密码进行登录'"}, {"name": "level", "value": "'高'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "{'username': 'admin', 'password': 'fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8='}"}, {"name": "expect", "value": "{'username': '超级管理员', 'loginStatus': True}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021537946, "stop": 1747021537979, "uuid": "efe4bdc2-8691-4175-8e51-9b4c158738ee", "historyId": "701b58e39f30069f0a2238de46204293", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "7276ac2a-3b29-4057-83dd-c9d219c346ff", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538429, "stop": 1747021538429}], "start": 1747021538429, "stop": 1747021538465}
\ No newline at end of file
{"uuid": "12996e1d-6af5-493d-95de-9b0de92af88b", "befores": [{"name": "title", "status": "passed", "start": 1747021536951, "stop": 1747021536951}], "start": 1747021536951, "stop": 1747021536987}
\ No newline at end of file
{"uuid": "0af17aac-6ae6-4160-83ae-43bb9bd8f610", "befores": [{"name": "level", "status": "passed", "start": 1747021537046, "stop": 1747021537046}], "start": 1747021537046, "stop": 1747021537091}
\ No newline at end of file
{"uuid": "75929954-9507-4fa7-840a-70ea500fbda9", "befores": [{"name": "title", "status": "passed", "start": 1747021538576, "stop": 1747021538576}], "start": 1747021538576, "stop": 1747021538633}
\ No newline at end of file
{"uuid": "5dbbed24-bfbc-4e6f-a8bb-32ae9d055503", "befores": [{"name": "api", "status": "passed", "start": 1747021537560, "stop": 1747021537560}], "start": 1747021537560, "stop": 1747021537603}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
INFO  root:__init__.py:44 执行的功能为:delete, 功能的描述为:执行删除的sql语句, 所在的文件为:E:\untitled\API2\common\db.py, 所在的行为:37
INFO  root:__init__.py:44 执行的功能为:select, 功能的描述为:执行查询的sql语句,并返回查询, 所在的文件为:E:\untitled\API2\common\db.py, 所在的行为:46
\ No newline at end of file
{"uuid": "819733a2-1ff2-464c-88ee-7f4a0798cac0", "befores": [{"name": "api", "status": "passed", "start": 1747021538527, "stop": 1747021538527}], "start": 1747021538527, "stop": 1747021538571}
\ No newline at end of file
{"uuid": "816f6cfe-9193-4eda-8bd0-47dfd7d3bb4c", "befores": [{"name": "level", "status": "passed", "start": 1747021536306, "stop": 1747021536306}], "start": 1747021536306, "stop": 1747021536359}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
请求的url为:http://36.139.193.99:8088/auth,
用例数据为:{"username": "admin",: "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8="},
期望数据为:{'message': '账号或密码错误'},
服务器返回的数据为:{"state":false,"message":"Unexpected character (':' (code 58)): was expecting double-quote to start field name\n at [Source: (PushbackInputStream); line: 1, column: 23]","code":200,"logId":"1921772320553705472"}
\ No newline at end of file
{"uuid": "35b46912-8bfb-421e-b4e8-b6edd86d285f", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538749, "stop": 1747021538749}], "start": 1747021538749, "stop": 1747021538807}
\ No newline at end of file
INFO  pytest_dependency:pytest_dependency.py:100 skip test_add_dem because it depends on test_bpm_dependency/test_auth.py::TestAuth::test_login
\ No newline at end of file
{"uuid": "1efd0193-5356-4442-bf09-e5e875db8f71", "befores": [{"name": "expect", "status": "passed", "start": 1747021538822, "stop": 1747021538822}], "start": 1747021538822, "stop": 1747021538859}
\ No newline at end of file
{"uuid": "bf38e92b-e99c-4c45-b8a7-832b48056f4c", "befores": [{"name": "expect", "status": "passed", "start": 1747021537560, "stop": 1747021537560}], "start": 1747021537560, "stop": 1747021537598}
\ No newline at end of file
{"uuid": "e5ffcfb5-59da-4e4d-bc90-9306647ecc60", "befores": [{"name": "req", "status": "passed", "start": 1747021536840, "stop": 1747021536840}], "start": 1747021536840, "stop": 1747021536880}
\ No newline at end of file
{"uuid": "19b2d802-0525-4318-9ef7-3d8087b2dd03", "befores": [{"name": "case", "status": "passed", "start": 1747021538577, "stop": 1747021538577}], "start": 1747021538577, "stop": 1747021538629}
\ No newline at end of file
{"uuid": "0f39089d-b702-49c9-ba65-208c0a9e9368", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538239, "stop": 1747021538239}], "start": 1747021538239, "stop": 1747021538309}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
用例数据为{"username": "admin","password": "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=","password": "123456"}
\ No newline at end of file
{"uuid": "585c3ece-8332-4e7a-b5e5-f02fafc5f3d4", "befores": [{"name": "update_key", "status": "passed", "start": 1747021536952, "stop": 1747021536952}], "start": 1747021536952, "stop": 1747021536979}
\ No newline at end of file
{"uuid": "44e8d692-1965-427e-9e63-97a3d7f4dcb1", "befores": [{"name": "module", "status": "passed", "start": 1747021537560, "stop": 1747021537560}], "start": 1747021537560, "stop": 1747021537604}
\ No newline at end of file
{"uuid": "55f41932-c06b-46d8-a019-158fb341cdcf", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538138, "stop": 1747021538139}], "start": 1747021538138, "stop": 1747021538176}
\ No newline at end of file
{"uuid": "2a01c4cf-5eb4-4e30-b339-3f9b592281c7", "befores": [{"name": "url", "status": "passed", "start": 1747021536951, "stop": 1747021536951}], "start": 1747021536951, "stop": 1747021536985}
\ No newline at end of file
{"uuid": "094a78ac-79cd-4bd6-8e84-80657fff7908", "befores": [{"name": "title", "status": "passed", "start": 1747021537609, "stop": 1747021537609}], "start": 1747021537609, "stop": 1747021537649}
\ No newline at end of file
{"uuid": "6f809f97-0727-4da0-bff7-7be46b2975c0", "befores": [{"name": "url", "status": "passed", "start": 1747021537515, "stop": 1747021537515}], "start": 1747021537515, "stop": 1747021537548}
\ No newline at end of file
{"uuid": "1e4725fe-54bb-4b11-8294-81f8cd8f54c9", "befores": [{"name": "level", "status": "passed", "start": 1747021538946, "stop": 1747021538946}], "start": 1747021538946, "stop": 1747021538987}
\ No newline at end of file
{"uuid": "8f4b3025-008f-4a8c-9365-c86d89090205", "befores": [{"name": "api", "status": "passed", "start": 1747021536994, "stop": 1747021536994}], "start": 1747021536994, "stop": 1747021537041}
\ No newline at end of file
{"uuid": "bf394bbb-9e33-4fd4-98e8-a31eaf4125fa", "befores": [{"name": "api", "status": "passed", "start": 1747021538190, "stop": 1747021538190}], "start": 1747021538190, "stop": 1747021538233}
\ No newline at end of file
{"uuid": "6c0900a1-efc8-489d-aa3e-6abaa106b4f1", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537047, "stop": 1747021537047}], "start": 1747021537047, "stop": 1747021537085}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
用例数据为{"username": "admin","password": "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8="}
\ No newline at end of file
{"uuid": "794555ee-ef31-4cfb-b717-d91d9d1bb651", "befores": [{"name": "case", "status": "passed", "start": 1747021537362, "stop": 1747021537362}], "start": 1747021537362, "stop": 1747021537385}
\ No newline at end of file
{"uuid": "0722c1c1-34b3-46b8-8f8d-eb2991d9f6b5", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537097, "stop": 1747021537097}], "start": 1747021537097, "stop": 1747021537131}
\ No newline at end of file
{"uuid": "a49fce21-a7c1-4720-9f55-c887b69cb9a8", "befores": [{"name": "mime", "status": "passed", "start": 1747021537609, "stop": 1747021537609}], "start": 1747021537609, "stop": 1747021537646}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
请求的url为:http://36.139.193.99:8088/auth,
用例数据为:{"username": "admin"},
期望数据为:{'message': '账号或密码错误'},
服务器返回的数据为:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1921772320989913088"}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
\ No newline at end of file
{"uuid": "5a1f0489-22c9-4245-bd7d-1333d26c516f", "befores": [{"name": "module", "status": "passed", "start": 1747021537655, "stop": 1747021537655}], "start": 1747021537655, "stop": 1747021537697}
\ No newline at end of file
{"uuid": "cf819b1f-ecfe-45cf-816c-70cfad993bc4", "befores": [{"name": "level", "status": "passed", "start": 1747021536995, "stop": 1747021536995}], "start": 1747021536995, "stop": 1747021537039}
\ No newline at end of file
{"uuid": "6ce60ccb-976b-4343-8184-8e15ee5f4e3b", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537047, "stop": 1747021537047}], "start": 1747021537047, "stop": 1747021537085}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的数据错误-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"password\": \"123456\"}-expect9-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t请求的url为:http://36.139.193.99:8088/auth, \n\t用例数据为:{\"username\": \"admin\",\"password\": \"123456\"}, \n\t期望数据为:{'message': '账号或密码错误'}, \n\t服务器返回的数据为:{\"state\":false,\"message\":\"解密密码异常,请检查RSA公钥和私钥配置\",\"code\":200,\"logId\":\"1921772322210455552\"}", "trace": "self = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F578CD0>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的数据错误'\nlevel = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json', case = '{\"username\": \"admin\",\"password\": \"123456\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_zhangsan\\test_bpm.py:28: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F578CD0>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的数据错误'\nlevel = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json', case = '{\"username\": \"admin\",\"password\": \"123456\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n assert expect[key] == res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t请求的url为:{url}, \\n\\t用例数据为:{case}, \\n\\t期望数据为:{expect}, \\n\\t服务器返回的数据为:{res.text}\")\nE AssertionError: 断言失败,\nE \t请求的url为:http://36.139.193.99:8088/auth, \nE \t用例数据为:{\"username\": \"admin\",\"password\": \"123456\"}, \nE \t期望数据为:{'message': '账号或密码错误'}, \nE \t服务器返回的数据为:{\"state\":false,\"message\":\"解密密码异常,请检查RSA公钥和私钥配置\",\"code\":200,\"logId\":\"1921772322210455552\"}\n\ntest_case\\test_zhangsan\\test_bpm.py:30: AssertionError"}, "attachments": [{"name": "log", "source": "0ee60966-6f3d-4eea-b52d-ce175344c699-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的数据错误'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": \"123456\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538430, "stop": 1747021538452, "uuid": "30a1075c-4169-4c1b-963e-16bbb40a1da8", "historyId": "0e7a571fb19d93fca555f1fc15b97b90", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的参数为特殊字符-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}-expect5-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t用例数据为{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}", "trace": "self = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F12B0>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的参数为特殊字符', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n> assert expect[key]==res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_bpm\\test_bpm.py:19: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F12B0>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的参数为特殊字符', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n assert expect[key]==res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t用例数据为{case}\")\nE AssertionError: 断言失败,\nE \t用例数据为{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}\n\ntest_case\\test_bpm\\test_bpm.py:21: AssertionError"}, "attachments": [{"name": "log", "source": "8669de0d-7d68-41d0-a45d-5d93084ff20f-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的参数为特殊字符'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021536841, "stop": 1747021536865, "uuid": "b5a2ab34-f778-40c3-a0f3-f2bca0905186", "historyId": "7349b39c0eaf0219095c3c65b71452e1", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "b583c34c-538d-4f21-a8c9-ee9febf41b28", "befores": [{"name": "api", "status": "passed", "start": 1747021538870, "stop": 1747021538870}], "start": 1747021538870, "stop": 1747021538941}
\ No newline at end of file
{"uuid": "4f664a64-ab4d-4ac5-8861-9b75ab1c16bc", "befores": [{"name": "level", "status": "passed", "start": 1747021538714, "stop": 1747021538714}], "start": 1747021538714, "stop": 1747021538741}
\ No newline at end of file
{"uuid": "a63dc921-0e29-4b55-ba28-7f8f03b9dec1", "befores": [{"name": "url", "status": "passed", "start": 1747021538190, "stop": 1747021538190}], "start": 1747021538190, "stop": 1747021538229}
\ No newline at end of file
{"uuid": "49bb8131-aef6-4606-b2c3-103b5196aa2d", "befores": [{"name": "req", "status": "passed", "start": 1747021536738, "stop": 1747021536738}], "start": 1747021536738, "stop": 1747021536780}
\ No newline at end of file
{"uuid": "ad881a32-c174-4830-9c00-ecae9ee8d16a", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537190, "stop": 1747021537190}], "start": 1747021537190, "stop": 1747021537284}
\ No newline at end of file
{"uuid": "42f694c1-5068-4383-800f-83fff2dd7bf9", "befores": [{"name": "url", "status": "passed", "start": 1747021537097, "stop": 1747021537097}], "start": 1747021537097, "stop": 1747021537135}
\ No newline at end of file
{"uuid": "a06b5591-973f-4b27-b417-373ca5c4022d", "befores": [{"name": "url", "status": "passed", "start": 1747021536367, "stop": 1747021536367}], "start": 1747021536367, "stop": 1747021536683}
\ No newline at end of file
{"name": "test_add_org", "status": "skipped", "statusDetails": {"message": "Skipped: test_add_org depends on test_bpm_dependency/test_auth.py::TestAuth::test_login", "trace": "('e:\\\\untitled\\\\venv\\\\lib\\\\site-packages\\\\pytest_dependency.py', 101, 'Skipped: test_add_org depends on test_bpm_dependency/test_auth.py::TestAuth::test_login')"}, "attachments": [{"name": "log", "source": "eda4656d-8dfa-410f-b702-cf1e2de5f45d-attachment.txt", "type": "text/plain"}], "start": 1747021537852, "stop": 1747021537852, "uuid": "5fed7349-2bde-4bae-bd6b-d85a6c6e5b64", "historyId": "f7d13324fa5be8896c9957870e56e4e0", "testCaseId": "f7d13324fa5be8896c9957870e56e4e0", "fullName": "test_case.test_bpm_dependency.test_org#test_add_org", "labels": [{"name": "tag", "value": "dependency(depends=['test_bpm_dependency/test_auth.py::TestAuth::test_login', 'test_bpm_dependency/test_dem.py::test_add_dem'], scope='session')"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_org"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_org"}]}
\ No newline at end of file
{"uuid": "12f724da-89b5-404a-b13d-32b493d6d456", "befores": [{"name": "api", "status": "passed", "start": 1747021537362, "stop": 1747021537362}], "start": 1747021537362, "stop": 1747021537390}
\ No newline at end of file
{"uuid": "21bd8e4e-39e0-442e-813f-c4ec04aac8ec", "befores": [{"name": "case", "status": "passed", "start": 1747021539044, "stop": 1747021539044}], "start": 1747021539044, "stop": 1747021539083}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的数据错误-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"password\": \"123456\"}-expect9-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t用例数据为{\"username\": \"admin\",\"password\": \"123456\"}", "trace": "self = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F15B0>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的数据错误', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"password\": \"123456\"}', expect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n> assert expect[key]==res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_bpm\\test_bpm.py:19: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F15B0>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的数据错误', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"password\": \"123456\"}', expect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n assert expect[key]==res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t用例数据为{case}\")\nE AssertionError: 断言失败,\nE \t用例数据为{\"username\": \"admin\",\"password\": \"123456\"}\n\ntest_case\\test_bpm\\test_bpm.py:21: AssertionError"}, "attachments": [{"name": "log", "source": "10811e6c-a2b1-43ae-99a4-38e8ed9749a2-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的数据错误'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": \"123456\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021537047, "stop": 1747021537072, "uuid": "1dcf100e-5d81-4e76-85cf-bb2008653d8c", "historyId": "95dc8e84e06c52d8f733ac9b7ef0cd46", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "504db1a1-9f35-44ff-8aec-d62a1c3fefe3", "befores": [{"name": "expect", "status": "passed", "start": 1747021538085, "stop": 1747021538085}], "start": 1747021538085, "stop": 1747021538122}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
INFO  root:__init__.py:45 执行的功能为:select, 功能的描述为:执行查询的sql语句,并返回查询, 所在的文件为:E:\untitled\APIAutoTest_v3\common\db.py, 所在的行为:46
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
请求的url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds,
用例数据为:id=需要更新,
期望数据为:{'message': '删除维度失败'},
服务器返回的数据为:{"state":false,"message":"删除维度失败,维度ids必填","code":200,"logId":"1921772324798341120"}
INFO  root:__init__.py:45 执行的功能为:close, 功能的描述为:先关闭游标对象,再关闭链接对象, 所在的文件为:E:\untitled\APIAutoTest_v3\common\db.py, 所在的行为:31
INFO  root:__init__.py:44 执行的功能为:close, 功能的描述为:先关闭游标对象,再关闭链接对象, 所在的文件为:E:\untitled\API2\common\db.py, 所在的行为:31
\ No newline at end of file
{"uuid": "54317a9a-23c5-47df-9532-d8ba833e3f05", "befores": [{"name": "expect", "status": "passed", "start": 1747021536789, "stop": 1747021536789}], "start": 1747021536789, "stop": 1747021536826}
\ No newline at end of file
{"uuid": "47894654-714e-43d5-ab4a-179c887f2db9", "befores": [{"name": "case", "status": "passed", "start": 1747021537560, "stop": 1747021537560}], "start": 1747021537560, "stop": 1747021537599}
\ No newline at end of file
{"uuid": "c57f3594-53a3-4789-af2e-ac5c0c91b57f", "befores": [{"name": "module", "status": "passed", "start": 1747021537513, "stop": 1747021537515}], "start": 1747021537513, "stop": 1747021537555}
\ No newline at end of file
{"uuid": "b63b29e8-10fb-44d6-b670-91e9ffd4a9b3", "befores": [{"name": "expect", "status": "passed", "start": 1747021537655, "stop": 1747021537655}], "start": 1747021537655, "stop": 1747021537690}
\ No newline at end of file
{"uuid": "463431b9-7eb9-4c38-84a5-3018f70fe33e", "befores": [{"name": "title", "status": "passed", "start": 1747021537995, "stop": 1747021537995}], "start": 1747021537995, "stop": 1747021538029}
\ No newline at end of file
{"uuid": "4abaaaea-8c67-4443-a05f-387cf59f418c", "befores": [{"name": "url", "status": "passed", "start": 1747021539044, "stop": 1747021539044}], "start": 1747021539044, "stop": 1747021539086}
\ No newline at end of file
{"name": "test_bpm[认证接口-刷新token-正向用例-中-GET-http://36.139.193.99:8088/refresh-None-None-expect12-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t请求的url为:http://36.139.193.99:8088/refresh, \n\t用例数据为:None, \n\t期望数据为:{'message': '刷新成功'}, \n\t服务器返回的数据为:{\"token\":\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3NDcxMDc2MDEsImlhdCI6MTc0NzAyMTIwMX0.7HpiQ9Rar01jFJlrbBdA5SBoJzhQNh-_Y-7xIFjmHmC-VwYrNq2xVu1OPZ1vVw9AJ-KddEJdwV646W763I2WfQ\",\"username\":\"admin\",\"account\":\"admin\",\"userId\":\"\",\"expiration\":86400,\"loginStatus\":true}", "trace": "self = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F578DC0>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '刷新token', title = '正向用例', level = '中'\nreq = 'GET', url = 'http://36.139.193.99:8088/refresh', mime = None, case = None, expect = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '刷新成功' == None\nE + where None = <built-in method get of dict object at 0x0000018E8F713840>('message')\nE + where <built-in method get of dict object at 0x0000018E8F713840> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTc0NzAyMTIwMX0.7HpiQ9Rar01jFJlrbBdA5SBoJzhQNh-_Y-7xIFjmHmC-VwYrNq2xVu1OPZ1vVw9AJ-KddEJdwV646W763I2WfQ', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTc0NzAyMTIwMX0.7HpiQ9Rar01jFJlrbBdA5SBoJzhQNh-_Y-7xIFjmHmC-VwYrNq2xVu1OPZ1vVw9AJ-KddEJdwV646W763I2WfQ', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_zhangsan\\test_bpm.py:28: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F578DC0>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '刷新token', title = '正向用例', level = '中'\nreq = 'GET', url = 'http://36.139.193.99:8088/refresh', mime = None, case = None, expect = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n assert expect[key] == res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t请求的url为:{url}, \\n\\t用例数据为:{case}, \\n\\t期望数据为:{expect}, \\n\\t服务器返回的数据为:{res.text}\")\nE AssertionError: 断言失败,\nE \t请求的url为:http://36.139.193.99:8088/refresh, \nE \t用例数据为:None, \nE \t期望数据为:{'message': '刷新成功'}, \nE \t服务器返回的数据为:{\"token\":\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3NDcxMDc2MDEsImlhdCI6MTc0NzAyMTIwMX0.7HpiQ9Rar01jFJlrbBdA5SBoJzhQNh-_Y-7xIFjmHmC-VwYrNq2xVu1OPZ1vVw9AJ-KddEJdwV646W763I2WfQ\",\"username\":\"admin\",\"account\":\"admin\",\"userId\":\"\",\"expiration\":86400,\"loginStatus\":true}\n\ntest_case\\test_zhangsan\\test_bpm.py:30: AssertionError"}, "attachments": [{"name": "log", "source": "dce8734c-040c-4f61-bc0a-ac82a1284233-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'刷新token'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'GET'"}, {"name": "url", "value": "'http://36.139.193.99:8088/refresh'"}, {"name": "mime", "value": "None"}, {"name": "case", "value": "None"}, {"name": "expect", "value": "{'message': '刷新成功'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538577, "stop": 1747021538614, "uuid": "414c4b39-9552-4997-b9cd-8d8ed17e8aa1", "historyId": "7c680352dc0e1b09fe3fcbb7d6a0ee87", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"name": "test_bpm[维度管理-根据维度编码获取维度信息-正向用例-中-get-http://36.139.193.99:8088/api/demension/v1/dem/getDem-query-code=testDemension-expect14-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "7568e685-d26d-4598-98ac-73e898b044bf-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'根据维度编码获取维度信息'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'get'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/getDem'"}, {"name": "mime", "value": "'query'"}, {"name": "case", "value": "'code=testDemension'"}, {"name": "expect", "value": "{'isDelete': '0'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538715, "stop": 1747021538732, "uuid": "a73a49d5-73dd-4e0b-a45f-1b19d4ec669e", "historyId": "dd1a62ebfc3a9c9b3fd0cac49c43cc48", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "cf40274d-1de3-402e-a7e8-c25663bdeb0d", "befores": [{"name": "url", "status": "passed", "start": 1747021536306, "stop": 1747021536306}], "start": 1747021536306, "stop": 1747021536358}
\ No newline at end of file
{"uuid": "0da15f26-28a7-46ab-a97f-5d7362612cae", "befores": [{"name": "title", "status": "passed", "start": 1747021538946, "stop": 1747021538946}], "start": 1747021538946, "stop": 1747021538988}
\ No newline at end of file
{"uuid": "a1a066f4-e5b6-4140-9229-0655f2e186ee", "befores": [{"name": "title", "status": "passed", "start": 1747021538037, "stop": 1747021538037}], "start": 1747021538037, "stop": 1747021538076}
\ No newline at end of file
{"uuid": "7f6be139-5223-472b-8ed0-b0a166e8f112", "children": ["e9393968-6768-4f8b-90f3-fb74bf6f381d", "7d457a8a-bf0a-45b6-b4a3-86d17d800d17", "8b3dd2ae-c769-49fe-9686-8504407105f2", "3e164c98-e772-4cea-ae9a-0bcb9f222bd0", "b02e04c1-c9e6-4323-8792-d0ddab510cec", "b5a2ab34-f778-40c3-a0f3-f2bca0905186", "e69ec35c-6cac-4239-9a9b-695bddbdd5d1", "1cc7c14d-904d-4e9e-ba53-ebc093f8fa60", "86f0413e-59b6-4b07-9b07-f8a795c8b323", "1dcf100e-5d81-4e76-85cf-bb2008653d8c", "dd194a69-d511-4efc-b430-3e96a4e373ce", "59924bd0-adf6-470b-8a14-08bb4f6bf1c5", "31dd3964-d5db-4da9-932b-f9d64c3069af", "80d5c810-0b41-4a59-88df-14004319b4e6", "cfd585ab-9634-4863-b21e-8e267dbbaac1", "47b49b54-1d61-4a7c-a18f-0ded64c86cfc", "1ede0364-04ba-4d29-9773-40292c261aed", "d8a9ae56-4f07-4f27-97ce-166a0226e990", "123c642a-a33b-493c-8ee8-d9fecb1c2c94", "937e70c5-3d62-4df4-ade2-67a7f1d98d35", "ad6159cf-ad22-4302-b7a1-96885abf4b8a"], "befores": [{"name": "req_fix", "status": "passed", "start": 1747021536213, "stop": 1747021536305}], "afters": [{"name": "req_fix::0", "status": "passed", "start": 1747021539093, "stop": 1747021539095}], "start": 1747021536213, "stop": 1747021539095}
\ No newline at end of file
{"uuid": "6e65f1bf-8f04-457e-bc64-3ea843adf759", "befores": [{"name": "case", "status": "passed", "start": 1747021536367, "stop": 1747021536367}], "start": 1747021536367, "stop": 1747021536681}
\ No newline at end of file
{"uuid": "ce88fb76-433b-4c37-a8fa-4011b95e030b", "befores": [{"name": "title", "status": "passed", "start": 1747021538714, "stop": 1747021538714}], "start": 1747021538714, "stop": 1747021538743}
\ No newline at end of file
{"uuid": "f8af9679-e6e7-446c-b4af-399387a560f9", "befores": [{"name": "case", "status": "passed", "start": 1747021536738, "stop": 1747021536738}], "start": 1747021536738, "stop": 1747021536778}
\ No newline at end of file
{"uuid": "19bf2c97-4a39-44f3-9c98-161823bcd6f3", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538527, "stop": 1747021538527}], "start": 1747021538527, "stop": 1747021538562}
\ No newline at end of file
{"uuid": "d04a57df-790e-4129-bac0-352862d8decc", "befores": [{"name": "req", "status": "passed", "start": 1747021537655, "stop": 1747021537655}], "start": 1747021537655, "stop": 1747021537694}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
\ No newline at end of file
{"uuid": "4115307d-661b-4dc3-8646-134dac791711", "befores": [{"name": "level", "status": "passed", "start": 1747021538640, "stop": 1747021538640}], "start": 1747021538640, "stop": 1747021538708}
\ No newline at end of file
{"uuid": "54834294-0eb3-4787-93d1-7792f714ed16", "befores": [{"name": "case", "status": "passed", "start": 1747021538822, "stop": 1747021538822}], "start": 1747021538822, "stop": 1747021538860}
\ No newline at end of file
{"uuid": "fa8e0c54-bf80-4e1f-baed-145d5f4b5d13", "children": ["2ed2561e-17f0-4060-95fa-9e93d0f1c705", "248856bb-aaef-45a7-b8f6-3fd1e5bdf89e", "afa84eea-0e5a-4731-b2b0-056e197c6f8f", "5fed7349-2bde-4bae-bd6b-d85a6c6e5b64"], "befores": [{"name": "req_fix", "status": "passed", "start": 1747021537702, "stop": 1747021537803}], "afters": [{"name": "req_fix::0", "status": "passed", "start": 1747021539092, "stop": 1747021539092}], "start": 1747021537702, "stop": 1747021539092}
\ No newline at end of file
{"uuid": "8f3d887b-21f7-461d-b6f9-8a99b3ee777b", "befores": [{"name": "expect", "status": "passed", "start": 1747021538715, "stop": 1747021538715}], "start": 1747021538715, "stop": 1747021538737}
\ No newline at end of file
{"uuid": "a4e07c03-e6de-4543-83db-7805139613fd", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021536951, "stop": 1747021536951}], "start": 1747021536951, "stop": 1747021536980}
\ No newline at end of file
{"uuid": "ceb3de46-96c2-4b54-9a53-469970accca2", "befores": [{"name": "module", "status": "passed", "start": 1747021537362, "stop": 1747021537362}], "start": 1747021537362, "stop": 1747021537391}
\ No newline at end of file
{"uuid": "ef9d87f1-7125-4e48-b98b-aeb3eda22294", "befores": [{"name": "case", "status": "passed", "start": 1747021538238, "stop": 1747021538238}], "start": 1747021538238, "stop": 1747021538312}
\ No newline at end of file
{"uuid": "2f026a82-97b8-4980-8379-432612198d85", "befores": [{"name": "url", "status": "passed", "start": 1747021538381, "stop": 1747021538381}], "start": 1747021538381, "stop": 1747021538418}
\ No newline at end of file
{"uuid": "9268c2a2-fd15-46ea-b908-5267e99ae2c8", "befores": [{"name": "req", "status": "passed", "start": 1747021536888, "stop": 1747021536888}], "start": 1747021536888, "stop": 1747021536944}
\ No newline at end of file
{"uuid": "36e15214-558a-443a-9415-1e8e7fa22c5a", "befores": [{"name": "mime", "status": "passed", "start": 1747021537143, "stop": 1747021537143}], "start": 1747021537143, "stop": 1747021537180}
\ No newline at end of file
{"uuid": "af25909a-1f24-4060-9c5b-939e5fd752c6", "befores": [{"name": "req", "status": "passed", "start": 1747021538946, "stop": 1747021538946}], "start": 1747021538946, "stop": 1747021538987}
\ No newline at end of file
{"uuid": "12742c84-e89f-49cb-9947-7c7c2b06431b", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538324, "stop": 1747021538324}], "start": 1747021538324, "stop": 1747021538368}
\ No newline at end of file
{"uuid": "a6170482-21c7-4166-9eba-d82af0c5b7b0", "befores": [{"name": "case", "status": "passed", "start": 1747021538323, "stop": 1747021538323}], "start": 1747021538323, "stop": 1747021538369}
\ No newline at end of file
{"uuid": "eec98703-6b08-4236-a2c0-b0420eda85f8", "befores": [{"name": "expect", "status": "passed", "start": 1747021537143, "stop": 1747021537143}], "start": 1747021537143, "stop": 1747021537179}
\ No newline at end of file
{"uuid": "759ca3e3-c7c7-444f-b97b-8278b31c3e4b", "befores": [{"name": "update_key", "status": "passed", "start": 1747021536368, "stop": 1747021536368}], "start": 1747021536368, "stop": 1747021536676}
\ No newline at end of file
{"uuid": "4950eb99-1df1-454e-8daf-92581dfdc43a", "befores": [{"name": "case", "status": "passed", "start": 1747021536840, "stop": 1747021536840}], "start": 1747021536840, "stop": 1747021536878}
\ No newline at end of file
{"uuid": "88b80f32-2666-4d44-abf1-a5c4d509d60a", "befores": [{"name": "level", "status": "passed", "start": 1747021538429, "stop": 1747021538429}], "start": 1747021538429, "stop": 1747021538470}
\ No newline at end of file
{"uuid": "8d68b7ec-f1e2-4ac7-ac32-4b5ce790626f", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538239, "stop": 1747021538239}], "start": 1747021538239, "stop": 1747021538310}
\ No newline at end of file
{"uuid": "e7ba7e7a-8aaf-44a1-a64b-0d7295401e02", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021536951, "stop": 1747021536951}], "start": 1747021536951, "stop": 1747021536981}
\ No newline at end of file
{"uuid": "cf111bfb-c905-483c-90dd-758d04040659", "befores": [{"name": "case", "status": "passed", "start": 1747021536889, "stop": 1747021536889}], "start": 1747021536889, "stop": 1747021536940}
\ No newline at end of file
{"uuid": "79643f03-3618-4402-a759-6ce35db75b1a", "befores": [{"name": "req", "status": "passed", "start": 1747021538037, "stop": 1747021538037}], "start": 1747021538037, "stop": 1747021538073}
\ No newline at end of file
{"uuid": "a73f3e58-433c-4e78-a869-d3994fd0119c", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537143, "stop": 1747021537143}], "start": 1747021537143, "stop": 1747021537176}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
请求的url为:http://36.139.193.99:8088/auth,
用例数据为:{"username": "admin","password": "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8="},
期望数据为:{'message': '账号或密码错误'},
服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3NDcxMDc2MDAsImlhdCI6MTc0NzAyMTIwMH0.xsT-DVC-kCZ_NABXPn0kSFLB3J2uk0SOCQeVHu-HDY1_vjukFzCIO4X5hlVy4bt_HaIYOT8jvg1Bq27Yp3RIhw","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
{"uuid": "2a34c984-e0cc-4087-919d-0850d6e63008", "befores": [{"name": "level", "status": "passed", "start": 1747021536738, "stop": 1747021536738}], "start": 1747021536738, "stop": 1747021536781}
\ No newline at end of file
{"uuid": "545625e1-edac-4367-ae8e-c2fd73d09b8e", "children": ["e9393968-6768-4f8b-90f3-fb74bf6f381d", "7d457a8a-bf0a-45b6-b4a3-86d17d800d17", "8b3dd2ae-c769-49fe-9686-8504407105f2", "3e164c98-e772-4cea-ae9a-0bcb9f222bd0", "b02e04c1-c9e6-4323-8792-d0ddab510cec", "b5a2ab34-f778-40c3-a0f3-f2bca0905186", "e69ec35c-6cac-4239-9a9b-695bddbdd5d1", "1cc7c14d-904d-4e9e-ba53-ebc093f8fa60", "86f0413e-59b6-4b07-9b07-f8a795c8b323", "1dcf100e-5d81-4e76-85cf-bb2008653d8c", "dd194a69-d511-4efc-b430-3e96a4e373ce", "59924bd0-adf6-470b-8a14-08bb4f6bf1c5", "31dd3964-d5db-4da9-932b-f9d64c3069af", "80d5c810-0b41-4a59-88df-14004319b4e6", "cfd585ab-9634-4863-b21e-8e267dbbaac1", "47b49b54-1d61-4a7c-a18f-0ded64c86cfc", "1ede0364-04ba-4d29-9773-40292c261aed", "d8a9ae56-4f07-4f27-97ce-166a0226e990", "123c642a-a33b-493c-8ee8-d9fecb1c2c94", "937e70c5-3d62-4df4-ade2-67a7f1d98d35", "ad6159cf-ad22-4302-b7a1-96885abf4b8a", "2ed2561e-17f0-4060-95fa-9e93d0f1c705", "248856bb-aaef-45a7-b8f6-3fd1e5bdf89e", "afa84eea-0e5a-4731-b2b0-056e197c6f8f", "5fed7349-2bde-4bae-bd6b-d85a6c6e5b64", "efe4bdc2-8691-4175-8e51-9b4c158738ee", "f4654f3f-4dfb-4217-a104-4befcfbbb941", "ef2974dd-5e41-40cf-97f6-10ea03a1c1f9", "0a2f97d7-007d-494b-8527-5118717fce2a", "978895d8-8ffe-4e6e-af09-fce7bbbdf410", "d7f7e40d-e6de-40c9-a67a-b2777a9c7708", "d33b5a51-270e-42e5-af0f-929339086445", "ac739aa8-208f-4d37-8790-f08b8f10cde0", "1e9a6eab-5036-4472-8f0e-0417cae44b53", "30a1075c-4169-4c1b-963e-16bbb40a1da8", "c7942f57-9d04-4443-bbd7-21d46a13995f", "f354970d-0d48-4eca-9474-54d41f82c837", "414c4b39-9552-4997-b9cd-8d8ed17e8aa1", "26420fe6-66d1-4007-91f8-180dd7a40cbc", "a73a49d5-73dd-4e0b-a45f-1b19d4ec669e", "17b97716-018d-447f-bff0-d91cfeea1715", "26e7f89f-e88b-4989-907f-c8e004b8d176", "9beb3caf-5882-48f9-8312-0d9decce5e5f", "7d99ee4e-3c41-4cac-a8d0-4de89d4a7487", "82b29b74-2c32-42d5-9476-da9d4fe6216f", "16b05fd2-a28b-4e60-b060-802097ff36eb"], "befores": [{"name": "_session_faker", "status": "passed", "start": 1747021536065, "stop": 1747021536213}], "start": 1747021536065, "stop": 1747021539096}
\ No newline at end of file
{"uuid": "b623bf04-31e2-444a-96e0-0995015df38f", "befores": [{"name": "case", "status": "passed", "start": 1747021538872, "stop": 1747021538872}], "start": 1747021538872, "stop": 1747021538935}
\ No newline at end of file
{"name": "test_bpm[维度管理-根据维度编码删除维度-反向用例-ids为id-中-DELETE-http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds-query-id=需要更新-expect20-select-select ID_ from uc_demension where CODE_=\"testDemension\";-需要更新]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t用例数据为id=需要更新", "trace": "self = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4C7A30>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '维度管理', api = '根据维度编码删除维度', title = '反向用例-ids为id', level = '中', req = 'DELETE', url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'\nmime = 'query', case = 'id=需要更新', expect = {'message': '删除维度失败'}, sql_type = 'select', sql_data = 'select ID_ from uc_demension where CODE_=\"testDemension\";'\nupdate_key = '需要更新'\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n> assert expect[key]==res.json().get(key)\nE AssertionError: assert '删除维度失败' == '删除维度失败,维度ids必填'\nE \nE - 删除维度失败,维度ids必填\nE + 删除维度失败\n\ntest_case\\test_bpm\\test_bpm.py:19: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4C7A30>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '维度管理', api = '根据维度编码删除维度', title = '反向用例-ids为id', level = '中', req = 'DELETE', url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'\nmime = 'query', case = 'id=需要更新', expect = {'message': '删除维度失败'}, sql_type = 'select', sql_data = 'select ID_ from uc_demension where CODE_=\"testDemension\";'\nupdate_key = '需要更新'\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n assert expect[key]==res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t用例数据为{case}\")\nE AssertionError: 断言失败,\nE \t用例数据为id=需要更新\n\ntest_case\\test_bpm\\test_bpm.py:21: AssertionError"}, "attachments": [{"name": "log", "source": "94a0ef34-fcdd-4039-9f70-6d247e8aa15c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'根据维度编码删除维度'"}, {"name": "title", "value": "'反向用例-ids为id'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'DELETE'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case", "value": "'id=需要更新'"}, {"name": "expect", "value": "{'message': '删除维度失败'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'select ID_ from uc_demension where CODE_=\"testDemension\";'"}, {"name": "update_key", "value": "'需要更新'"}], "start": 1747021537656, "stop": 1747021537678, "uuid": "ad6159cf-ad22-4302-b7a1-96885abf4b8a", "historyId": "fa566eaf579c6b50275b0a55ae3cfa58", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "19b5ae15-f622-4e69-a3f1-1a7aa2d63c61", "befores": [{"name": "api", "status": "passed", "start": 1747021537655, "stop": 1747021537655}], "start": 1747021537655, "stop": 1747021537696}
\ No newline at end of file
{"uuid": "fa337def-117c-4d48-92cc-eff070930b31", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538993, "stop": 1747021538993}], "start": 1747021538993, "stop": 1747021539032}
\ No newline at end of file
{"name": "test_bpm[维度管理-根据维度编码删除维度-正向用例-中-DELETE-http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds-query-case19-expect19-select-select ID_ from uc_demension where CODE_=\"testDemension\";-ids]", "status": "passed", "attachments": [{"name": "log", "source": "293ca5e5-8d1f-4fdd-b1d4-8b6e742dde3b-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'根据维度编码删除维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'DELETE'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case", "value": "{'ids': '需要更新'}"}, {"name": "expect", "value": "{'message': '删除维度成功!'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'select ID_ from uc_demension where CODE_=\"testDemension\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1747021537610, "stop": 1747021537640, "uuid": "937e70c5-3d62-4df4-ade2-67a7f1d98d35", "historyId": "6211de547d12453b4d43295d6898415e", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"name": "test_get_dem_msg", "status": "skipped", "statusDetails": {"message": "Skipped: test_get_dem_msg depends on test_bpm_dependency/test_dem.py::test_add_dem", "trace": "('e:\\\\untitled\\\\venv\\\\lib\\\\site-packages\\\\pytest_dependency.py', 101, 'Skipped: test_get_dem_msg depends on test_bpm_dependency/test_dem.py::test_add_dem')"}, "attachments": [{"name": "log", "source": "7992dcf0-2b2b-46de-acfa-1534499b8c3d-attachment.txt", "type": "text/plain"}], "start": 1747021537847, "stop": 1747021537847, "uuid": "afa84eea-0e5a-4731-b2b0-056e197c6f8f", "historyId": "90cd6f3bc6f1cfa2b74132a2925eee99", "testCaseId": "90cd6f3bc6f1cfa2b74132a2925eee99", "fullName": "test_case.test_bpm_dependency.test_dem#test_get_dem_msg", "labels": [{"name": "tag", "value": "dependency(depends=['test_bpm_dependency/test_dem.py::test_add_dem'], scope='session')"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_dem"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_dem"}]}
\ No newline at end of file
{"uuid": "ce8a346c-d916-40fa-b110-9109e3850cbe", "befores": [{"name": "case", "status": "passed", "start": 1747021538993, "stop": 1747021538993}], "start": 1747021538993, "stop": 1747021539034}
\ No newline at end of file
{"uuid": "55ab49d0-a802-4cfe-ab20-22646225f2a3", "befores": [{"name": "module", "status": "passed", "start": 1747021538640, "stop": 1747021538640}], "start": 1747021538640, "stop": 1747021538710}
\ No newline at end of file
{"uuid": "31b39a3b-5d8d-4a6d-a95c-01aa14115008", "befores": [{"name": "module", "status": "passed", "start": 1747021536994, "stop": 1747021536994}], "start": 1747021536994, "stop": 1747021537042}
\ No newline at end of file
{"uuid": "ed67e6b1-0e1c-498a-9db2-76786c83367d", "befores": [{"name": "api", "status": "passed", "start": 1747021537143, "stop": 1747021537143}], "start": 1747021537143, "stop": 1747021537184}
\ No newline at end of file
{"uuid": "206ee9f0-0b16-4108-8d09-e8a919323e8c", "befores": [{"name": "expect", "status": "passed", "start": 1747021538429, "stop": 1747021538429}], "start": 1747021538429, "stop": 1747021538466}
\ No newline at end of file
{"uuid": "1570df02-2e2f-4d29-8a41-c902f206d8b0", "befores": [{"name": "case", "status": "passed", "start": 1747021538138, "stop": 1747021538138}], "start": 1747021538138, "stop": 1747021538178}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
\ No newline at end of file
{"uuid": "bdd69396-6e6b-433a-8bc7-be4106503599", "befores": [{"name": "mime", "status": "passed", "start": 1747021537046, "stop": 1747021537046}], "start": 1747021537046, "stop": 1747021537088}
\ No newline at end of file
{"uuid": "3f02dc83-d810-483f-affe-655dbb6367f7", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537995, "stop": 1747021537995}], "start": 1747021537995, "stop": 1747021538024}
\ No newline at end of file
{"uuid": "a27c11b3-2c6d-4713-a48e-142efe9c1ae6", "befores": [{"name": "mime", "status": "passed", "start": 1747021538993, "stop": 1747021538993}], "start": 1747021538993, "stop": 1747021539036}
\ No newline at end of file
{"uuid": "b7ba8e43-ee1a-467e-9be4-7af122af1443", "befores": [{"name": "case", "status": "passed", "start": 1747021537945, "stop": 1747021537945}], "start": 1747021537945, "stop": 1747021537984}
\ No newline at end of file
{"uuid": "ae2398c4-0279-41cc-ac4d-d9a29806e051", "befores": [{"name": "expect", "status": "passed", "start": 1747021536951, "stop": 1747021536951}], "start": 1747021536951, "stop": 1747021536981}
\ No newline at end of file
{"uuid": "59df2fd3-818c-46e9-b7a6-ccccb72fc214", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537190, "stop": 1747021537190}], "start": 1747021537190, "stop": 1747021537282}
\ No newline at end of file
{"uuid": "ab004a0a-861f-4f14-9536-1df252065670", "befores": [{"name": "case", "status": "passed", "start": 1747021537297, "stop": 1747021537297}], "start": 1747021537297, "stop": 1747021537352}
\ No newline at end of file
{"uuid": "78c625dd-fa0e-452c-bc4b-4ad1f6f6904e", "befores": [{"name": "expect", "status": "passed", "start": 1747021538527, "stop": 1747021538527}], "start": 1747021538527, "stop": 1747021538563}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
请求的url为:http://36.139.193.99:8088/auth,
用例数据为:{"username": "admin","password": "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=","password": "123456"},
期望数据为:{'message': '账号或密码错误'},
服务器返回的数据为:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1921772320755032064"}
\ No newline at end of file
{"name": "test_bpm[组织管理-保存组织参数-正向用例-中-post-http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams-query|json-case16-expect16-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "0bc0ae87-a437-4b64-a24d-f2d198ca38a5-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'保存组织参数'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}, {"name": "mime", "value": "'query|json'"}, {"name": "case", "value": "{'query': 'orgCode=testAddOrg', 'body': '[{\"alias\":\"test0428\",\"value\":500}]'}"}, {"name": "expect", "value": "{'state': True, 'message': '保存组织参数成功!', 'value': '', 'code': 200}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021537463, "stop": 1747021537501, "uuid": "1ede0364-04ba-4d29-9773-40292c261aed", "historyId": "8687b4a8fef8327a1773b301d65e72ee", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "1909711f-bcc2-4504-b660-0c4b02e3cd1d", "befores": [{"name": "case", "status": "passed", "start": 1747021538946, "stop": 1747021538946}], "start": 1747021538946, "stop": 1747021538984}
\ No newline at end of file
INFO  pytest_dependency:pytest_dependency.py:100 skip test_get_dem_msg because it depends on test_bpm_dependency/test_dem.py::test_add_dem
\ No newline at end of file
{"uuid": "cb5642db-5289-4bf2-be0c-bb3489714b22", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537946, "stop": 1747021537946}], "start": 1747021537946, "stop": 1747021537980}
\ No newline at end of file
{"uuid": "dd8fe3d0-f135-47f1-aeb4-72dbab2d3f49", "befores": [{"name": "req", "status": "passed", "start": 1747021538381, "stop": 1747021538381}], "start": 1747021538381, "stop": 1747021538419}
\ No newline at end of file
{"uuid": "1d95b377-9fa2-4080-bce8-c8d5e85be0ec", "befores": [{"name": "api", "status": "passed", "start": 1747021538323, "stop": 1747021538323}], "start": 1747021538323, "stop": 1747021538374}
\ No newline at end of file
{"uuid": "38f25a0a-9f69-4374-af37-5c868b028e2f", "befores": [{"name": "req", "status": "passed", "start": 1747021538429, "stop": 1747021538429}], "start": 1747021538429, "stop": 1747021538469}
\ No newline at end of file
{"uuid": "bdaa399c-c24b-4075-939b-bd79ae575776", "children": ["efe4bdc2-8691-4175-8e51-9b4c158738ee", "f4654f3f-4dfb-4217-a104-4befcfbbb941", "ef2974dd-5e41-40cf-97f6-10ea03a1c1f9", "0a2f97d7-007d-494b-8527-5118717fce2a", "978895d8-8ffe-4e6e-af09-fce7bbbdf410", "d7f7e40d-e6de-40c9-a67a-b2777a9c7708", "d33b5a51-270e-42e5-af0f-929339086445", "ac739aa8-208f-4d37-8790-f08b8f10cde0", "1e9a6eab-5036-4472-8f0e-0417cae44b53", "30a1075c-4169-4c1b-963e-16bbb40a1da8", "c7942f57-9d04-4443-bbd7-21d46a13995f", "f354970d-0d48-4eca-9474-54d41f82c837", "414c4b39-9552-4997-b9cd-8d8ed17e8aa1", "26420fe6-66d1-4007-91f8-180dd7a40cbc", "a73a49d5-73dd-4e0b-a45f-1b19d4ec669e", "17b97716-018d-447f-bff0-d91cfeea1715", "26e7f89f-e88b-4989-907f-c8e004b8d176", "9beb3caf-5882-48f9-8312-0d9decce5e5f", "7d99ee4e-3c41-4cac-a8d0-4de89d4a7487", "82b29b74-2c32-42d5-9476-da9d4fe6216f", "16b05fd2-a28b-4e60-b060-802097ff36eb"], "befores": [{"name": "req_fix", "status": "passed", "start": 1747021537859, "stop": 1747021537944}], "afters": [{"name": "req_fix::0", "status": "passed", "start": 1747021539090, "stop": 1747021539090}], "start": 1747021537859, "stop": 1747021539091}
\ No newline at end of file
{"uuid": "ebb5e8c2-6812-49f2-a69f-8838ea832edb", "befores": [{"name": "url", "status": "passed", "start": 1747021537560, "stop": 1747021537560}], "start": 1747021537560, "stop": 1747021537601}
\ No newline at end of file
{"uuid": "4db9d819-f346-498b-a04f-8dcfb87381c5", "befores": [{"name": "level", "status": "passed", "start": 1747021538527, "stop": 1747021538527}], "start": 1747021538527, "stop": 1747021538569}
\ No newline at end of file
{"name": "test_add_dem", "status": "skipped", "statusDetails": {"message": "Skipped: test_add_dem depends on test_bpm_dependency/test_auth.py::TestAuth::test_login", "trace": "('e:\\\\untitled\\\\venv\\\\lib\\\\site-packages\\\\pytest_dependency.py', 101, 'Skipped: test_add_dem depends on test_bpm_dependency/test_auth.py::TestAuth::test_login')"}, "attachments": [{"name": "log", "source": "4de00753-0698-4cce-99c5-cd819b7b51ea-attachment.txt", "type": "text/plain"}], "start": 1747021537843, "stop": 1747021537843, "uuid": "248856bb-aaef-45a7-b8f6-3fd1e5bdf89e", "historyId": "de4a055621280e3226d3dbd2768a235d", "testCaseId": "de4a055621280e3226d3dbd2768a235d", "fullName": "test_case.test_bpm_dependency.test_dem#test_add_dem", "labels": [{"name": "tag", "value": "dependency(depends=['test_bpm_dependency/test_auth.py::TestAuth::test_login'], scope='session')"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_dem"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_dem"}]}
\ No newline at end of file
{"name": "test_bpm[组织管理-添加组织-正向用例-高-post-http://36.139.193.99:8088/api/org/v1/org/addOrg-json-case15-expect15-delete|select-sql_data15-demId]", "status": "passed", "attachments": [{"name": "log", "source": "4bda1587-e5a7-42c3-b998-608a211891a1-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'添加组织'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}, {"name": "req", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case", "value": "{'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect", "value": "{'message': '添加组织成功!'}"}, {"name": "sql_type", "value": "'delete|select'"}, {"name": "sql_data", "value": "{'select': 'select ID_ from uc_demension where CODE_=\"testDemension\";', 'delete': 'delete from uc_org where CODE_=\"testAddOrg\";'}"}, {"name": "update_key", "value": "'demId'"}], "start": 1747021537397, "stop": 1747021537446, "uuid": "47b49b54-1d61-4a7c-a18f-0ded64c86cfc", "historyId": "2e2e33bde0712809893928f75b550885", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "e6171a90-52d1-4928-99b5-49b298df7406", "befores": [{"name": "url", "status": "passed", "start": 1747021537189, "stop": 1747021537189}], "start": 1747021537189, "stop": 1747021537288}
\ No newline at end of file
{"uuid": "409b3777-8389-4a46-af76-2fbd7ea9a0d0", "befores": [{"name": "case", "status": "passed", "start": 1747021537046, "stop": 1747021537046}], "start": 1747021537046, "stop": 1747021537087}
\ No newline at end of file
{"uuid": "d5f7a013-25a3-49f6-a10a-1a6b168e5a72", "befores": [{"name": "module", "status": "passed", "start": 1747021538576, "stop": 1747021538576}], "start": 1747021538576, "stop": 1747021538635}
\ No newline at end of file
{"uuid": "26270c57-98d2-4385-bd4c-560377c6b4bd", "befores": [{"name": "level", "status": "passed", "start": 1747021537462, "stop": 1747021537462}], "start": 1747021537462, "stop": 1747021537509}
\ No newline at end of file
{"uuid": "cc4941dc-bbf9-47af-8531-5c1bfc8703c2", "befores": [{"name": "expect", "status": "passed", "start": 1747021537097, "stop": 1747021537097}], "start": 1747021537097, "stop": 1747021537132}
\ No newline at end of file
{"uuid": "cebb9cdc-fb19-4409-bba3-f904bc0b75fc", "befores": [{"name": "expect", "status": "passed", "start": 1747021536367, "stop": 1747021536367}], "start": 1747021536367, "stop": 1747021536680}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
\ No newline at end of file
{"uuid": "df9855db-1def-4005-b7c7-10040692cd8b", "befores": [{"name": "req", "status": "passed", "start": 1747021538640, "stop": 1747021538640}], "start": 1747021538640, "stop": 1747021538707}
\ No newline at end of file
{"uuid": "5b452664-0c88-4136-bb84-d769fb11a525", "befores": [{"name": "mime", "status": "passed", "start": 1747021536306, "stop": 1747021536306}], "start": 1747021536306, "stop": 1747021536357}
\ No newline at end of file
{"uuid": "5f4e02c6-447c-44df-bb7e-477d4d5691a7", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538190, "stop": 1747021538190}], "start": 1747021538190, "stop": 1747021538226}
\ No newline at end of file
{"uuid": "48f6ff88-ef9e-4692-9cd8-cac92e2428bf", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537515, "stop": 1747021537515}], "start": 1747021537515, "stop": 1747021537544}
\ No newline at end of file
{"uuid": "76b5cb99-ff8f-4a7b-b381-c89d7b6bdafd", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538477, "stop": 1747021538477}], "start": 1747021538477, "stop": 1747021538511}
\ No newline at end of file
{"uuid": "82c4c84d-8e69-4578-b45c-f16845267748", "befores": [{"name": "case", "status": "passed", "start": 1747021538715, "stop": 1747021538715}], "start": 1747021538715, "stop": 1747021538738}
\ No newline at end of file
{"uuid": "d6f52b5d-9bf3-4812-a352-14db3a8e1567", "befores": [{"name": "module", "status": "passed", "start": 1747021536691, "stop": 1747021536691}], "start": 1747021536691, "stop": 1747021536732}
\ No newline at end of file
{"uuid": "3d4382ba-deae-42c2-b13b-48d9a3acb36b", "befores": [{"name": "api", "status": "passed", "start": 1747021537995, "stop": 1747021537995}], "start": 1747021537995, "stop": 1747021538030}
\ No newline at end of file
{"uuid": "9c3cdffa-d874-496e-a4a5-da281cf40a83", "befores": [{"name": "url", "status": "passed", "start": 1747021537046, "stop": 1747021537046}], "start": 1747021537046, "stop": 1747021537089}
\ No newline at end of file
{"uuid": "189e21d8-4afb-4c4c-ace6-f68ca3e4572a", "befores": [{"name": "req", "status": "passed", "start": 1747021537189, "stop": 1747021537189}], "start": 1747021537189, "stop": 1747021537289}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
用例数据为{"username": "admin","♠♣▣▤▥▦▩◘◙◈♫": "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8="}
\ No newline at end of file
{"uuid": "300387ca-7554-45ba-a3e8-f3bff06a2b20", "befores": [{"name": "req", "status": "passed", "start": 1747021538748, "stop": 1747021538748}], "start": 1747021538748, "stop": 1747021538813}
\ No newline at end of file
{"uuid": "b5c0d490-dc9f-435a-b7b0-d2ad13ad067d", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538872, "stop": 1747021538872}], "start": 1747021538872, "stop": 1747021538932}
\ No newline at end of file
{"uuid": "1be43dd0-0564-431f-9ce3-c29c1f6f1980", "befores": [{"name": "title", "status": "passed", "start": 1747021538084, "stop": 1747021538084}], "start": 1747021538084, "stop": 1747021538129}
\ No newline at end of file
{"uuid": "25a142b5-d34e-407b-a56e-977613b106d6", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538381, "stop": 1747021538381}], "start": 1747021538381, "stop": 1747021538412}
\ No newline at end of file
{"uuid": "c3425f55-85b0-49e1-8191-ed393a96fc71", "befores": [{"name": "req", "status": "passed", "start": 1747021538476, "stop": 1747021538476}], "start": 1747021538476, "stop": 1747021538518}
\ No newline at end of file
{"uuid": "6cd223c6-e0e6-4a7b-bb14-b872b3f1eadc", "befores": [{"name": "api", "status": "passed", "start": 1747021538821, "stop": 1747021538821}], "start": 1747021538821, "stop": 1747021538865}
\ No newline at end of file
{"uuid": "ac871904-f57c-4b86-a84c-471a09510627", "befores": [{"name": "req", "status": "passed", "start": 1747021538190, "stop": 1747021538190}], "start": 1747021538190, "stop": 1747021538230}
\ No newline at end of file
{"uuid": "44a68b85-f383-48a0-8650-36348e35c675", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538477, "stop": 1747021538477}], "start": 1747021538477, "stop": 1747021538510}
\ No newline at end of file
{"uuid": "9519b377-cada-456e-a0a3-6f8b3f84a598", "befores": [{"name": "case", "status": "passed", "start": 1747021538037, "stop": 1747021538037}], "start": 1747021538037, "stop": 1747021538071}
\ No newline at end of file
{"uuid": "014377f9-6129-4388-a8f1-652d8456df07", "befores": [{"name": "mime", "status": "passed", "start": 1747021536888, "stop": 1747021536889}], "start": 1747021536888, "stop": 1747021536941}
\ No newline at end of file
{"uuid": "69f50f07-a78d-4533-990d-ebe494ffe90a", "befores": [{"name": "update_key", "status": "passed", "start": 1747021536789, "stop": 1747021536789}], "start": 1747021536789, "stop": 1747021536824}
\ No newline at end of file
{"uuid": "d4266e42-c5f4-46bd-9664-af0a2028c36d", "befores": [{"name": "title", "status": "passed", "start": 1747021538821, "stop": 1747021538821}], "start": 1747021538821, "stop": 1747021538864}
\ No newline at end of file
{"uuid": "27717834-a402-4ed9-a4c6-e14aecc9ff95", "befores": [{"name": "api", "status": "passed", "start": 1747021538429, "stop": 1747021538429}], "start": 1747021538429, "stop": 1747021538471}
\ No newline at end of file
{"uuid": "7e512c78-0598-4870-b5c0-b7c56bba8494", "befores": [{"name": "url", "status": "passed", "start": 1747021538993, "stop": 1747021538993}], "start": 1747021538993, "stop": 1747021539037}
\ No newline at end of file
{"uuid": "3062db0d-b6fd-498e-a36e-0e57c2668e86", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538429, "stop": 1747021538429}], "start": 1747021538429, "stop": 1747021538462}
\ No newline at end of file
{"uuid": "8fa26551-93fb-4859-9a4b-a655c6ecf5cb", "befores": [{"name": "level", "status": "passed", "start": 1747021537297, "stop": 1747021537297}], "start": 1747021537297, "stop": 1747021537355}
\ No newline at end of file
{"uuid": "bfafd4e3-7e70-4e0e-b037-d7425794ba9a", "befores": [{"name": "mime", "status": "passed", "start": 1747021538323, "stop": 1747021538323}], "start": 1747021538323, "stop": 1747021538370}
\ No newline at end of file
{"uuid": "9c8761bc-592a-4eb1-bb67-64f37a4e505c", "befores": [{"name": "level", "status": "passed", "start": 1747021537143, "stop": 1747021537143}], "start": 1747021537143, "stop": 1747021537183}
\ No newline at end of file
{"uuid": "33889e38-d900-4880-9820-8798ae883d58", "befores": [{"name": "level", "status": "passed", "start": 1747021539044, "stop": 1747021539044}], "start": 1747021539044, "stop": 1747021539087}
\ No newline at end of file
{"uuid": "eea49b5d-f85b-4241-9ca5-2707456ae426", "befores": [{"name": "api", "status": "passed", "start": 1747021538992, "stop": 1747021538992}], "start": 1747021538992, "stop": 1747021539040}
\ No newline at end of file
{"uuid": "cd3b57e6-2246-49ab-8195-e5c2003e1a64", "befores": [{"name": "level", "status": "passed", "start": 1747021538576, "stop": 1747021538576}], "start": 1747021538576, "stop": 1747021538632}
\ No newline at end of file
{"uuid": "6a4a4f2a-2345-4f5c-83a7-cebecb019aa8", "befores": [{"name": "url", "status": "passed", "start": 1747021538714, "stop": 1747021538714}], "start": 1747021538714, "stop": 1747021538739}
\ No newline at end of file
{"uuid": "567b162a-090c-4200-a381-384fbcda2622", "befores": [{"name": "expect", "status": "passed", "start": 1747021538946, "stop": 1747021538946}], "start": 1747021538946, "stop": 1747021538982}
\ No newline at end of file
{"uuid": "8207e213-8d9d-4354-acfc-4a2d619fb4ec", "befores": [{"name": "module", "status": "passed", "start": 1747021538138, "stop": 1747021538138}], "start": 1747021538138, "stop": 1747021538185}
\ No newline at end of file
{"uuid": "69faed11-3d03-4793-ad46-53e468aa323e", "befores": [{"name": "expect", "status": "passed", "start": 1747021536840, "stop": 1747021536840}], "start": 1747021536840, "stop": 1747021536877}
\ No newline at end of file
{"uuid": "fdf24bf1-d76a-468d-8a3b-5c52f1aa5d1c", "befores": [{"name": "module", "status": "passed", "start": 1747021537944, "stop": 1747021537945}], "start": 1747021537944, "stop": 1747021537990}
\ No newline at end of file
{"uuid": "26655507-bc3d-4806-923b-0a1f5a876c05", "befores": [{"name": "expect", "status": "passed", "start": 1747021538138, "stop": 1747021538138}], "start": 1747021538138, "stop": 1747021538178}
\ No newline at end of file
{"uuid": "d62a70be-593a-470b-99c5-a0ac3f79bdbd", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538715, "stop": 1747021538715}], "start": 1747021538715, "stop": 1747021538734}
\ No newline at end of file
{"uuid": "096a5209-5ee1-4d3c-b873-56f99eaf292f", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021536368, "stop": 1747021536368}], "start": 1747021536368, "stop": 1747021536677}
\ No newline at end of file
{"uuid": "732362cb-49b8-4503-8867-47bdccda04b5", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538577, "stop": 1747021538577}], "start": 1747021538577, "stop": 1747021538627}
\ No newline at end of file
{"uuid": "cb887301-f6d7-4199-ae1a-12088907ed18", "befores": [{"name": "api", "status": "passed", "start": 1747021537189, "stop": 1747021537189}], "start": 1747021537189, "stop": 1747021537291}
\ No newline at end of file
{"uuid": "ff43fea9-2bca-44d4-a7d3-85a08f1425d9", "befores": [{"name": "level", "status": "passed", "start": 1747021537560, "stop": 1747021537560}], "start": 1747021537560, "stop": 1747021537602}
\ No newline at end of file
{"uuid": "6d771231-9aa0-482d-aff1-1e39d4e76091", "befores": [{"name": "module", "status": "passed", "start": 1747021538381, "stop": 1747021538381}], "start": 1747021538381, "stop": 1747021538422}
\ No newline at end of file
{"uuid": "b9b3969f-98b1-4397-9dfd-e9d25d4427ba", "befores": [{"name": "module", "status": "passed", "start": 1747021537995, "stop": 1747021537995}], "start": 1747021537995, "stop": 1747021538031}
\ No newline at end of file
{"uuid": "4a8890f9-d536-480f-8c56-3ab7550ae07c", "befores": [{"name": "url", "status": "passed", "start": 1747021537297, "stop": 1747021537297}], "start": 1747021537297, "stop": 1747021537354}
\ No newline at end of file
{"uuid": "62c75556-bbce-4d92-808c-58868fca9782", "befores": [{"name": "expect", "status": "passed", "start": 1747021537462, "stop": 1747021537462}], "start": 1747021537462, "stop": 1747021537503}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的key为空-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}-expect2-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t请求的url为:http://36.139.193.99:8088/auth, \n\t用例数据为:{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}, \n\t期望数据为:{'message': '账号或密码错误'}, \n\t服务器返回的数据为:{\"state\":false,\"message\":\"Unexpected character (':' (code 58)): was expecting double-quote to start field name\\n at [Source: (PushbackInputStream); line: 1, column: 23]\",\"code\":200,\"logId\":\"1921772320553705472\"}", "trace": "self = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F5788B0>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的key为空'\nlevel = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == 'Unexpected c..., column: 23]'\nE \nE + 账号或密码错误\nE - Unexpected character (':' (code 58)): was expecting double-quote to start field name\nE - at [Source: (PushbackInputStream); line: 1, column: 23]\n\ntest_case\\test_zhangsan\\test_bpm.py:28: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F5788B0>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的key为空'\nlevel = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n assert expect[key] == res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t请求的url为:{url}, \\n\\t用例数据为:{case}, \\n\\t期望数据为:{expect}, \\n\\t服务器返回的数据为:{res.text}\")\nE AssertionError: 断言失败,\nE \t请求的url为:http://36.139.193.99:8088/auth, \nE \t用例数据为:{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}, \nE \t期望数据为:{'message': '账号或密码错误'}, \nE \t服务器返回的数据为:{\"state\":false,\"message\":\"Unexpected character (':' (code 58)): was expecting double-quote to start field name\\n at [Source: (PushbackInputStream); line: 1, column: 23]\",\"code\":200,\"logId\":\"1921772320553705472\"}\n\ntest_case\\test_zhangsan\\test_bpm.py:30: AssertionError"}, "attachments": [{"name": "log", "source": "4db6da52-77ed-4d91-95d3-3a6e646761da-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的key为空'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",: \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538038, "stop": 1747021538058, "uuid": "ef2974dd-5e41-40cf-97f6-10ea03a1c1f9", "historyId": "f63ede2664264c8392b41a5604f0bc42", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "cad3df9c-b1b2-4aa6-a87a-5fad9db89ca3", "befores": [{"name": "expect", "status": "passed", "start": 1747021537515, "stop": 1747021537515}], "start": 1747021537515, "stop": 1747021537546}
\ No newline at end of file
{"uuid": "4265ce43-dc07-4884-9d8e-29ff61172439", "befores": [{"name": "level", "status": "passed", "start": 1747021537097, "stop": 1747021537097}], "start": 1747021537097, "stop": 1747021537136}
\ No newline at end of file
{"uuid": "008e01b4-6df7-4a62-bee6-6c4e89837c6e", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021536889, "stop": 1747021536889}], "start": 1747021536889, "stop": 1747021536938}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
INFO  root:__init__.py:44 执行的功能为:select, 功能的描述为:执行查询的sql语句,并返回查询, 所在的文件为:E:\untitled\API2\common\db.py, 所在的行为:46
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
用例数据为id=需要更新
\ No newline at end of file
{"uuid": "68bd1004-9c4d-48e3-9ba5-8fb90a44b753", "befores": [{"name": "api", "status": "passed", "start": 1747021537609, "stop": 1747021537609}], "start": 1747021537609, "stop": 1747021537650}
\ No newline at end of file
{"uuid": "8523b884-bbe9-4e57-8042-58a3aa163c38", "befores": [{"name": "url", "status": "passed", "start": 1747021538822, "stop": 1747021538822}], "start": 1747021538822, "stop": 1747021538862}
\ No newline at end of file
{"uuid": "1cbffc10-10cb-4d6d-92fe-4e08d5c7c616", "befores": [{"name": "url", "status": "passed", "start": 1747021537143, "stop": 1747021537143}], "start": 1747021537143, "stop": 1747021537181}
\ No newline at end of file
{"uuid": "d13895cd-8e30-41cf-ba1c-255245a646e9", "befores": [{"name": "title", "status": "passed", "start": 1747021538238, "stop": 1747021538238}], "start": 1747021538238, "stop": 1747021538318}
\ No newline at end of file
{"uuid": "8e1697eb-48c2-44e8-9604-f81d90d0f2d0", "befores": [{"name": "module", "status": "passed", "start": 1747021537143, "stop": 1747021537143}], "start": 1747021537143, "stop": 1747021537185}
\ No newline at end of file
{"uuid": "071138dd-8576-48f4-8c3f-81e7e9051c9c", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538946, "stop": 1747021538946}], "start": 1747021538946, "stop": 1747021538981}
\ No newline at end of file
{"uuid": "7c57ded0-8846-46cb-b913-3ca76590e9eb", "befores": [{"name": "url", "status": "passed", "start": 1747021537362, "stop": 1747021537362}], "start": 1747021537362, "stop": 1747021537387}
\ No newline at end of file
{"uuid": "ebdd406c-bd30-4ff2-a7e1-24c9586ca51e", "befores": [{"name": "req", "status": "passed", "start": 1747021538527, "stop": 1747021538527}], "start": 1747021538527, "stop": 1747021538569}
\ No newline at end of file
{"uuid": "21ebb78b-7875-4621-851c-66e8b2ecfa98", "befores": [{"name": "module", "status": "passed", "start": 1747021538527, "stop": 1747021538527}], "start": 1747021538527, "stop": 1747021538572}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的数据特殊字符-中-POST-http://36.139.193.99:8088/auth-json-{\"username\": \"admin\",\"password\": \"♠♣▣▤▥▦▩◘◙◈♫\"}-expect8-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "7f521063-9b8f-4acf-b9d9-f04ee69a8f71-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的数据特殊字符'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": \"♠♣▣▤▥▦▩◘◙◈♫\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021536996, "stop": 1747021537030, "uuid": "86f0413e-59b6-4b07-9b07-f8a795c8b323", "historyId": "ba4043b38be0e15f921e150f16000bd0", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "df77b892-e172-40e0-b0ef-c48b22b2fd6c", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538527, "stop": 1747021538527}], "start": 1747021538527, "stop": 1747021538561}
\ No newline at end of file
{"uuid": "a2486898-3808-4d73-89a2-d941701698b2", "befores": [{"name": "update_key", "status": "passed", "start": 1747021536889, "stop": 1747021536889}], "start": 1747021536889, "stop": 1747021536937}
\ No newline at end of file
{"uuid": "8079cd67-55bf-4672-9f8c-b2c8d87a4688", "befores": [{"name": "case", "status": "passed", "start": 1747021537097, "stop": 1747021537097}], "start": 1747021537097, "stop": 1747021537133}
\ No newline at end of file
{"uuid": "cf78a89d-bd0b-4047-a675-10c1c289b0ce", "befores": [{"name": "api", "status": "passed", "start": 1747021537462, "stop": 1747021537462}], "start": 1747021537462, "stop": 1747021537510}
\ No newline at end of file
{"uuid": "9622d36a-e6d5-46c5-bcaf-ce2511200a61", "befores": [{"name": "level", "status": "passed", "start": 1747021536788, "stop": 1747021536788}], "start": 1747021536788, "stop": 1747021536831}
\ No newline at end of file
{"uuid": "062e8630-8013-4917-8ddf-1fbff5d1c635", "befores": [{"name": "req", "status": "passed", "start": 1747021536306, "stop": 1747021536306}], "start": 1747021536306, "stop": 1747021536359}
\ No newline at end of file
{"uuid": "c695e9db-ea98-413a-b647-7c196246ff52", "befores": [{"name": "mime", "status": "passed", "start": 1747021538138, "stop": 1747021538138}], "start": 1747021538138, "stop": 1747021538179}
\ No newline at end of file
{"uuid": "52674b3c-2ca3-4542-b64a-052b2063b0c3", "befores": [{"name": "title", "status": "passed", "start": 1747021538381, "stop": 1747021538381}], "start": 1747021538381, "stop": 1747021538421}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的数据特殊字符-中-POST-http://36.139.193.99:8088/auth-json-{\"username\": \"admin\",\"password\": \"♠♣▣▤▥▦▩◘◙◈♫\"}-expect8-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "56ea67e3-db1e-4261-bcee-c8329a3eded4-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的数据特殊字符'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": \"♠♣▣▤▥▦▩◘◙◈♫\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538382, "stop": 1747021538412, "uuid": "1e9a6eab-5036-4472-8f0e-0417cae44b53", "historyId": "95b911eed1016c99b08c0c82007d1851", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "96023813-f27a-4413-a280-3bff74e723e8", "befores": [{"name": "api", "status": "passed", "start": 1747021537396, "stop": 1747021537396}], "start": 1747021537396, "stop": 1747021537456}
\ No newline at end of file
{"uuid": "0e4b8e54-c6c8-4bcb-9630-f6d2fd8f8a30", "befores": [{"name": "api", "status": "passed", "start": 1747021538748, "stop": 1747021538748}], "start": 1747021538748, "stop": 1747021538817}
\ No newline at end of file
{"uuid": "bb6a12db-c32a-468a-821e-2e2bce3aa5a9", "befores": [{"name": "api", "status": "passed", "start": 1747021538576, "stop": 1747021538576}], "start": 1747021538576, "stop": 1747021538634}
\ No newline at end of file
{"uuid": "9ce62a99-941c-4c6c-9abc-3de4489ca7d8", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538085, "stop": 1747021538085}], "start": 1747021538085, "stop": 1747021538119}
\ No newline at end of file
{"uuid": "0ed7fea8-a5a2-473e-a135-085fd3ed9239", "befores": [{"name": "case", "status": "passed", "start": 1747021538429, "stop": 1747021538429}], "start": 1747021538429, "stop": 1747021538467}
\ No newline at end of file
{"uuid": "b0a4c25b-4077-4644-8ead-41e710188971", "befores": [{"name": "expect", "status": "passed", "start": 1747021537995, "stop": 1747021537995}], "start": 1747021537995, "stop": 1747021538025}
\ No newline at end of file
{"uuid": "7fb05e17-dd3b-4241-ad8d-3d5153a9f2cb", "befores": [{"name": "module", "status": "passed", "start": 1747021538322, "stop": 1747021538322}], "start": 1747021538322, "stop": 1747021538375}
\ No newline at end of file
{"uuid": "93f3a02f-48b3-4e1d-8bfa-b2a047889e7a", "befores": [{"name": "url", "status": "passed", "start": 1747021537655, "stop": 1747021537655}], "start": 1747021537655, "stop": 1747021537692}
\ No newline at end of file
{"name": "test_bpm[组织管理-删除组织-正向用例-中-post-http://36.139.193.99:8088/api/org/v1/org/deleteOrg-text/plain-testAddOrg-expect18-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "2d3450e1-a14d-4429-9fbf-dfbbca824406-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'删除组织'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"}, {"name": "mime", "value": "'text/plain'"}, {"name": "case", "value": "'testAddOrg'"}, {"name": "expect", "value": "{'state': True, 'message': '删除组织成功!', 'value': '', 'code': 200}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021537561, "stop": 1747021537593, "uuid": "123c642a-a33b-493c-8ee8-d9fecb1c2c94", "historyId": "1896d19f0b07a1035f53b8c75b566a87", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"name": "test_bpm[认证接口-刷新token-正向用例-中-GET-http://36.139.193.99:8088/refresh-None-None-expect12-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t用例数据为None", "trace": "self = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F17F0>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '刷新token', title = '正向用例', level = '中', req = 'GET', url = 'http://36.139.193.99:8088/refresh', mime = None, case = None\nexpect = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n> assert expect[key]==res.json().get(key)\nE AssertionError: assert '刷新成功' == None\nE + where None = <built-in method get of dict object at 0x0000018E8F6FBC00>('message')\nE + where <built-in method get of dict object at 0x0000018E8F6FBC00> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...ksImlhdCI6MTc0NzAyMTE5OX0.c4COfQNcLx_KfYh0Xalh4LyFaBJrmsnRq2-L-9RYpEQ88xbXr2ad35Z9pPWIhXqtq63AcEbNsHAqomT0PlNv5g', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...ksImlhdCI6MTc0NzAyMTE5OX0.c4COfQNcLx_KfYh0Xalh4LyFaBJrmsnRq2-L-9RYpEQ88xbXr2ad35Z9pPWIhXqtq63AcEbNsHAqomT0PlNv5g', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_bpm\\test_bpm.py:19: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F17F0>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '刷新token', title = '正向用例', level = '中', req = 'GET', url = 'http://36.139.193.99:8088/refresh', mime = None, case = None\nexpect = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n assert expect[key]==res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t用例数据为{case}\")\nE AssertionError: 断言失败,\nE \t用例数据为None\n\ntest_case\\test_bpm\\test_bpm.py:21: AssertionError"}, "attachments": [{"name": "log", "source": "0b0e6558-cb1f-42e7-85be-4e07fbf2136c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'刷新token'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'GET'"}, {"name": "url", "value": "'http://36.139.193.99:8088/refresh'"}, {"name": "mime", "value": "None"}, {"name": "case", "value": "None"}, {"name": "expect", "value": "{'message': '刷新成功'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021537190, "stop": 1747021537272, "uuid": "31dd3964-d5db-4da9-932b-f9d64c3069af", "historyId": "87481f56e4611d24b9acdff82da322c0", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
INFO  root:__init__.py:45 执行的功能为:__init__, 功能的描述为:关联被测系统的状态, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:18
INFO  root:__init__.py:45 执行的功能为:__init__, 功能的描述为:获取系统配置ini文件的路径,并创建Configparser对象,在读取ini文件, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:16
INFO  root:__init__.py:45 执行的功能为:get_host, 功能的描述为:根据key,获取被测系统的域名, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:24
INFO  root:__init__.py:45 执行的功能为:__init__, 功能的描述为:创建链接对象和游标对象, 所在的文件为:E:\untitled\APIAutoTest_v3\common\db.py, 所在的行为:17
INFO  root:__init__.py:45 执行的功能为:__init__, 功能的描述为:获取系统配置ini文件的路径,并创建Configparser对象,在读取ini文件, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:16
INFO  root:__init__.py:45 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的链接信息, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:29
INFO  root:__init__.py:45 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的链接信息, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:29
INFO  root:__init__.py:45 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的链接信息, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:29
INFO  root:__init__.py:45 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的链接信息, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:29
INFO  root:__init__.py:45 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的链接信息, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:29
\ No newline at end of file
{"uuid": "7fdadbc4-efcd-400f-85d7-3dda9ba775df", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538037, "stop": 1747021538037}], "start": 1747021538037, "stop": 1747021538068}
\ No newline at end of file
{"uuid": "0880192e-e81c-47d3-9888-2746303a9755", "befores": [{"name": "title", "status": "passed", "start": 1747021538527, "stop": 1747021538527}], "start": 1747021538527, "stop": 1747021538570}
\ No newline at end of file
{"uuid": "dacb036c-64db-4b10-9605-22a657c3734d", "befores": [{"name": "level", "status": "passed", "start": 1747021537945, "stop": 1747021537945}], "start": 1747021537945, "stop": 1747021537988}
\ No newline at end of file
{"uuid": "3f67334a-69ad-4b72-9a09-8502be75d95b", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538085, "stop": 1747021538085}], "start": 1747021538085, "stop": 1747021538120}
\ No newline at end of file
{"uuid": "c70fe2ab-fb3a-470c-a262-fc1ac03b502c", "befores": [{"name": "module", "status": "passed", "start": 1747021536839, "stop": 1747021536840}], "start": 1747021536839, "stop": 1747021536885}
\ No newline at end of file
{"uuid": "74b37b4b-f498-4d5c-a947-052f5e10a1a4", "befores": [{"name": "module", "status": "passed", "start": 1747021538992, "stop": 1747021538992}], "start": 1747021538992, "stop": 1747021539041}
\ No newline at end of file
{"uuid": "93eaf77d-b599-4cb7-bcb6-536a5425eb71", "befores": [{"name": "expect", "status": "passed", "start": 1747021538381, "stop": 1747021538381}], "start": 1747021538381, "stop": 1747021538415}
\ No newline at end of file
{"uuid": "c752544b-1658-4970-b22a-89ae6bbb7fbc", "befores": [{"name": "req", "status": "passed", "start": 1747021537515, "stop": 1747021537515}], "start": 1747021537515, "stop": 1747021537550}
\ No newline at end of file
{"uuid": "f84d13b5-0f7c-4747-8c9a-3601ee3990fa", "befores": [{"name": "case", "status": "passed", "start": 1747021536306, "stop": 1747021536306}], "start": 1747021536306, "stop": 1747021536357}
\ No newline at end of file
{"uuid": "34c39a7b-b804-45aa-afa9-780b24070bf8", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021536995, "stop": 1747021536995}], "start": 1747021536995, "stop": 1747021537032}
\ No newline at end of file
{"uuid": "6b198f29-a32d-4d06-8ac0-0197b4a11f54", "befores": [{"name": "expect", "status": "passed", "start": 1747021536995, "stop": 1747021536995}], "start": 1747021536995, "stop": 1747021537033}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
用例数据为{"username": "admin",class: "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8="}
\ No newline at end of file
{"uuid": "15847396-dcf2-4a3f-b001-c29890695f8b", "befores": [{"name": "expect", "status": "passed", "start": 1747021538577, "stop": 1747021538577}], "start": 1747021538577, "stop": 1747021538628}
\ No newline at end of file
{"name": "test_bpm[组织管理-删除组织-正向用例-中-post-http://36.139.193.99:8088/api/org/v1/org/deleteOrg-text/plain-testAddOrg-expect18-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "1f5d9f9d-ce48-4a7b-94fe-98cc423f31b1-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'删除组织'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"}, {"name": "mime", "value": "'text/plain'"}, {"name": "case", "value": "'testAddOrg'"}, {"name": "expect", "value": "{'state': True, 'message': '删除组织成功!', 'value': '', 'code': 200}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538947, "stop": 1747021538979, "uuid": "7d99ee4e-3c41-4cac-a8d0-4de89d4a7487", "historyId": "13767a5a1d95d1920ab5a6af624e7396", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "5197e54b-818c-422b-8f89-899aa55c27e2", "befores": [{"name": "api", "status": "passed", "start": 1747021538714, "stop": 1747021538714}], "start": 1747021538714, "stop": 1747021538744}
\ No newline at end of file
{"uuid": "c1ca27cd-be3c-49a5-a0a0-a03fe75c0837", "befores": [{"name": "case", "status": "passed", "start": 1747021538381, "stop": 1747021538381}], "start": 1747021538381, "stop": 1747021538417}
\ No newline at end of file
{"uuid": "401cd1e8-09e1-445b-86bd-ff7ade722e83", "befores": [{"name": "expect", "status": "passed", "start": 1747021537396, "stop": 1747021537396}], "start": 1747021537396, "stop": 1747021537449}
\ No newline at end of file
{"uuid": "b1051ce0-a587-41ba-af16-b52a47a8c000", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538429, "stop": 1747021538429}], "start": 1747021538429, "stop": 1747021538464}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码不传-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\"}-expect4-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t用例数据为{\"username\": \"admin\"}", "trace": "self = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F11F0>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码不传', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\"}', expect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n> assert expect[key]==res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_bpm\\test_bpm.py:19: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F11F0>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码不传', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\"}', expect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n assert expect[key]==res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t用例数据为{case}\")\nE AssertionError: 断言失败,\nE \t用例数据为{\"username\": \"admin\"}\n\ntest_case\\test_bpm\\test_bpm.py:21: AssertionError"}, "attachments": [{"name": "log", "source": "bc0460f0-ef08-47b6-a361-238031b2c1c4-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码不传'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021536789, "stop": 1747021536813, "uuid": "b02e04c1-c9e6-4323-8792-d0ddab510cec", "historyId": "b185b27a1a5b2067539258756d0f7e68", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "20925a5b-674a-4718-aad2-b90d10c101b2", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021539044, "stop": 1747021539044}], "start": 1747021539044, "stop": 1747021539082}
\ No newline at end of file
{"uuid": "94ffc471-3905-4340-93aa-a193a5db7791", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538640, "stop": 1747021538640}], "start": 1747021538640, "stop": 1747021538703}
\ No newline at end of file
{"uuid": "a476efd6-062c-49bb-b4bd-e18ac5fedbc5", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021536789, "stop": 1747021536789}], "start": 1747021536789, "stop": 1747021536825}
\ No newline at end of file
{"uuid": "6f7c7924-25a7-4faa-82c5-c5b70137793c", "befores": [{"name": "req", "status": "passed", "start": 1747021537995, "stop": 1747021537995}], "start": 1747021537995, "stop": 1747021538028}
\ No newline at end of file
{"uuid": "4ab991cf-af49-484b-9400-e0e161af8f83", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538748, "stop": 1747021538748}], "start": 1747021538748, "stop": 1747021538809}
\ No newline at end of file
{"uuid": "df661a27-a58c-4010-9d21-07f80d52e22a", "befores": [{"name": "url", "status": "passed", "start": 1747021538084, "stop": 1747021538084}], "start": 1747021538084, "stop": 1747021538126}
\ No newline at end of file
{"uuid": "d69706ec-982a-4af4-92a3-fb9d17c7797a", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538527, "stop": 1747021538527}], "start": 1747021538527, "stop": 1747021538562}
\ No newline at end of file
{"uuid": "34389b3f-e21a-4652-9903-a7500ddbae16", "befores": [{"name": "mime", "status": "passed", "start": 1747021538714, "stop": 1747021538715}], "start": 1747021538714, "stop": 1747021538739}
\ No newline at end of file
{"uuid": "f52ff528-7517-4a47-8a00-23fc8671e752", "befores": [{"name": "expect", "status": "passed", "start": 1747021538238, "stop": 1747021538238}], "start": 1747021538238, "stop": 1747021538312}
\ No newline at end of file
{"uuid": "568ebd92-5435-478c-a06e-5c1be0503ecc", "befores": [{"name": "expect", "status": "passed", "start": 1747021538748, "stop": 1747021538748}], "start": 1747021538748, "stop": 1747021538810}
\ No newline at end of file
{"uuid": "77baf976-0b65-462f-8804-136e2d01f40a", "befores": [{"name": "title", "status": "passed", "start": 1747021537655, "stop": 1747021537655}], "start": 1747021537655, "stop": 1747021537696}
\ No newline at end of file
{"uuid": "2cc66aae-3260-40a7-b3f6-77dfd80d97e4", "befores": [{"name": "url", "status": "passed", "start": 1747021537995, "stop": 1747021537995}], "start": 1747021537995, "stop": 1747021538027}
\ No newline at end of file
{"uuid": "0fdb5b56-e07a-4a78-aa41-efb6720eebb0", "befores": [{"name": "expect", "status": "passed", "start": 1747021536691, "stop": 1747021536691}], "start": 1747021536691, "stop": 1747021536726}
\ No newline at end of file
{"uuid": "8b845068-1233-458b-948e-2e6591df3289", "befores": [{"name": "mime", "status": "passed", "start": 1747021538748, "stop": 1747021538748}], "start": 1747021538748, "stop": 1747021538812}
\ No newline at end of file
{"uuid": "a238adac-7047-41ad-898c-4c0033c7996f", "befores": [{"name": "title", "status": "passed", "start": 1747021537046, "stop": 1747021537046}], "start": 1747021537046, "stop": 1747021537091}
\ No newline at end of file
{"uuid": "b84b3030-f418-434e-8dad-efef91bd1624", "befores": [{"name": "module", "status": "passed", "start": 1747021537189, "stop": 1747021537189}], "start": 1747021537189, "stop": 1747021537292}
\ No newline at end of file
{"uuid": "35957143-ce87-4ffc-9b6f-5fee861a6d69", "befores": [{"name": "api", "status": "passed", "start": 1747021537515, "stop": 1747021537515}], "start": 1747021537515, "stop": 1747021537555}
\ No newline at end of file
{"uuid": "2849912a-0394-4ce3-b9eb-9a9525e65ac7", "befores": [{"name": "level", "status": "passed", "start": 1747021536691, "stop": 1747021536691}], "start": 1747021536691, "stop": 1747021536730}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码不传-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\"}-expect4-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t请求的url为:http://36.139.193.99:8088/auth, \n\t用例数据为:{\"username\": \"admin\"}, \n\t期望数据为:{'message': '账号或密码错误'}, \n\t服务器返回的数据为:{\"state\":false,\"message\":\"解密密码异常,请检查RSA公钥和私钥配置\",\"code\":200,\"logId\":\"1921772320989913088\"}", "trace": "self = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F5786A0>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码不传', level = '中'\nreq = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json', case = '{\"username\": \"admin\"}', expect = {'message': '账号或密码错误'}, sql_type = None\nsql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_zhangsan\\test_bpm.py:28: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F5786A0>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码不传', level = '中'\nreq = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json', case = '{\"username\": \"admin\"}', expect = {'message': '账号或密码错误'}, sql_type = None\nsql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n assert expect[key] == res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t请求的url为:{url}, \\n\\t用例数据为:{case}, \\n\\t期望数据为:{expect}, \\n\\t服务器返回的数据为:{res.text}\")\nE AssertionError: 断言失败,\nE \t请求的url为:http://36.139.193.99:8088/auth, \nE \t用例数据为:{\"username\": \"admin\"}, \nE \t期望数据为:{'message': '账号或密码错误'}, \nE \t服务器返回的数据为:{\"state\":false,\"message\":\"解密密码异常,请检查RSA公钥和私钥配置\",\"code\":200,\"logId\":\"1921772320989913088\"}\n\ntest_case\\test_zhangsan\\test_bpm.py:30: AssertionError"}, "attachments": [{"name": "log", "source": "54e35b82-22b0-40e5-93e6-a8ecb52e42d0-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码不传'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538139, "stop": 1747021538162, "uuid": "978895d8-8ffe-4e6e-af09-fce7bbbdf410", "historyId": "97fb22b268d665a61ffd77c3f6b1160b", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
\ No newline at end of file
{"uuid": "9b12284e-e9e3-4cb0-8b72-7a78c93d9ea1", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537560, "stop": 1747021537560}], "start": 1747021537560, "stop": 1747021537596}
\ No newline at end of file
{"uuid": "fddeb0ec-9b97-4373-bd36-af2be06e27ad", "befores": [{"name": "url", "status": "passed", "start": 1747021537396, "stop": 1747021537396}], "start": 1747021537396, "stop": 1747021537452}
\ No newline at end of file
{"uuid": "a91809a6-7cb3-4774-bfee-894105791212", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538640, "stop": 1747021538640}], "start": 1747021538640, "stop": 1747021538702}
\ No newline at end of file
{"uuid": "346cafa4-09d6-40fc-a277-0cfa38d2b01c", "befores": [{"name": "expect", "status": "passed", "start": 1747021538872, "stop": 1747021538872}], "start": 1747021538872, "stop": 1747021538934}
\ No newline at end of file
{"uuid": "ecc70f29-aa41-4452-a4ce-90cd1d69650d", "befores": [{"name": "title", "status": "passed", "start": 1747021537396, "stop": 1747021537396}], "start": 1747021537396, "stop": 1747021537455}
\ No newline at end of file
{"uuid": "8add171f-d932-4402-9bcf-4bffbef029b7", "befores": [{"name": "url", "status": "passed", "start": 1747021538576, "stop": 1747021538577}], "start": 1747021538576, "stop": 1747021538630}
\ No newline at end of file
{"uuid": "6ed12a33-42da-44a9-942e-a5452c1d0bd8", "befores": [{"name": "api", "status": "passed", "start": 1747021536367, "stop": 1747021536367}], "start": 1747021536367, "stop": 1747021536686}
\ No newline at end of file
{"uuid": "0767b052-1d12-4eed-9396-2e02dc009182", "befores": [{"name": "level", "status": "passed", "start": 1747021538190, "stop": 1747021538190}], "start": 1747021538190, "stop": 1747021538231}
\ No newline at end of file
{"uuid": "3ad8c82e-774e-430d-bc27-1d090562e942", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538946, "stop": 1747021538946}], "start": 1747021538946, "stop": 1747021538979}
\ No newline at end of file
{"uuid": "b1629319-bd12-4477-bc98-7742b3a6c9a4", "befores": [{"name": "url", "status": "passed", "start": 1747021538476, "stop": 1747021538476}], "start": 1747021538476, "stop": 1747021538517}
\ No newline at end of file
{"uuid": "4e47688d-5ff5-4fd6-9751-0e0a2cd46b65", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537462, "stop": 1747021537462}], "start": 1747021537462, "stop": 1747021537501}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
用例数据为{"username": "admin","password": class}
\ No newline at end of file
{"uuid": "c2d1ef4b-b0ff-47a8-b259-16e64a7b21a1", "befores": [{"name": "case", "status": "passed", "start": 1747021537995, "stop": 1747021537995}], "start": 1747021537995, "stop": 1747021538026}
\ No newline at end of file
{"uuid": "50ce673b-b90b-4987-8792-1b2a5c80f643", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537462, "stop": 1747021537462}], "start": 1747021537462, "stop": 1747021537503}
\ No newline at end of file
{"uuid": "7a320dbc-8263-48a3-ad10-9e3c31ed1589", "befores": [{"name": "url", "status": "passed", "start": 1747021538527, "stop": 1747021538527}], "start": 1747021538527, "stop": 1747021538568}
\ No newline at end of file
{"uuid": "3c6a96cd-9a47-491e-ae68-505d3eac298b", "befores": [{"name": "expect", "status": "passed", "start": 1747021537189, "stop": 1747021537189}], "start": 1747021537189, "stop": 1747021537286}
\ No newline at end of file
{"uuid": "97fe3a8e-2ae8-4bf0-8532-cee301c783c4", "befores": [{"name": "url", "status": "passed", "start": 1747021538238, "stop": 1747021538238}], "start": 1747021538238, "stop": 1747021538315}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
请求的url为:http://36.139.193.99:8088/auth,
用例数据为:{"username": "admin","♠♣▣▤▥▦▩◘◙◈♫": "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8="},
期望数据为:{'message': '账号或密码错误'},
服务器返回的数据为:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1921772321212211200"}
\ No newline at end of file
{"uuid": "a148b180-cb54-472e-9b52-e8799d355ee6", "befores": [{"name": "mime", "status": "passed", "start": 1747021538037, "stop": 1747021538037}], "start": 1747021538037, "stop": 1747021538072}
\ No newline at end of file
{"uuid": "146c7a80-cc17-4d49-a0ce-af4aa7b99fd4", "befores": [{"name": "url", "status": "passed", "start": 1747021536788, "stop": 1747021536788}], "start": 1747021536788, "stop": 1747021536829}
\ No newline at end of file
{"uuid": "6aafa171-c209-4d95-afa4-658146eddfa5", "befores": [{"name": "module", "status": "passed", "start": 1747021538189, "stop": 1747021538190}], "start": 1747021538189, "stop": 1747021538234}
\ No newline at end of file
{"uuid": "1fcf69d3-5fdb-434b-85c5-d0b5bf322979", "befores": [{"name": "title", "status": "passed", "start": 1747021537560, "stop": 1747021537560}], "start": 1747021537560, "stop": 1747021537603}
\ No newline at end of file
{"uuid": "502dd36d-8324-4f5b-87ca-f8985716971b", "befores": [{"name": "module", "status": "passed", "start": 1747021537046, "stop": 1747021537046}], "start": 1747021537046, "stop": 1747021537092}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
\ No newline at end of file
{"uuid": "ac2cb30d-04f6-418d-89a2-7eb93d488351", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538085, "stop": 1747021538085}], "start": 1747021538085, "stop": 1747021538118}
\ No newline at end of file
{"name": "test_bpm[组织管理-保存组织参数-正向用例-中-post-http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams-query|json-case17-expect17-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "bb8d7482-25f6-433a-8192-57892f223e89-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'保存组织参数'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}, {"name": "mime", "value": "'query|json'"}, {"name": "case", "value": "{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'test0428', 'value': 100}]}"}, {"name": "expect", "value": "{'state': True, 'message': '保存组织参数成功!', 'value': '', 'code': 200}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021537516, "stop": 1747021537542, "uuid": "d8a9ae56-4f07-4f27-97ce-166a0226e990", "historyId": "65973827dcb7e1d88dfc9fc091290c3b", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "85500b4c-2402-4035-b998-32b42f9b460e", "befores": [{"name": "req", "status": "passed", "start": 1747021538821, "stop": 1747021538821}], "start": 1747021538821, "stop": 1747021538863}
\ No newline at end of file
{"uuid": "1fb23a36-7d35-473c-928a-5b5933060a99", "befores": [{"name": "url", "status": "passed", "start": 1747021538946, "stop": 1747021538946}], "start": 1747021538946, "stop": 1747021538986}
\ No newline at end of file
{"uuid": "82b8d92c-7280-48e9-8f87-f709350c92b3", "befores": [{"name": "title", "status": "passed", "start": 1747021536888, "stop": 1747021536888}], "start": 1747021536888, "stop": 1747021536945}
\ No newline at end of file
{"uuid": "28d4c367-15e3-49f6-8538-16e0a9db8fd6", "befores": [{"name": "case", "status": "passed", "start": 1747021538190, "stop": 1747021538190}], "start": 1747021538190, "stop": 1747021538228}
\ No newline at end of file
{"uuid": "02f006d6-bf84-4ffd-ad61-0d0ff29eae70", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538238, "stop": 1747021538238}], "start": 1747021538238, "stop": 1747021538311}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
\ No newline at end of file
{"uuid": "7fa3deea-cdfe-42b0-ad9b-96d62416507d", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537362, "stop": 1747021537362}], "start": 1747021537362, "stop": 1747021537382}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
用例数据为{"username": "admin"}
\ No newline at end of file
{"uuid": "ae05a99d-538b-43cf-bb9c-a2a0c4c22bf9", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021539044, "stop": 1747021539045}], "start": 1747021539044, "stop": 1747021539081}
\ No newline at end of file
{"uuid": "ecdb84e8-70e4-4436-b6f5-5107c90970ba", "befores": [{"name": "level", "status": "passed", "start": 1747021538476, "stop": 1747021538476}], "start": 1747021538476, "stop": 1747021538519}
\ No newline at end of file
{"name": "test_bpm[组织管理-添加组织-正向用例-高-post-http://36.139.193.99:8088/api/org/v1/org/addOrg-json-case15-expect15-delete|select-sql_data15-demId]", "status": "passed", "attachments": [{"name": "log", "source": "cbd65a00-e565-49af-9b7e-a0bf822dfa81-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'添加组织'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}, {"name": "req", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case", "value": "{'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect", "value": "{'message': '添加组织成功!'}"}, {"name": "sql_type", "value": "'delete|select'"}, {"name": "sql_data", "value": "{'select': 'select ID_ from uc_demension where CODE_=\"testDemension\";', 'delete': 'delete from uc_org where CODE_=\"testAddOrg\";'}"}, {"name": "update_key", "value": "'demId'"}], "start": 1747021538749, "stop": 1747021538807, "uuid": "17b97716-018d-447f-bff0-d91cfeea1715", "historyId": "648b12144dbdecfbf7c3378bfe06f573", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "6e469288-3cc3-48f8-b65f-ab2c149d7f90", "befores": [{"name": "req", "status": "passed", "start": 1747021537396, "stop": 1747021537396}], "start": 1747021537396, "stop": 1747021537453}
\ No newline at end of file
{"uuid": "5ebb68ba-7d2b-4afe-85c9-c9eccba64b2e", "befores": [{"name": "module", "status": "passed", "start": 1747021538748, "stop": 1747021538748}], "start": 1747021538748, "stop": 1747021538817}
\ No newline at end of file
{"uuid": "302ebff8-9fb9-4770-ade2-ff14e1eb2403", "befores": [{"name": "mime", "status": "passed", "start": 1747021538429, "stop": 1747021538429}], "start": 1747021538429, "stop": 1747021538468}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_bpm\test_bpm.py, 所在的行为:13
INFO  root:__init__.py:44 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\API2\request_method\request_method.py, 所在的行为:23
\ No newline at end of file
{"uuid": "2db09078-7602-42c5-8131-024e89e7e32d", "befores": [{"name": "title", "status": "passed", "start": 1747021538323, "stop": 1747021538323}], "start": 1747021538323, "stop": 1747021538373}
\ No newline at end of file
{"uuid": "f412b5ef-e46a-4acd-8eb1-c87f1698ed16", "befores": [{"name": "title", "status": "passed", "start": 1747021538190, "stop": 1747021538190}], "start": 1747021538190, "stop": 1747021538232}
\ No newline at end of file
{"uuid": "eac62f34-ed61-40e1-9837-e949358d4ec9", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021536738, "stop": 1747021536738}], "start": 1747021536738, "stop": 1747021536776}
\ No newline at end of file
{"uuid": "9bf65310-1d4f-4c36-bb86-29e7161b31da", "befores": [{"name": "case", "status": "passed", "start": 1747021538527, "stop": 1747021538527}], "start": 1747021538527, "stop": 1747021538565}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的数据为关键字-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"password\": class}-expect11-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t用例数据为{\"username\": \"admin\",\"password\": class}", "trace": "self = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F1730>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的数据为关键字', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"password\": class}', expect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n> assert expect[key]==res.json().get(key)\nE AssertionError: assert '账号或密码错误' == 'Unrecognized..., column: 40]'\nE \nE + 账号或密码错误\nE - Unrecognized token 'class': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\nE - at [Source: (PushbackInputStream); line: 1, column: 40]\n\ntest_case\\test_bpm\\test_bpm.py:19: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F1730>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的数据为关键字', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"password\": class}', expect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n assert expect[key]==res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t用例数据为{case}\")\nE AssertionError: 断言失败,\nE \t用例数据为{\"username\": \"admin\",\"password\": class}\n\ntest_case\\test_bpm\\test_bpm.py:21: AssertionError"}, "attachments": [{"name": "log", "source": "b4650425-c527-4dac-baed-c151e5501bf1-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的数据为关键字'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": class}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021537144, "stop": 1747021537166, "uuid": "59924bd0-adf6-470b-8a14-08bb4f6bf1c5", "historyId": "bb07c1a1f7ca44b9010ff1e2c69e67a6", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "d55bd755-d74f-4ca2-b7df-8946a6455d8e", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537656, "stop": 1747021537656}], "start": 1747021537656, "stop": 1747021537688}
\ No newline at end of file
{"uuid": "df4b3194-4c8c-4be9-945c-c508f3384ea6", "befores": [{"name": "req", "status": "passed", "start": 1747021537297, "stop": 1747021537297}], "start": 1747021537297, "stop": 1747021537354}
\ No newline at end of file
{"uuid": "dfc651bb-c721-484f-87bf-592dde2b0b8f", "befores": [{"name": "expect", "status": "passed", "start": 1747021539044, "stop": 1747021539044}], "start": 1747021539044, "stop": 1747021539083}
\ No newline at end of file
{"uuid": "fb95675c-fedc-4e2d-a396-ed99b9fcfc1f", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537995, "stop": 1747021537995}], "start": 1747021537995, "stop": 1747021538024}
\ No newline at end of file
{"uuid": "8df9361e-8d48-46af-b758-81219a84c8e8", "befores": [{"name": "mime", "status": "passed", "start": 1747021538946, "stop": 1747021538946}], "start": 1747021538946, "stop": 1747021538985}
\ No newline at end of file
{"uuid": "06e43b36-4f30-43b7-8c46-9de98d014706", "befores": [{"name": "module", "status": "passed", "start": 1747021536305, "stop": 1747021536305}], "start": 1747021536305, "stop": 1747021536362}
\ No newline at end of file
{"uuid": "ad4e7212-54d5-49a3-829e-94d443325aa5", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537047, "stop": 1747021537047}], "start": 1747021537047, "stop": 1747021537084}
\ No newline at end of file
{"uuid": "23a96b62-5635-4c7c-9720-8fb0d20fa35f", "befores": [{"name": "url", "status": "passed", "start": 1747021536995, "stop": 1747021536995}], "start": 1747021536995, "stop": 1747021537037}
\ No newline at end of file
{"uuid": "3d1fe464-9c36-4e57-9248-5ceb80056742", "befores": [{"name": "title", "status": "passed", "start": 1747021536788, "stop": 1747021536788}], "start": 1747021536788, "stop": 1747021536831}
\ No newline at end of file
{"uuid": "f6fec9d0-99cd-4dcb-86db-12f234d57ba3", "befores": [{"name": "req", "status": "passed", "start": 1747021539044, "stop": 1747021539044}], "start": 1747021539044, "stop": 1747021539087}
\ No newline at end of file
{"uuid": "0a1b0705-5835-4f71-87ac-a507458b52c8", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537655, "stop": 1747021537655}], "start": 1747021537655, "stop": 1747021537689}
\ No newline at end of file
{"uuid": "a1f9e020-f8f6-4654-b618-45e16c7da7ce", "befores": [{"name": "module", "status": "passed", "start": 1747021536367, "stop": 1747021536367}], "start": 1747021536367, "stop": 1747021536687}
\ No newline at end of file
{"uuid": "85dea73a-5d53-4dec-83bd-6bc39362592e", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538822, "stop": 1747021538822}], "start": 1747021538822, "stop": 1747021538858}
\ No newline at end of file
{"uuid": "097b96db-b2af-4a85-88c4-6ca2a50b77f8", "befores": [{"name": "title", "status": "passed", "start": 1747021536840, "stop": 1747021536840}], "start": 1747021536840, "stop": 1747021536882}
\ No newline at end of file
{"uuid": "60203448-dc64-466b-aab1-35a253fa4126", "befores": [{"name": "mime", "status": "passed", "start": 1747021536738, "stop": 1747021536738}], "start": 1747021536738, "stop": 1747021536779}
\ No newline at end of file
{"uuid": "7887befa-25a7-495a-abf6-732ab2609c4f", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021536691, "stop": 1747021536691}], "start": 1747021536691, "stop": 1747021536724}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
INFO  root:__init__.py:45 执行的功能为:delete, 功能的描述为:执行删除的sql语句, 所在的文件为:E:\untitled\APIAutoTest_v3\common\db.py, 所在的行为:37
INFO  root:__init__.py:45 执行的功能为:select, 功能的描述为:执行查询的sql语句,并返回查询, 所在的文件为:E:\untitled\APIAutoTest_v3\common\db.py, 所在的行为:46
\ No newline at end of file
{"uuid": "83ba2bdd-34d4-45c4-a251-65171f923532", "befores": [{"name": "mime", "status": "passed", "start": 1747021537515, "stop": 1747021537515}], "start": 1747021537515, "stop": 1747021537548}
\ No newline at end of file
{"uuid": "88c4056a-fe28-4b0e-8938-5bf64b866b48", "befores": [{"name": "req", "status": "passed", "start": 1747021537560, "stop": 1747021537560}], "start": 1747021537560, "stop": 1747021537602}
\ No newline at end of file
{"uuid": "9d91f846-1335-495f-8910-ea5c40632306", "befores": [{"name": "mime", "status": "passed", "start": 1747021536367, "stop": 1747021536367}], "start": 1747021536367, "stop": 1747021536682}
\ No newline at end of file
{"uuid": "c1497436-9bd6-4f2a-80d2-2cf79cec7cfa", "befores": [{"name": "url", "status": "passed", "start": 1747021537945, "stop": 1747021537945}], "start": 1747021537945, "stop": 1747021537987}
\ No newline at end of file
{"uuid": "84f26091-f97b-49b7-9961-6d8b28458ca9", "befores": [{"name": "api", "status": "passed", "start": 1747021536305, "stop": 1747021536305}], "start": 1747021536305, "stop": 1747021536361}
\ No newline at end of file
{"uuid": "717a813f-38d2-46b3-8eaf-6b32d7ce7337", "befores": [{"name": "mime", "status": "passed", "start": 1747021536691, "stop": 1747021536691}], "start": 1747021536691, "stop": 1747021536728}
\ No newline at end of file
{"uuid": "d9ccac2c-95f9-4ecd-9db3-eb1f5763460d", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537609, "stop": 1747021537609}], "start": 1747021537609, "stop": 1747021537641}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的数据过短-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"password\": \"f\"}-expect7-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "651fdaa9-ed27-4924-9ef0-353620846cb2-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的数据过短'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": \"f\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538324, "stop": 1747021538365, "uuid": "ac739aa8-208f-4d37-8790-f08b8f10cde0", "historyId": "a4305798483e17bb1637870c2b128a40", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "cb1fe183-adba-4788-a16f-ef600c75c202", "befores": [{"name": "mime", "status": "passed", "start": 1747021538476, "stop": 1747021538476}], "start": 1747021538476, "stop": 1747021538516}
\ No newline at end of file
{"uuid": "e63109f2-3727-4074-b8e4-05ad40c1e9dc", "befores": [{"name": "case", "status": "passed", "start": 1747021537655, "stop": 1747021537655}], "start": 1747021537655, "stop": 1747021537691}
\ No newline at end of file
{"uuid": "54976267-efa2-470c-925c-819c63d09964", "befores": [{"name": "mime", "status": "passed", "start": 1747021539044, "stop": 1747021539044}], "start": 1747021539044, "stop": 1747021539085}
\ No newline at end of file
{"uuid": "ad4ba943-1083-4c0c-9d33-1ec4284b4433", "befores": [{"name": "title", "status": "passed", "start": 1747021536691, "stop": 1747021536691}], "start": 1747021536691, "stop": 1747021536731}
\ No newline at end of file
{"uuid": "ca77688b-81cd-46b8-9b82-0d5b1848bb01", "befores": [{"name": "title", "status": "passed", "start": 1747021538138, "stop": 1747021538138}], "start": 1747021538138, "stop": 1747021538183}
\ No newline at end of file
{"uuid": "f18c5f24-b0b4-4053-b06a-2c4214cea6cf", "befores": [{"name": "update_key", "status": "passed", "start": 1747021536691, "stop": 1747021536691}], "start": 1747021536691, "stop": 1747021536723}
\ No newline at end of file
{"uuid": "1e804c18-53b5-4658-b75d-eae0f5b17540", "befores": [{"name": "api", "status": "passed", "start": 1747021536691, "stop": 1747021536691}], "start": 1747021536691, "stop": 1747021536731}
\ No newline at end of file
{"uuid": "6ead8712-6e8c-40e3-adff-9e4b412fc63f", "befores": [{"name": "case", "status": "passed", "start": 1747021537462, "stop": 1747021537462}], "start": 1747021537462, "stop": 1747021537504}
\ No newline at end of file
{"name": "test_bpm[维度管理-根据维度编码获取维度信息-正向用例-中-get-http://36.139.193.99:8088/api/demension/v1/dem/getDem-query-code=testDemension-expect14-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "af0a85b1-2a87-44e9-84ce-4c7247336df7-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'根据维度编码获取维度信息'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'get'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/getDem'"}, {"name": "mime", "value": "'query'"}, {"name": "case", "value": "'code=testDemension'"}, {"name": "expect", "value": "{'isDelete': '0'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021537362, "stop": 1747021537381, "uuid": "cfd585ab-9634-4863-b21e-8e267dbbaac1", "historyId": "c2fd5768cf67220112664c59c15e5d4b", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "a18da468-aa50-4dda-83be-5a8f3224c66f", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537946, "stop": 1747021537946}], "start": 1747021537946, "stop": 1747021537982}
\ No newline at end of file
{"uuid": "a2e0f899-75c5-4430-a876-f9b19ab2942c", "befores": [{"name": "api", "status": "passed", "start": 1747021536840, "stop": 1747021536840}], "start": 1747021536840, "stop": 1747021536884}
\ No newline at end of file
{"uuid": "a193b80f-bd77-4de0-b69e-31fbc3fb83a3", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021536306, "stop": 1747021536306}], "start": 1747021536306, "stop": 1747021536342}
\ No newline at end of file
{"uuid": "0fa9d496-535b-436f-8670-a7f95450fa12", "befores": [{"name": "req", "status": "passed", "start": 1747021536788, "stop": 1747021536788}], "start": 1747021536788, "stop": 1747021536830}
\ No newline at end of file
{"uuid": "4bed5cfe-2daa-4837-93e2-9e3c2581b979", "befores": [{"name": "mime", "status": "passed", "start": 1747021536995, "stop": 1747021536995}], "start": 1747021536995, "stop": 1747021537036}
\ No newline at end of file
{"uuid": "19b40869-7c4e-4ba8-84cd-c2744341c1c5", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537097, "stop": 1747021537097}], "start": 1747021537097, "stop": 1747021537131}
\ No newline at end of file
{"uuid": "718574b7-0df9-4242-aa80-35976e5921bd", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537362, "stop": 1747021537362}], "start": 1747021537362, "stop": 1747021537381}
\ No newline at end of file
{"uuid": "865e452f-a131-4908-b931-63a5bc4a625f", "befores": [{"name": "title", "status": "passed", "start": 1747021538748, "stop": 1747021538748}], "start": 1747021538748, "stop": 1747021538816}
\ No newline at end of file
{"uuid": "12ece552-60a6-46ec-b5d6-6f582a2c4669", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537396, "stop": 1747021537396}], "start": 1747021537396, "stop": 1747021537447}
\ No newline at end of file
{"uuid": "99eef58e-844b-4d4d-9897-3fbade10f442", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537609, "stop": 1747021537609}], "start": 1747021537609, "stop": 1747021537640}
\ No newline at end of file
{"uuid": "d9440808-9ada-47ee-918a-51c426fb6f66", "befores": [{"name": "req", "status": "passed", "start": 1747021536995, "stop": 1747021536995}], "start": 1747021536995, "stop": 1747021537038}
\ No newline at end of file
{"uuid": "81f0ee39-be33-4fce-a172-84b9dc8081fb", "befores": [{"name": "req", "status": "passed", "start": 1747021537046, "stop": 1747021537046}], "start": 1747021537046, "stop": 1747021537090}
\ No newline at end of file
{"uuid": "d9bcc46c-2df2-4804-bcd0-6547b003ef63", "befores": [{"name": "api", "status": "passed", "start": 1747021536951, "stop": 1747021536951}], "start": 1747021536951, "stop": 1747021536987}
\ No newline at end of file
{"uuid": "88fae75c-39be-4511-a712-688743684971", "befores": [{"name": "module", "status": "passed", "start": 1747021538945, "stop": 1747021538945}], "start": 1747021538945, "stop": 1747021538989}
\ No newline at end of file
{"uuid": "ff1f6820-85f6-445a-8193-18643a212709", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021537362, "stop": 1747021537362}], "start": 1747021537362, "stop": 1747021537384}
\ No newline at end of file
{"uuid": "a85abbd0-7c3b-4efe-af87-b055ac0843b5", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538872, "stop": 1747021538872}], "start": 1747021538872, "stop": 1747021538933}
\ No newline at end of file
{"uuid": "107ce2e7-6ee1-434e-adab-edfce3ef3160", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538577, "stop": 1747021538577}], "start": 1747021538577, "stop": 1747021538626}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
请求的url为:http://36.139.193.99:8088/auth,
用例数据为:{"username": "admin","password": class},
期望数据为:{'message': '账号或密码错误'},
服务器返回的数据为:{"state":false,"message":"Unrecognized token 'class': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\n at [Source: (PushbackInputStream); line: 1, column: 40]","code":200,"logId":"1921772322617303040"}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
请求的url为:http://36.139.193.99:8088/refresh,
用例数据为:None,
期望数据为:{'message': '刷新成功'},
服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3NDcxMDc2MDEsImlhdCI6MTc0NzAyMTIwMX0.7HpiQ9Rar01jFJlrbBdA5SBoJzhQNh-_Y-7xIFjmHmC-VwYrNq2xVu1OPZ1vVw9AJ-KddEJdwV646W763I2WfQ","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
\ No newline at end of file
{"uuid": "47f49e7e-8972-482a-b292-10b0d78b5792", "befores": [{"name": "req", "status": "passed", "start": 1747021538238, "stop": 1747021538238}], "start": 1747021538238, "stop": 1747021538316}
\ No newline at end of file
{"uuid": "1d22d7fa-12c1-42d8-ae01-cdc1abb1af5e", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538715, "stop": 1747021538715}], "start": 1747021538715, "stop": 1747021538736}
\ No newline at end of file
{"uuid": "5772aa72-5862-452f-b918-bcfc1eccf381", "befores": [{"name": "level", "status": "passed", "start": 1747021537515, "stop": 1747021537515}], "start": 1747021537515, "stop": 1747021537552}
\ No newline at end of file
{"uuid": "2cc036c0-849c-47a4-89ab-4306624ef460", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538381, "stop": 1747021538381}], "start": 1747021538381, "stop": 1747021538414}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的参数为特殊字符-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}-expect5-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t请求的url为:http://36.139.193.99:8088/auth, \n\t用例数据为:{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}, \n\t期望数据为:{'message': '账号或密码错误'}, \n\t服务器返回的数据为:{\"state\":false,\"message\":\"解密密码异常,请检查RSA公钥和私钥配置\",\"code\":200,\"logId\":\"1921772321212211200\"}", "trace": "self = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F578760>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的参数为特殊字符'\nlevel = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_zhangsan\\test_bpm.py:28: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F578760>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码的参数为特殊字符'\nlevel = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n assert expect[key] == res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t请求的url为:{url}, \\n\\t用例数据为:{case}, \\n\\t期望数据为:{expect}, \\n\\t服务器返回的数据为:{res.text}\")\nE AssertionError: 断言失败,\nE \t请求的url为:http://36.139.193.99:8088/auth, \nE \t用例数据为:{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}, \nE \t期望数据为:{'message': '账号或密码错误'}, \nE \t服务器返回的数据为:{\"state\":false,\"message\":\"解密密码异常,请检查RSA公钥和私钥配置\",\"code\":200,\"logId\":\"1921772321212211200\"}\n\ntest_case\\test_zhangsan\\test_bpm.py:30: AssertionError"}, "attachments": [{"name": "log", "source": "b6f13216-0969-40ac-a564-8a51ecbf4d8c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的参数为特殊字符'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"♠♣▣▤▥▦▩◘◙◈♫\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538191, "stop": 1747021538216, "uuid": "d7f7e40d-e6de-40c9-a67a-b2777a9c7708", "historyId": "8b25e3bf9846486e4682e02b732f397d", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "2dcf52d1-4f53-429c-a413-99633aac5bc1", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021536840, "stop": 1747021536840}], "start": 1747021536840, "stop": 1747021536876}
\ No newline at end of file
{"uuid": "6cd2bfed-2b79-4cf0-980d-33c2ce75b950", "befores": [{"name": "module", "status": "passed", "start": 1747021538084, "stop": 1747021538084}], "start": 1747021538084, "stop": 1747021538132}
\ No newline at end of file
{"uuid": "47949e59-64bb-4abb-913b-4e58758ce904", "befores": [{"name": "api", "status": "passed", "start": 1747021538381, "stop": 1747021538381}], "start": 1747021538381, "stop": 1747021538421}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
INFO  root:__init__.py:45 执行的功能为:select, 功能的描述为:执行查询的sql语句,并返回查询, 所在的文件为:E:\untitled\APIAutoTest_v3\common\db.py, 所在的行为:46
\ No newline at end of file
{"uuid": "c01cea0a-0928-4b44-b73a-02c8f6522087", "befores": [{"name": "case", "status": "passed", "start": 1747021538477, "stop": 1747021538477}], "start": 1747021538477, "stop": 1747021538515}
\ No newline at end of file
{"uuid": "bf13fec0-9b18-4a86-be20-0b94d2bed5a5", "befores": [{"name": "api", "status": "passed", "start": 1747021538640, "stop": 1747021538640}], "start": 1747021538640, "stop": 1747021538709}
\ No newline at end of file
{"uuid": "a51f7e58-7307-4742-b140-a97ed50ee01c", "befores": [{"name": "level", "status": "passed", "start": 1747021538238, "stop": 1747021538238}], "start": 1747021538238, "stop": 1747021538317}
\ No newline at end of file
{"uuid": "a87b2bc9-d3f4-41a9-a429-afb2ec68ca11", "befores": [{"name": "api", "status": "passed", "start": 1747021538476, "stop": 1747021538476}], "start": 1747021538476, "stop": 1747021538522}
\ No newline at end of file
{"uuid": "fff9eea1-df1d-43a4-b77f-f91989a9bb76", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538946, "stop": 1747021538946}], "start": 1747021538946, "stop": 1747021538980}
\ No newline at end of file
{"uuid": "0449d570-5669-4ab2-93fc-03d7c9b414fb", "befores": [{"name": "mime", "status": "passed", "start": 1747021537297, "stop": 1747021537297}], "start": 1747021537297, "stop": 1747021537353}
\ No newline at end of file
{"uuid": "a34ba17d-cdf5-4761-bc4f-c66b2a93cc48", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538577, "stop": 1747021538577}], "start": 1747021538577, "stop": 1747021538625}
\ No newline at end of file
{"uuid": "72a84844-3201-4c27-9c1e-aa6f8fa971bc", "befores": [{"name": "expect", "status": "passed", "start": 1747021538190, "stop": 1747021538190}], "start": 1747021538190, "stop": 1747021538227}
\ No newline at end of file
{"uuid": "433236ca-ed34-486d-b9c5-4e5be32b7c16", "befores": [{"name": "module", "status": "passed", "start": 1747021536951, "stop": 1747021536951}], "start": 1747021536951, "stop": 1747021536989}
\ No newline at end of file
{"uuid": "bf99a641-0a09-4282-826f-10981645824b", "befores": [{"name": "mime", "status": "passed", "start": 1747021537189, "stop": 1747021537189}], "start": 1747021537189, "stop": 1747021537288}
\ No newline at end of file
{"uuid": "8ebbb9fe-ce1c-4999-9835-2c637d6755a2", "befores": [{"name": "url", "status": "passed", "start": 1747021537609, "stop": 1747021537609}], "start": 1747021537609, "stop": 1747021537647}
\ No newline at end of file
{"uuid": "2d74ada3-f16e-4fdf-b6d8-9a5a6995bc53", "befores": [{"name": "module", "status": "passed", "start": 1747021536738, "stop": 1747021536738}], "start": 1747021536738, "stop": 1747021536785}
\ No newline at end of file
{"uuid": "d5fa46cb-465c-48b3-b264-477c3076af38", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538190, "stop": 1747021538190}], "start": 1747021538190, "stop": 1747021538225}
\ No newline at end of file
{"uuid": "932fe62f-0bfa-4fbc-9e52-0017eedff184", "befores": [{"name": "level", "status": "passed", "start": 1747021538138, "stop": 1747021538138}], "start": 1747021538138, "stop": 1747021538182}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码多传-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}-expect3-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t请求的url为:http://36.139.193.99:8088/auth, \n\t用例数据为:{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}, \n\t期望数据为:{'message': '账号或密码错误'}, \n\t服务器返回的数据为:{\"state\":false,\"message\":\"解密密码异常,请检查RSA公钥和私钥配置\",\"code\":200,\"logId\":\"1921772320755032064\"}", "trace": "self = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F5785E0>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码多传', level = '中'\nreq = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_zhangsan\\test_bpm.py:28: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_zhangsan.test_bpm.TestBPM object at 0x0000018E8F5785E0>\nreq_fix = <APIAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000018E8F6DCAF0>, module = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码多传', level = '中'\nreq = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\", datas)\n def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n \n res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)\n \n try:\n for key in expect:\n assert expect[key] == res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t请求的url为:{url}, \\n\\t用例数据为:{case}, \\n\\t期望数据为:{expect}, \\n\\t服务器返回的数据为:{res.text}\")\nE AssertionError: 断言失败,\nE \t请求的url为:http://36.139.193.99:8088/auth, \nE \t用例数据为:{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}, \nE \t期望数据为:{'message': '账号或密码错误'}, \nE \t服务器返回的数据为:{\"state\":false,\"message\":\"解密密码异常,请检查RSA公钥和私钥配置\",\"code\":200,\"logId\":\"1921772320755032064\"}\n\ntest_case\\test_zhangsan\\test_bpm.py:30: AssertionError"}, "attachments": [{"name": "log", "source": "78b57d45-3d64-4adc-b902-dc17cb61ee43-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码多传'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538085, "stop": 1747021538105, "uuid": "0a2f97d7-007d-494b-8527-5118717fce2a", "historyId": "843e2a713a08510d135f5b1d6061de66", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "bc4ad53e-75db-4bac-b656-905c9801232e", "befores": [{"name": "req", "status": "passed", "start": 1747021538872, "stop": 1747021538872}], "start": 1747021538872, "stop": 1747021538939}
\ No newline at end of file
{"uuid": "5b858d51-ae20-4a27-a96a-99487768eb4d", "befores": [{"name": "mime", "status": "passed", "start": 1747021537396, "stop": 1747021537396}], "start": 1747021537396, "stop": 1747021537452}
\ No newline at end of file
{"uuid": "a4b7ef5e-5194-4b92-ba35-9b6179f22d96", "befores": [{"name": "api", "status": "passed", "start": 1747021537297, "stop": 1747021537297}], "start": 1747021537297, "stop": 1747021537358}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码多传-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}-expect3-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t用例数据为{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}", "trace": "self = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F1130>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码多传', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n> assert expect[key]==res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_bpm\\test_bpm.py:19: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F1130>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '认证接口', api = '登录系统', title = '反向用例-正确的用户名,密码多传', level = '中', req = 'POST', url = 'http://36.139.193.99:8088/auth', mime = 'application/json'\ncase = '{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}'\nexpect = {'message': '账号或密码错误'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n assert expect[key]==res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t用例数据为{case}\")\nE AssertionError: 断言失败,\nE \t用例数据为{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}\n\ntest_case\\test_bpm\\test_bpm.py:21: AssertionError"}, "attachments": [{"name": "log", "source": "5041ad6a-b292-4875-9329-02d5b8dd8312-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码多传'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": \"fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8=\",\"password\": \"123456\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021536739, "stop": 1747021536764, "uuid": "3e164c98-e772-4cea-ae9a-0bcb9f222bd0", "historyId": "c3bc8efa03dea07d8223f0baddabf64b", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "b85a8445-472b-4e3f-893d-eaab8bbfa9ce", "befores": [{"name": "mime", "status": "passed", "start": 1747021538238, "stop": 1747021538238}], "start": 1747021538238, "stop": 1747021538313}
\ No newline at end of file
{"uuid": "f608d37b-fba1-4991-bc76-03edb5e22469", "befores": [{"name": "expect", "status": "passed", "start": 1747021537609, "stop": 1747021537609}], "start": 1747021537609, "stop": 1747021537643}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的数据为空-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"password\": \"\"}-expect10-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "ae762acd-8092-4b30-8344-747f5190f42b-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的数据为空'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": \"\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538477, "stop": 1747021538509, "uuid": "c7942f57-9d04-4443-bbd7-21d46a13995f", "historyId": "33aa76909d6d79c32eba86ce39a49e84", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "3776b7d2-ed02-4e8a-8213-46790cf91717", "befores": [{"name": "title", "status": "passed", "start": 1747021537143, "stop": 1747021537143}], "start": 1747021537143, "stop": 1747021537183}
\ No newline at end of file
{"uuid": "0b3643dc-7bad-4f67-a9f7-61ff134152eb", "befores": [{"name": "req", "status": "passed", "start": 1747021536951, "stop": 1747021536951}], "start": 1747021536951, "stop": 1747021536985}
\ No newline at end of file
{"uuid": "8dd5d03e-70fa-41ab-8d10-af685f5f3bbc", "befores": [{"name": "mime", "status": "passed", "start": 1747021538872, "stop": 1747021538872}], "start": 1747021538872, "stop": 1747021538936}
\ No newline at end of file
{"uuid": "d0c1c39e-8ae6-4826-9cc8-958f3c9a128f", "befores": [{"name": "api", "status": "passed", "start": 1747021537945, "stop": 1747021537945}], "start": 1747021537945, "stop": 1747021537989}
\ No newline at end of file
{"uuid": "59e0011b-0240-4f81-a7dd-09e0ef323854", "befores": [{"name": "mime", "status": "passed", "start": 1747021538381, "stop": 1747021538381}], "start": 1747021538381, "stop": 1747021538418}
\ No newline at end of file
{"uuid": "efd3737c-159e-4148-af25-a44259d42a35", "befores": [{"name": "title", "status": "passed", "start": 1747021538870, "stop": 1747021538870}], "start": 1747021538870, "stop": 1747021538941}
\ No newline at end of file
{"uuid": "64d90664-9786-486f-bc40-4f1b3b483834", "befores": [{"name": "req", "status": "passed", "start": 1747021537143, "stop": 1747021537143}], "start": 1747021537143, "stop": 1747021537182}
\ No newline at end of file
INFO  pytest_dependency:pytest_dependency.py:100 skip test_add_org because it depends on test_bpm_dependency/test_auth.py::TestAuth::test_login
\ No newline at end of file
{"uuid": "0759e8ee-7c59-4e57-8fbc-e927e8f97dff", "befores": [{"name": "title", "status": "passed", "start": 1747021536367, "stop": 1747021536367}], "start": 1747021536367, "stop": 1747021536686}
\ No newline at end of file
{"uuid": "a69dfba0-887c-46ef-9800-6d2f9cb21385", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538190, "stop": 1747021538190}], "start": 1747021538190, "stop": 1747021538227}
\ No newline at end of file
{"uuid": "6e45db53-1313-45d7-8281-57ee82f93d11", "befores": [{"name": "case", "status": "passed", "start": 1747021536995, "stop": 1747021536995}], "start": 1747021536995, "stop": 1747021537034}
\ No newline at end of file
{"uuid": "553d1859-4f40-4f4b-a927-d935b5f2fb87", "befores": [{"name": "module", "status": "passed", "start": 1747021538429, "stop": 1747021538429}], "start": 1747021538429, "stop": 1747021538472}
\ No newline at end of file
{"name": "test_bpm[维度管理-添加维度-正向用例-高-post-http://36.139.193.99:8088/api/demension/v1/dem/addDem-application/json-case13-expect13-delete-delete from uc_demension where CODE_=\"testDemension\";-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,\n\t用例数据为{'code': 'testDemension', 'description': '测试维度', 'isDefault': 0, 'name': '测试维度'}", "trace": "self = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F18B0>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '维度管理', api = '添加维度', title = '正向用例', level = '高', req = 'post', url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'application/json'\ncase = {'code': 'testDemension', 'description': '测试维度', 'isDefault': 0, 'name': '测试维度'}, expect = {'message': '添加维度成功'}, sql_type = 'delete'\nsql_data = 'delete from uc_demension where CODE_=\"testDemension\";', update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n> assert expect[key]==res.json().get(key)\nE AssertionError: assert '添加维度成功' == '添加维度成功!'\nE \nE - 添加维度成功!\nE ? -\nE + 添加维度成功\n\ntest_case\\test_bpm\\test_bpm.py:19: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <API2.test_case.test_bpm.test_bpm.TestBPM object at 0x0000018E8F4F18B0>, req_fix = <API2.request_method.request_method.RequestMethod object at 0x0000018E8F5D4850>\nmodule = '维度管理', api = '添加维度', title = '正向用例', level = '高', req = 'post', url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', mime = 'application/json'\ncase = {'code': 'testDemension', 'description': '测试维度', 'isDefault': 0, 'name': '测试维度'}, expect = {'message': '添加维度成功'}, sql_type = 'delete'\nsql_data = 'delete from uc_demension where CODE_=\"testDemension\";', update_key = None\n\n @log_decorator\n @pytest.mark.parametrize(\"module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key\",datas)\n def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):\n res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)\n try:\n for key in expect:\n assert expect[key]==res.json().get(key)\n except AssertionError:\n> raise AssertionError(f\"断言失败,\\n\\t用例数据为{case}\")\nE AssertionError: 断言失败,\nE \t用例数据为{'code': 'testDemension', 'description': '测试维度', 'isDefault': 0, 'name': '测试维度'}\n\ntest_case\\test_bpm\\test_bpm.py:21: AssertionError"}, "attachments": [{"name": "log", "source": "25729e66-baed-4baf-b588-b6e7b9d55290-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'添加维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}, {"name": "req", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "{'code': 'testDemension', 'description': '测试维度', 'isDefault': 0, 'name': '测试维度'}"}, {"name": "expect", "value": "{'message': '添加维度成功'}"}, {"name": "sql_type", "value": "'delete'"}, {"name": "sql_data", "value": "'delete from uc_demension where CODE_=\"testDemension\";'"}, {"name": "update_key", "value": "None"}], "start": 1747021537298, "stop": 1747021537338, "uuid": "80d5c810-0b41-4a59-88df-14004319b4e6", "historyId": "2740e00b2e54f83c2febf90a3cf2e96a", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "e72f0df9-355e-4899-b4c7-5e125737b38e", "befores": [{"name": "url", "status": "passed", "start": 1747021536888, "stop": 1747021536888}], "start": 1747021536888, "stop": 1747021536942}
\ No newline at end of file
{"uuid": "cf3789fb-3a4c-4ffa-9259-ab47ffe35e5f", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537655, "stop": 1747021537655}], "start": 1747021537655, "stop": 1747021537689}
\ No newline at end of file
{"uuid": "a6acc1a2-24b7-41c7-ad99-93f8445b31ee", "befores": [{"name": "update_key", "status": "passed", "start": 1747021538715, "stop": 1747021538715}], "start": 1747021538715, "stop": 1747021538732}
\ No newline at end of file
{"uuid": "d17912c6-cbe6-4c1b-820d-6907738745bb", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538324, "stop": 1747021538324}], "start": 1747021538324, "stop": 1747021538367}
\ No newline at end of file
{"uuid": "2833d1f4-9487-47d7-b50c-305748684291", "befores": [{"name": "title", "status": "passed", "start": 1747021537515, "stop": 1747021537515}], "start": 1747021537515, "stop": 1747021537553}
\ No newline at end of file
{"uuid": "559d8188-159d-4716-ab03-8fc121a3b340", "befores": [{"name": "module", "status": "passed", "start": 1747021537296, "stop": 1747021537296}], "start": 1747021537296, "stop": 1747021537358}
\ No newline at end of file
{"name": "test_bpm[认证接口-登录系统-反向用例-正确的用户名,密码的数据过短-中-POST-http://36.139.193.99:8088/auth-application/json-{\"username\": \"admin\",\"password\": \"f\"}-expect7-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "bedbcb1b-5adc-4efb-9ed7-be508b7311d9-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-正确的用户名,密码的数据过短'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'POST'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case", "value": "'{\"username\": \"admin\",\"password\": \"f\"}'"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021536952, "stop": 1747021536978, "uuid": "1cc7c14d-904d-4e9e-ba53-ebc093f8fa60", "historyId": "6b39bc6fdfb4174d32b7985953a6a65e", "testCaseId": "7ef4da15e0946ca293c8e0b6457e0add", "fullName": "test_case.test_bpm.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_bpm"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm.test_bpm"}]}
\ No newline at end of file
{"uuid": "ac8a3a81-8fdf-49aa-aa62-d07838b0250c", "befores": [{"name": "level", "status": "passed", "start": 1747021537362, "stop": 1747021537362}], "start": 1747021537362, "stop": 1747021537388}
\ No newline at end of file
{"uuid": "355efccb-2ff3-4dbf-9595-a677157479b1", "befores": [{"name": "url", "status": "passed", "start": 1747021538748, "stop": 1747021538748}], "start": 1747021538748, "stop": 1747021538812}
\ No newline at end of file
{"uuid": "837775f3-3523-4fe5-933f-d825ba5b24f2", "befores": [{"name": "mime", "status": "passed", "start": 1747021538084, "stop": 1747021538084}], "start": 1747021538084, "stop": 1747021538125}
\ No newline at end of file
{"uuid": "e66359ea-25ad-42ba-8741-9ffc31bf33ea", "befores": [{"name": "mime", "status": "passed", "start": 1747021538190, "stop": 1747021538190}], "start": 1747021538190, "stop": 1747021538229}
\ No newline at end of file
{"uuid": "e13d80ba-fcdf-41ed-8d9d-200da3978861", "befores": [{"name": "expect", "status": "passed", "start": 1747021537946, "stop": 1747021537946}], "start": 1747021537945, "stop": 1747021537983}
\ No newline at end of file
{"uuid": "d4874325-e060-48e5-bb8c-0908a2a3793b", "befores": [{"name": "level", "status": "passed", "start": 1747021536888, "stop": 1747021536888}], "start": 1747021536888, "stop": 1747021536944}
\ No newline at end of file
{"uuid": "38757889-0f9c-4341-83ce-12e78655707d", "befores": [{"name": "req", "status": "passed", "start": 1747021536367, "stop": 1747021536367}], "start": 1747021536367, "stop": 1747021536684}
\ No newline at end of file
{"uuid": "77a4449e-e44b-4d92-8095-d4236e684d78", "befores": [{"name": "api", "status": "passed", "start": 1747021538037, "stop": 1747021538037}], "start": 1747021538037, "stop": 1747021538077}
\ No newline at end of file
{"uuid": "d288cf18-af15-4fbb-a95d-0a547fb0ccbd", "befores": [{"name": "mime", "status": "passed", "start": 1747021537945, "stop": 1747021537945}], "start": 1747021537945, "stop": 1747021537985}
\ No newline at end of file
{"uuid": "40a0abd7-2985-4e8e-a85f-82a455bb2b18", "befores": [{"name": "sql_type", "status": "passed", "start": 1747021538477, "stop": 1747021538477}], "start": 1747021538477, "stop": 1747021538512}
\ No newline at end of file
{"uuid": "1ff2165f-cb8b-4b42-93a6-92d171d70986", "befores": [{"name": "api", "status": "passed", "start": 1747021539044, "stop": 1747021539044}], "start": 1747021539044, "stop": 1747021539088}
\ No newline at end of file
{"uuid": "50a63796-d9d6-4d7e-8209-c05c615e7a81", "befores": [{"name": "module", "status": "passed", "start": 1747021539044, "stop": 1747021539044}], "start": 1747021539044, "stop": 1747021539089}
\ No newline at end of file
{"uuid": "3d1d2cac-5e4d-4780-9749-b029c49f2eaa", "befores": [{"name": "expect", "status": "passed", "start": 1747021538477, "stop": 1747021538477}], "start": 1747021538477, "stop": 1747021538514}
\ No newline at end of file
{"uuid": "293c7a10-8552-493d-9349-a4d034fd2d7b", "befores": [{"name": "update_key", "status": "passed", "start": 1747021536306, "stop": 1747021536306}], "start": 1747021536306, "stop": 1747021536341}
\ No newline at end of file
{"uuid": "0c01fe60-f8fe-4627-ac86-6f4e24b3427a", "befores": [{"name": "title", "status": "passed", "start": 1747021537189, "stop": 1747021537189}], "start": 1747021537189, "stop": 1747021537290}
\ No newline at end of file
INFO  root:__init__.py:45 执行的功能为:__init__, 功能的描述为:关联被测系统的状态, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:18
INFO  root:__init__.py:45 执行的功能为:__init__, 功能的描述为:获取系统配置ini文件的路径,并创建Configparser对象,在读取ini文件, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:16
INFO  root:__init__.py:45 执行的功能为:get_host, 功能的描述为:根据key,获取被测系统的域名, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:24
INFO  root:__init__.py:45 执行的功能为:__init__, 功能的描述为:创建链接对象和游标对象, 所在的文件为:E:\untitled\APIAutoTest_v3\common\db.py, 所在的行为:17
INFO  root:__init__.py:45 执行的功能为:__init__, 功能的描述为:获取系统配置ini文件的路径,并创建Configparser对象,在读取ini文件, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:16
INFO  root:__init__.py:45 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的链接信息, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:29
INFO  root:__init__.py:45 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的链接信息, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:29
INFO  root:__init__.py:45 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的链接信息, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:29
INFO  root:__init__.py:45 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的链接信息, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:29
INFO  root:__init__.py:45 执行的功能为:get_sql_connect_msg, 功能的描述为:根据key,获取数据库的链接信息, 所在的文件为:E:\untitled\APIAutoTest_v3\common\read_system_ini.py, 所在的行为:29
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
\ No newline at end of file
{"uuid": "f650fa3c-73ae-40e7-b68d-3d8f9f9ef8ed", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021538872, "stop": 1747021538872}], "start": 1747021538872, "stop": 1747021538932}
\ No newline at end of file
{"name": "test_bpm[组织管理-保存组织参数-正向用例-中-post-http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams-query|json-case16-expect16-None-None-None]", "status": "passed", "attachments": [{"name": "log", "source": "b89b9cdb-eb75-4a28-80f7-b1253fb5c507-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'保存组织参数'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "req", "value": "'post'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}, {"name": "mime", "value": "'query|json'"}, {"name": "case", "value": "{'query': 'orgCode=testAddOrg', 'body': '[{\"alias\":\"test0428\",\"value\":500}]'}"}, {"name": "expect", "value": "{'state': True, 'message': '保存组织参数成功!', 'value': '', 'code': 200}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1747021538822, "stop": 1747021538856, "uuid": "26e7f89f-e88b-4989-907f-c8e004b8d176", "historyId": "2aef7075a1de8ae954a70cd34e8897aa", "testCaseId": "7313ea18e628429ba9747a9ce28f04ea", "fullName": "test_case.test_zhangsan.test_bpm.TestBPM#test_bpm", "labels": [{"name": "parentSuite", "value": "test_case.test_zhangsan"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-F40JUP61"}, {"name": "thread", "value": "45892-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zhangsan.test_bpm"}]}
\ No newline at end of file
{"uuid": "15c10c38-76e9-4cb0-898b-2e0ebb5d1bb3", "befores": [{"name": "sql_data", "status": "passed", "start": 1747021537143, "stop": 1747021537143}], "start": 1747021537143, "stop": 1747021537177}
\ No newline at end of file
{"uuid": "aa4ed385-4e3c-4cf1-bfaa-5c1f6536d8a7", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537097, "stop": 1747021537097}], "start": 1747021537097, "stop": 1747021537128}
\ No newline at end of file
{"uuid": "a6087db2-6fc3-45b1-9ed5-ff554ff921ac", "befores": [{"name": "update_key", "status": "passed", "start": 1747021537297, "stop": 1747021537297}], "start": 1747021537297, "stop": 1747021537348}
\ No newline at end of file
INFO  root:__init__.py:44 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20
INFO  root:__init__.py:45 执行的功能为:request_all, 功能的描述为:
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
, 所在的文件为:E:\untitled\APIAutoTest_v3\request_method\request_method.py, 所在的行为:32
INFO  root:__init__.py:45 执行的功能为:delete, 功能的描述为:执行删除的sql语句, 所在的文件为:E:\untitled\APIAutoTest_v3\common\db.py, 所在的行为:37
ERROR  root:__init__.py:49 执行的功能为:test_bpm, 功能的描述为:None, 所在的文件为:E:\untitled\API2\test_case\test_zhangsan\test_bpm.py, 所在的行为:20.报错,错误为:<class 'AssertionError'>, 错误的描述为:断言失败,
请求的url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem,
用例数据为:{'code': 'testDemension', 'description': '测试维度', 'isDefault': 0, 'name': '测试维度'},
期望数据为:{'message': '添加维度成功'},
服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "08b2298a-bf73-4a8b-b8d7-00695531517f", "befores": [{"name": "level", "status": "passed", "start": 1747021537189, "stop": 1747021537189}], "start": 1747021537189, "stop": 1747021537290}
\ No newline at end of file
{"uuid": "345de1d8-bbaa-42c7-827a-cb905ec0ca91", "befores": [{"name": "api", "status": "passed", "start": 1747021538238, "stop": 1747021538238}], "start": 1747021538238, "stop": 1747021538318}
\ No newline at end of file
{"uuid": "60447b5f-e5a9-4095-8e82-70c2c47fbe93", "befores": [{"name": "title", "status": "passed", "start": 1747021538429, "stop": 1747021538429}], "start": 1747021538429, "stop": 1747021538471}
\ No newline at end of file
{"uuid": "ee40cf34-0015-4d97-8a36-7cd9125e1691", "befores": [{"name": "api", "status": "passed", "start": 1747021538138, "stop": 1747021538138}], "start": 1747021538138, "stop": 1747021538184}
\ No newline at end of file
{"uuid": "a56f4031-ee62-4f62-9441-b2a7d23f33c6", "befores": [{"name": "title", "status": "passed", "start": 1747021538476, "stop": 1747021538476}], "start": 1747021538476, "stop": 1747021538521}
\ No newline at end of file
{"uuid": "f6662d34-e4e4-4147-b646-cea16c67835e", "befores": [{"name": "case", "status": "passed", "start": 1747021538748, "stop": 1747021538748}], "start": 1747021538748, "stop": 1747021538811}
\ No newline at end of file
body {
font-family: Helvetica, Arial, sans-serif;
font-size: 12px;
/* do not increase min-width as some may use split screens */
min-width: 800px;
color: #999;
}
h1 {
font-size: 24px;
color: black;
}
h2 {
font-size: 16px;
color: black;
}
p {
color: black;
}
a {
color: #999;
}
table {
border-collapse: collapse;
}
/******************************
* SUMMARY INFORMATION
******************************/
#environment td {
padding: 5px;
border: 1px solid #e6e6e6;
vertical-align: top;
}
#environment tr:nth-child(odd) {
background-color: #f6f6f6;
}
#environment ul {
margin: 0;
padding: 0 20px;
}
/******************************
* TEST RESULT COLORS
******************************/
span.passed,
.passed .col-result {
color: green;
}
span.skipped,
span.xfailed,
span.rerun,
.skipped .col-result,
.xfailed .col-result,
.rerun .col-result {
color: orange;
}
span.error,
span.failed,
span.xpassed,
.error .col-result,
.failed .col-result,
.xpassed .col-result {
color: red;
}
.col-links__extra {
margin-right: 3px;
}
/******************************
* RESULTS TABLE
*
* 1. Table Layout
* 2. Extra
* 3. Sorting items
*
******************************/
/*------------------
* 1. Table Layout
*------------------*/
#results-table {
border: 1px solid #e6e6e6;
color: #999;
font-size: 12px;
width: 100%;
}
#results-table th,
#results-table td {
padding: 5px;
border: 1px solid #e6e6e6;
text-align: left;
}
#results-table th {
font-weight: bold;
}
/*------------------
* 2. Extra
*------------------*/
.logwrapper {
max-height: 230px;
overflow-y: scroll;
background-color: #e6e6e6;
}
.logwrapper.expanded {
max-height: none;
}
.logwrapper.expanded .logexpander:after {
content: "collapse [-]";
}
.logwrapper .logexpander {
z-index: 1;
position: sticky;
top: 10px;
width: max-content;
border: 1px solid;
border-radius: 3px;
padding: 5px 7px;
margin: 10px 0 10px calc(100% - 80px);
cursor: pointer;
background-color: #e6e6e6;
}
.logwrapper .logexpander:after {
content: "expand [+]";
}
.logwrapper .logexpander:hover {
color: #000;
border-color: #000;
}
.logwrapper .log {
min-height: 40px;
position: relative;
top: -50px;
height: calc(100% + 50px);
border: 1px solid #e6e6e6;
color: black;
display: block;
font-family: "Courier New", Courier, monospace;
padding: 5px;
padding-right: 80px;
white-space: pre-wrap;
}
div.media {
border: 1px solid #e6e6e6;
float: right;
height: 240px;
margin: 0 5px;
overflow: hidden;
width: 320px;
}
.media-container {
display: grid;
grid-template-columns: 25px auto 25px;
align-items: center;
flex: 1 1;
overflow: hidden;
height: 200px;
}
.media-container--fullscreen {
grid-template-columns: 0px auto 0px;
}
.media-container__nav--right,
.media-container__nav--left {
text-align: center;
cursor: pointer;
}
.media-container__viewport {
cursor: pointer;
text-align: center;
height: inherit;
}
.media-container__viewport img,
.media-container__viewport video {
object-fit: cover;
width: 100%;
max-height: 100%;
}
.media__name,
.media__counter {
display: flex;
flex-direction: row;
justify-content: space-around;
flex: 0 0 25px;
align-items: center;
}
.collapsible td:not(.col-links) {
cursor: pointer;
}
.collapsible td:not(.col-links):hover::after {
color: #bbb;
font-style: italic;
cursor: pointer;
}
.col-result {
width: 130px;
}
.col-result:hover::after {
content: " (hide details)";
}
.col-result.collapsed:hover::after {
content: " (show details)";
}
#environment-header h2:hover::after {
content: " (hide details)";
color: #bbb;
font-style: italic;
cursor: pointer;
font-size: 12px;
}
#environment-header.collapsed h2:hover::after {
content: " (show details)";
color: #bbb;
font-style: italic;
cursor: pointer;
font-size: 12px;
}
/*------------------
* 3. Sorting items
*------------------*/
.sortable {
cursor: pointer;
}
.sortable.desc:after {
content: " ";
position: relative;
left: 5px;
bottom: -12.5px;
border: 10px solid #4caf50;
border-bottom: 0;
border-left-color: transparent;
border-right-color: transparent;
}
.sortable.asc:after {
content: " ";
position: relative;
left: 5px;
bottom: 12.5px;
border: 10px solid #4caf50;
border-top: 0;
border-left-color: transparent;
border-right-color: transparent;
}
.hidden, .summary__reload__button.hidden {
display: none;
}
.summary__data {
flex: 0 0 550px;
}
.summary__reload {
flex: 1 1;
display: flex;
justify-content: center;
}
.summary__reload__button {
flex: 0 0 300px;
display: flex;
color: white;
font-weight: bold;
background-color: #4caf50;
text-align: center;
justify-content: center;
align-items: center;
border-radius: 3px;
cursor: pointer;
}
.summary__reload__button:hover {
background-color: #46a049;
}
.summary__spacer {
flex: 0 0 550px;
}
.controls {
display: flex;
justify-content: space-between;
}
.filters,
.collapse {
display: flex;
align-items: center;
}
.filters button,
.collapse button {
color: #999;
border: none;
background: none;
cursor: pointer;
text-decoration: underline;
}
.filters button:hover,
.collapse button:hover {
color: #ccc;
}
.filter__label {
margin-right: 10px;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
import requests
from API2 import log_decorator
from API2.common.db import DB
from API2.common.read_ini import ReadIni
class RequestMethod:
@log_decorator
def __init__(self):
"""关联被测系统状态"""
loger=ReadIni().get_host('host') + "/auth"
log_data = {
"username": "admin",
"password": "fWwO5OcV0c5AZfgOohpm4OE/FjKMc5wcjjaJvfbnrTIQMG5d3htn2aFA2iZGkSgYZ+9liGgmple6bCp+NT4PnY2Jlov8tV8Q/+nn2IZTuPCMwHqRrUchpPUr4wXWuQ+Gk55DNu4CZgxWQ5HxfzixGHJT29D6TUiz5Ea+mLm3fg8="
}
self.bpm_session = requests.sessions.Session()
self.header={"Authorization": "Bearer " +self.bpm_session.request(method='post',url=loger,json=log_data).json().get('token')}
self.bpm_session.headers.update(self.header)
self.db=DB()
@log_decorator
def request_all(self,req_method, req_url, req_mime, case_data, sql_type, sql_data, update_key):
"""
封装一个公共的请求方法
:param req_method: 请求方法
:param req_url: 请求的url
:param req_mime: 请求的媒体类型
:param case_data: 用例数据
:param sql_type: sql语句类型
:param sql_data: sql语句
:param update_key: 更新的key
:return: Response Type
"""
# 先执行sql语句---该删除的就删除,如果有查询就需要更新用例数据,更新时,需要注意用例数据的类型
if sql_type=='delete':
self.db.delete(sql_data)
elif sql_type=='select':
select_resule=self.db.select(sql_data)
if isinstance(case_data,str):
case_data=case_data.replace(update_key,select_resule)
else:
case_data[update_key]=select_resule
# 判断sql语句的类型是否为delete|select,或者为select|delete
elif sql_type=="delete|select" or sql_type=="select|delete":
#执行删除
self.db.delete(sql_data['delete'])
select_resule=self.db.select(sql_data['select'])
if isinstance(case_data,str):
case_data=case_data.replace(update_key,select_resule)
else:
case_data[update_key]=select_resule
#判断媒体类型
if req_mime=="json" or req_mime =="application/json":
self.bpm_session.headers["content-type"]="application/json"
if isinstance(case_data,str):
return self.bpm_session.request(method=req_method,url=req_url,data=case_data)
else:
return self.bpm_session.request(method=req_method,url=req_url,json=case_data)
elif req_mime=="text" or req_mime == "text/plain":
self.bpm_session.headers["content-type"]="text/plain"
return self.bpm_session.request(method=req_method,url=req_url,data=case_data)
elif req_mime=="form" or req_mime=="x-www-form-urlencoded" or req_mime == "application/x-www-form-urlencoded":
self.bpm_session.headers["content-type"]=="application/x-www-form-urlencoded"
return self.bpm_session.request(method=req_method,url=req_url,data=case_data)
elif req_mime=='query':
return self.bpm_session.request(method=req_method,url=req_url,params=case_data)
#请求体和地址栏同时传参
elif req_mime=="query|json" or req_mime=="json|query":
body=case_data.get("body")
query=case_data.get("query")
self.bpm_session.headers["content-type"] = "application/json"
if isinstance(body,str):
return self.bpm_session.request(method=req_method,url=req_url,data=body,params=query)
else:
return self.bpm_session.request(method=req_method,url=req_url,json=body,params=query)
elif req_mime is None:
return self.bpm_session.request(method=req_method,url=req_url)
else:
print("媒体类型错误")
if __name__ == '__main__':
data = ['get', 'http://36.139.193.99:8088/api/demension/v1/dem/getDem', 'query', 'code=lllqq', {'isDelete': '0'},None, None, None]
req = RequestMethod()
requst = req.request_all(req_method=data[0], req_url=data[1], req_mime=data[2], case_data=data[3],sql_type=data[-3], sql_data=data[-2], update_key=data[-1])
dem = requst.json()['id']
print(requst.json()['id'])
def pytest_collection_modifyitems(items):
# item表示每个测试用例,解决用例名称中文显示问题
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: test66
# FileName: conftest.py
# Author: lao_zhao
# Datetime: 2025/5/9 14:29
# Description:
#
# ---------------------------------------------------------------------------
import pytest
from API2.request_method.request_method import RequestMethod
@pytest.fixture(scope="session")
def req_fix():
req = RequestMethod()
yield req
req.db.close()
\ No newline at end of file
import pytest
from API2 import log_decorator
from API2.common.read_excel import ReadExcel
from API2.common.read_system_ini import ReadSystemIni
datas=ReadExcel(ReadSystemIni().get_username("user1")).get_data()
# datas=ReadExcel().get_data()
class TestBPM:
@log_decorator
@pytest.mark.parametrize("module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key",datas)
def test_bpm(self,req_fix,module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):
res=req_fix.request_all(req_method=req, req_url=url, req_mime=mime, case_data=case, sql_type=sql_type, sql_data=sql_data, update_key=update_key)
try:
for key in expect:
assert expect[key]==res.json().get(key)
except AssertionError:
raise AssertionError(f"断言失败,\n\t用例数据为{case}")
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test66
# FileName: __init__.py
# Author: lao_zhao
# Datetime: 2025/5/8 10:20
# Description:
#
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test66
# FileName: conftest.py
# Author: lao_zhao
# Datetime: 2025/5/8 10:22
# Description:
#
# ---------------------------------------------------------------------------
# dependency
import pytest
from APIAutoTest_v3.request_method.request_method import RequestMethod
depend_dict = {}
@pytest.fixture(scope="session")
def req_fix():
yield RequestMethod()
@pytest.fixture(scope="session")
def depend_data_fix():
return depend_dict
# 了解
@pytest.fixture(scope="session")
def set_depend_data_fix():
def set_value(key, value):
# ...
depend_dict[key] = value
# ...
yield set_value
@pytest.fixture(scope="session")
def get_depend_data_fix():
def get_value(key):
# ...
value = depend_dict.get(key)
# ...
return value
yield get_value
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test66
# FileName: test_auth.py
# Author: lao_zhao
# Datetime: 2025/5/8 10:20
# Description:
#
# ---------------------------------------------------------------------------
import pytest
class TestAuth:
# 登录
# 标记当前的用例被后续的用例依赖
@pytest.mark.dependency(scope="session")
def test_login(self, req_fix):
login_data = {"username": "admin",
"password": "BEYEoXxKBfk7COvpsAMhEw9laWTPr4PUoREUqe5tssyIl+omAR0uCUS5by+/Ky87hBUOvKrNQkMdHac46fInGWQ4nguGERyyG5pAfNC9rhtiM73iFU2ql2zConiIMZ8aZ9fUhSd1JK+JJnopIgUNAdpWDbG9sCnXng6HjIsD+BM="}
login_url = 'http://36.139.193.99:8088/auth'
res = req_fix.bpm_session.request(method="post", url=login_url, json=login_data)
assert "超级管理员" in res.text
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test66
# FileName: test_dem.py
# Author: lao_zhao
# Datetime: 2025/5/8 10:21
# Description:
#
# ---------------------------------------------------------------------------
import pytest
from faker import Faker
data = Faker(locale="zh_cn")
depend_data = {}
@pytest.mark.dependency(depends=['test_bpm_dependency/test_auth.py::TestAuth::test_login'], scope="session")
def test_add_dem(req_fix):
dem_name = data.company()
dem_code = data.phone_number()
add_dem_data = {"name": dem_name,"code": dem_code,"description":""}
add_dem_url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem'
res = req_fix.bpm_session.request(method="post", url=add_dem_url, json=add_dem_data)
assert "添加维度成功" in res.text
depend_data["demCode"] = dem_code
# @pytest.mark.dependency(depends=['test_bpm/test_dem.py::test_add_dem'], scope="session")
# def test_get_dem_msg(req_fix, depend_data_fix):
# get_dem_msg_url = 'http://36.139.193.99:8088/api/demension/v1/dem/getDem'
# get_dem_msg_data = {"code": depend_data["demCode"]}
# res = req_fix.bpm_session.request(method="get", url=get_dem_msg_url, params=get_dem_msg_data)
# assert '"isDelete":"0"' in res.text
# dem_id = res.json()['id']
# depend_data_fix["DEMID"] = dem_id
@pytest.mark.dependency(depends=['test_bpm_dependency/test_dem.py::test_add_dem'], scope="session")
def test_get_dem_msg(req_fix, set_depend_data_fix):
get_dem_msg_url = 'http://36.139.193.99:8088/api/demension/v1/dem/getDem'
get_dem_msg_data = {"code": depend_data["demCode"]}
res = req_fix.bpm_session.request(method="get", url=get_dem_msg_url, params=get_dem_msg_data)
assert '"isDelete":"0"' in res.text
dem_id = res.json()['id']
set_depend_data_fix("DEMID", dem_id)
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test66
# FileName: test_org.py
# Author: lao_zhao
# Datetime: 2025/5/8 10:21
# Description:
#
# ---------------------------------------------------------------------------
import pytest
from faker import Faker
data = Faker(locale="zh_cn")
'''
# 添加组织
@pytest.mark.dependency(depends=['test_bpm/test_auth.py::TestAuth::test_login', 'test_bpm/test_dem.py::test_add_dem'], scope="session")
def test_add_org(req_fix, depend_data_fix):
print(depend_data_fix["DEMID"])
add_org_url = 'http://36.139.193.99:8088/api/org/v1/org/addOrg'
add_org_data = {
"code": data.phone_number(),
"demId": depend_data_fix["DEMID"],
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": data.company(),
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
res = req_fix.bpm_session.request(method="post", url=add_org_url, json=add_org_data)
print(res.text)
assert "成功" in res.text
'''
# 添加组织
@pytest.mark.dependency(depends=['test_bpm_dependency/test_auth.py::TestAuth::test_login', 'test_bpm_dependency/test_dem.py::test_add_dem'], scope="session")
def test_add_org(req_fix, get_depend_data_fix):
print(get_depend_data_fix("DEMID"))
add_org_url = 'http://36.139.193.99:8088/api/org/v1/org/addOrg'
add_org_data = {
"code": data.phone_number(),
"demId": get_depend_data_fix("DEMID"),
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": data.company(),
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
res = req_fix.bpm_session.request(method="post", url=add_org_url, json=add_org_data)
print(res.text)
assert "成功" in res.text
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test66
# FileName: __init__.py
# Author: lao_zhao
# Datetime: 2025/5/9 15:41
# Description:
#
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test66
# FileName: conftest.py
# Author: lao_zhao
# Datetime: 2025/5/9 14:29
# Description:
#
# ---------------------------------------------------------------------------
import pytest
from APIAutoTest_v3.request_method.request_method import RequestMethod
@pytest.fixture(scope="session")
def req_fix():
req = RequestMethod()
yield req
req.db.close()
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test66
# FileName: test_bpm.py
# Author: lao_zhao
# Datetime: 2025/5/9 14:30
# Description:
#
# ---------------------------------------------------------------------------
import pytest
from API2 import log_decorator
from API2.common.read_excel import ReadExcel
from API2.common.read_system_ini import ReadSystemIni
datas = ReadExcel(ReadSystemIni().get_username("user2")).get_data()
class TestBPM:
@log_decorator
@pytest.mark.parametrize("module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key", datas)
def test_bpm(self, req_fix, module, api, title, level,req, url, mime, case, expect, sql_type, sql_data, update_key):
res = req_fix.request_all(req_method=req,req_url=url,req_mime=mime,case_data=case,sql_type=sql_type,sql_data=sql_data,update_key=update_key)
try:
for key in expect:
assert expect[key] == res.json().get(key)
except AssertionError:
raise AssertionError(f"断言失败,\n\t请求的url为:{url}, \n\t用例数据为:{case}, \n\t期望数据为:{expect}, \n\t服务器返回的数据为:{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