Commit bfe41ab6 by 鲁丽沙

提交I

parent d19b4b74
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: __init__.py
# Author: lao_zhao
# Datetime: 2024/5/20 15:40
# Description:
#
# ---------------------------------------------------------------------------
import functools
import logging
import os
import time
log_dir_path = os.path.join(os.path.join(os.path.dirname(__file__), "report"), "log")
if not os.path.exists(log_dir_path):
# makedirs(c:\c\d\a) os.mkdir
os.makedirs(log_dir_path)
log_file_name = os.path.join(log_dir_path, time.strftime("%Y_%m_%d_%H_%M_%S") + ".log")
def log():
# 创建logger对象
logger = logging.getLogger()
# 设置日志的级别
logger.level = logging.ERROR
# 设置日志文件
handler = logging.FileHandler(log_file_name, mode="a", encoding="utf-8")
# 设置日志的格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s: %(message)s')
# 将格式添加到handler中
handler.setFormatter(formatter)
# 将handler添加到logger对象中
logger.addHandler(handler)
return logger
log = log()
def log_decorator(func_name):
@functools.wraps(func_name)
def inner(*args, **kwargs):
try:
# 写入info级别的日志
"""
__init__(): 构造方法,初始化对象
__new__(): 为对象分配内存空间
__del__(): 析构方法,回收对象
__enter__()/__exit__(): 实现上下文管理器
__mro__: 查看继承顺序
__file__: 获取文件的路径
__name__: 获取功能/类/方法/模块的名称
__iter__(): 创建迭代器
__next__(): 迭代器和生成器取值
__code__: 获取功能的code属性
func.__code__.co_filename: 获取func所在的py文件名称
func.__code__.co_firstlineno: 获取func所在的py文件中行号
__doc__:获取功能的描述
"""
log.info(f"执行的功能为:{func_name.__name__}, 功能的描述为:{func_name.__doc__}, 所在的文件为:"
f"{func_name.__code__.co_filename}, 所在行为:{func_name.__code__.co_firstlineno}")
# 执行功能
return func_name(*args, **kwargs)
except Exception as e:
# 如果发生错误,写入一个错误的日志
log.error(f"执行的功能为:{func_name.__name__}, 功能的描述为:{func_name.__doc__}, 所在的文件为:"
f"{func_name.__code__.co_filename}, 所在行为:{func_name.__code__.co_firstlineno}, 错误为:{e}")
raise e
return inner
# 报告输出
"""
pytest-html----> pip install pytest-html
生成报告的命名:
pytest 用例层目录名称 -vv --html=存放报告的路径/报告名称.html --self-contained-html
-vv: 终端执行显示详细结果
--html: 存放报告的路径/报告名称.html
--self-contained-html: 报告生成单独的html文件
"""
# allure
"""
allure-pytest --- > pip install allure-pytest
第一步:生成测试结果的json文件:pytest 用例模块/包 --alluredir=存放json文件的路径 --clean-alluredir
第二步:
生成一个服务:allure serve 第一步存放json文件的路径
生成静态报告:allure generate 第一步存放json文件的路径 -o 存放报告的路径
打开allure的静态报告:allure open 存放报告的路径
"""
"""
失败重跑插件:pytest-rerunfailures ---> pip install pytest-rerunfailures
"""
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: db.py
# Author: lao_zhao
# Datetime: 2024/5/20 14:08
# Description:
#
# ---------------------------------------------------------------------------
import pymysql
from InterfaceAutoTest import log_decorator
from InterfaceAutoTest.common.read_ini import ReadIni
from InterfaceAutoTest.data_config.settings import *
class DB:
@log_decorator
def __init__(self):
"""链接数据库,获取链接对象和游标对象"""
ini = ReadIni()
try:
self.conn = pymysql.connect(
host=ini.get_db_connect_message(HOST_KEY),
port=int(ini.get_db_connect_message(PORT_KEY)),
user=ini.get_db_connect_message(USERNAME_KEY),
password=ini.get_db_connect_message(PASSWORD_KEY),
database=ini.get_db_connect_message(DATABASE_KEY),
charset="utf8"
)
self.cursor = self.conn.cursor()
except Exception as e:
raise e
@log_decorator
def close(self):
"""关闭吧数据库链接"""
self.cursor.close()
self.conn.close()
@log_decorator
def delete_func(self, sql):
"""执行删除的sql语句"""
try:
self.cursor.execute(sql)
self.conn.commit()
except Exception as e:
raise e
@log_decorator
def select_func(self, sql):
"""执行查询的sql语句,并返回查询结果"""
try:
self.cursor.execute(sql)
except Exception as e:
raise e
else:
result_select = self.cursor.fetchall()
if result_select:
return result_select[0][0]
if __name__ == '__main__':
db = DB()
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: read_excel.py
# Author: lao_zhao
# Datetime: 2024/5/20 14:15
# Description:
#
# ---------------------------------------------------------------------------
import openpyxl
from InterfaceAutoTest import log_decorator
from InterfaceAutoTest.common.read_ini import ReadIni
from InterfaceAutoTest.common.read_json import read_json
from InterfaceAutoTest.data_config.settings import *
class ReadExcel:
@log_decorator
def __init__(self, username="demo", table_name="BPM"):
"""获取所有json文件的路径,再读取json文件,再获取excel的路径和工作表名称,加载工作簿,获取工作表"""
self.ini = ReadIni()
case_data_path = self.ini.get_file_path(CASE_KEY, username)
expect_data_path = self.ini.get_file_path(EXPECT_KEY, username)
sql_data_path = self.ini.get_file_path(SQL_KEY, username)
self.case_data_dict = read_json(case_data_path)
self.expect_data_dict = read_json(expect_data_path)
self.sql_data_dict = read_json(sql_data_path)
excel_path = self.ini.get_file_path(EXCEL_KEY, username)
# table_name = self.ini.get_table_name("table_name")
try:
wb = openpyxl.load_workbook(excel_path)
self.ws = wb[table_name]
except Exception as e:
raise e
@log_decorator
def __get_cell_value(self, column: str, row: int) -> str:
"""获取指定单元格数据"""
try:
value = self.ws[column+str(row)].value
except Exception as e:
raise e
else:
if value is None:
return None
elif value.strip():
return value.strip()
@log_decorator
def module_name(self, row):
"""获取模块名称"""
return self.__get_cell_value(MODULE, row)
@log_decorator
def api_name(self, row):
"""获取接口名称"""
return self.__get_cell_value(API, row)
@log_decorator
def case_req_method(self, row):
"""获取请求方法"""
return self.__get_cell_value(METHOD, row)
@log_decorator
def case_req_url(self, row):
"""获取请求url"""
value = self.__get_cell_value(URL, row)
if value:
return self.ini.get_host(BPM_KEY) + value
@log_decorator
def case_req_mime(self, row):
"""获取请求的媒体类型"""
value = self.__get_cell_value(MIME, row)
if value:
return value.lower()
@log_decorator
def case_data(self, row):
"""获取用例数据"""
case_data_key = self.__get_cell_value(CASE, row)
if case_data_key:
module_name = self.module_name(row)
api_name = self.api_name(row)
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(EXPECT, row)
if expect_data_key:
module_name = self.module_name(row)
api_name = self.api_name(row)
return self.expect_data_dict[module_name][api_name][expect_data_key]
@log_decorator
def sql_data(self, row):
"""获取用例数据"""
sql_data_key = self.__get_cell_value(SQL, row)
if sql_data_key:
module_name = self.module_name(row)
api_name = self.api_name(row)
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(SQL_TYPE, row)
if value:
return value.lower()
@log_decorator
def update_key(self, row):
"""获取更新的key"""
return self.__get_cell_value(UPDATE_KEY, row)
@log_decorator
def case_title(self, row):
"""根据行号,获取用例的标题"""
return self.__get_cell_value(TITLE, row)
@log_decorator
def case_level(self, row):
"""根据行,获取用例等级"""
return self.__get_cell_value(LEVEL, row)
@log_decorator
def get_data(self):
"""获取excel中的数据存放在二维列表中"""
list_data = []
for row in range(2, self.ws.max_row+1):
method = self.case_req_method(row)
url = self.case_req_url(row)
mime = self.case_req_mime(row)
case_data = self.case_data(row)
expect_data = self.expect_data(row)
sql_data = self.sql_data(row)
sql_type = self.sql_type(row)
update_key = self.update_key(row)
# 用例模块,接口,标题,等级
module_name = self.module_name(row)
api_name = self.api_name(row)
case_title = self.case_title(row)
case_level = self.case_level(row)
if method and url:
list_data.append([module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key])
else:
return list_data
if __name__ == '__main__':
excel = ReadExcel()
print(excel.get_data())
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: read_ini.py
# Author: lao_zhao
# Datetime: 2024/5/20 14:02
# Description:
#
# ---------------------------------------------------------------------------
import configparser
import os
from InterfaceAutoTest import log_decorator
from InterfaceAutoTest.data_config.settings import *
class ReadIni:
@log_decorator
def __init__(self):
"""获取ini文件的路径,再使用Configparser对象读取ini文件"""
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, username="demo"):
"""根据key获取file节点下文件的路径"""
try:
value = self.conf.get(FILE, key)
except Exception as e:
raise e
else:
username_dir = os.path.join(self.data_config_path, username)
return os.path.join(username_dir, value)
@log_decorator
def get_table_name(self, key):
"""根据key获取工作表名称"""
try:
value = self.conf.get(WORKSHEET, key)
except Exception as e:
raise e
else:
return value
@log_decorator
def get_host(self, key):
"""根据key获取域名"""
try:
value = self.conf.get(HOST, key)
except Exception as e:
raise e
else:
return value
@log_decorator
def get_db_connect_message(self, key):
"""根据key获取数据库的链接信息"""
try:
value = self.conf.get(DB, key)
except Exception as e:
raise e
else:
return value
if __name__ == '__main__':
ini = ReadIni()
print(ini.get_host("bpm"))
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: read_json.py
# Author: lao_zhao
# Datetime: 2024/5/20 14:13
# Description:
#
# ---------------------------------------------------------------------------
import json
import os.path
from InterfaceAutoTest import log_decorator
@log_decorator
def read_json(filename):
"""读取json文件,将json文件的内容序列化为python对象"""
if os.path.isfile(filename) and filename.endswith(".json"):
try:
with open(filename, mode="r", encoding="utf-8") as f:
return json.load(f)
except Exception as e:
raise e
else:
raise FileNotFoundError("json文件的路径错误")
\ No newline at end of file
# 配置数据配置层中文件的名称
[file1]
# 配置用例管理文件的名称
excel=APIAutoTest.xlsx
# 配置用例数据文件的名称
case=case_data.json
# 配置期望数据的文件
expect=expect_data.json
# sql语句的文件
sql=sql_data.json
[worksheet]
table_name=BPM
[host]
# 配置测试系统的域名
bpm=http://120.46.172.186:8080
[db]
# 配置测试系统的数据库的链接项
host=120.46.172.186
port=3306
username=root
password=root@2023
database=eipsaas
\ No newline at end of file
{
"认证接口":{
"登录系统":{
"LoginSuccess": {"username":"admin","password":"MTIzNDU2"},
"LoginErrorPasswordIsNone": {"username":"admin","password":""},
"LoginErrorPasswordIsLong":{"username":"admin","password":"MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2"},
"LoginErrorPasswordIsShort":{"username":"admin","password":"m"},
"LoginErrorPasswordIsSpecial":{"username":"admin","password":"☯㍿卍卐"},
"LoginErrorUsernameIsNone":{"username":"","password":"MTIzNDU2"},
"LoginErrorUsernameIsLong":{"username":"adminadminadminadmin","password":"MTIzNDU2"},
"LoginErrorUsernameIsShort":{"username":"a","password":"MTIzNDU2"},
"LoginErrorUsernameIsSpecial":{"username":"☯㍿卍卐","password":"MTIzNDU2"},
"LoginErrorUsernameIsErr":{"username":"admin123","password":"MTIzNDU2"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {
"code": "api_auto_test_add_dem",
"description": "api_auto_test_add_dem",
"isDefault": 0,
"name": "api_auto_test_add_dem"
}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "需要更新"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "test_add_org",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": "测试添加的组织",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"组织加入用户": {
"UserAddOrgSuccess": {"orgCode": "test_add_org", "accounts": "admin"}
},
"保存组织参数": {
"SaveParamSuccess": {
"query": {"orgCode": "test_add_org"},
"body": [{"alias":"sz","value":100},{"alias":"kc","value":"语文课"}]
}
},
"删除组织": {
"DeleteOrgSuccess": "test_add_org"
}
}
}
\ No newline at end of file
{
"认证接口":{
"登录系统":{
"LoginSuccess": {"username":"超级管理员","loginStatus":true, "account":"admin"},
"LoginErrorPasswordIsNone": {"message":"账号或密码错误"},
"LoginErrorPasswordIsLong":{"message":"账号或密码错误"},
"LoginErrorPasswordIsShort":{"message":"账号或密码错误"},
"LoginErrorPasswordIsSpecial":{"message":"账号或密码错误"},
"LoginErrorUsernameIsNone":{"message":"账号或密码错误"},
"LoginErrorUsernameIsLong":{"message":"账号或密码错误"},
"LoginErrorUsernameIsShort":{"message":"账号或密码错误"},
"LoginErrorUsernameIsSpecial":{"message":"账号或密码错误"},
"LoginErrorUsernameIsErr":{"message":"账号或密码错误"}
},
"刷新token": {
"RefreshTokenSuccess": {"message": "刷新token成功"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess":{"message": "添加维度成功!"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"message": "删除维度成功"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"message": "添加组织成功"}
},
"组织加入用户": {
"UserAddOrgSuccess": {"state":true,"message":"加入成功","value":""}
},
"保存组织参数": {
"SaveParamSuccess": {"state":true,"message":"保存组织参数成功!","value":""}
},
"删除组织": {
"DeleteOrgSuccess": {"state":true,"message":"删除组织成功!","value":""}
}
}
}
\ No newline at end of file
{
"维度管理": {
"添加维度": {
"AddDemSuccess": "delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"select": "select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";",
"delete": "DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";"
}
}
}
}
\ No newline at end of file
{
"认证接口":{
"登录系统":{
"LoginSuccess": {"username":"admin","password":"MTIzNDU2"},
"LoginErrorPasswordIsNone": {"username":"admin","password":""},
"LoginErrorPasswordIsLong":{"username":"admin","password":"MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2"},
"LoginErrorPasswordIsShort":{"username":"admin","password":"m"},
"LoginErrorPasswordIsSpecial":{"username":"admin","password":"☯㍿卍卐"},
"LoginErrorUsernameIsNone":{"username":"","password":"MTIzNDU2"},
"LoginErrorUsernameIsLong":{"username":"adminadminadminadmin","password":"MTIzNDU2"},
"LoginErrorUsernameIsShort":{"username":"a","password":"MTIzNDU2"},
"LoginErrorUsernameIsSpecial":{"username":"☯㍿卍卐","password":"MTIzNDU2"},
"LoginErrorUsernameIsErr":{"username":"admin123","password":"MTIzNDU2"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {
"code": "api_auto_test_add_dem",
"description": "api_auto_test_add_dem",
"isDefault": 0,
"name": "api_auto_test_add_dem"
}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "需要更新"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "test_add_org",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": "测试添加的组织",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"组织加入用户": {
"UserAddOrgSuccess": {"orgCode": "test_add_org", "accounts": "admin"}
},
"保存组织参数": {
"SaveParamSuccess": {
"query": {"orgCode": "test_add_org"},
"body": [{"alias":"sz","value":100},{"alias":"kc","value":"语文课"}]
}
},
"删除组织": {
"DeleteOrgSuccess": "test_add_org"
}
}
}
\ No newline at end of file
{
"认证接口":{
"登录系统":{
"LoginSuccess": {"username":"超级管理员","loginStatus":true, "account":"admin"},
"LoginErrorPasswordIsNone": {"message":"账号或密码错误"},
"LoginErrorPasswordIsLong":{"message":"账号或密码错误"},
"LoginErrorPasswordIsShort":{"message":"账号或密码错误"},
"LoginErrorPasswordIsSpecial":{"message":"账号或密码错误"},
"LoginErrorUsernameIsNone":{"message":"账号或密码错误"},
"LoginErrorUsernameIsLong":{"message":"账号或密码错误"},
"LoginErrorUsernameIsShort":{"message":"账号或密码错误"},
"LoginErrorUsernameIsSpecial":{"message":"账号或密码错误"},
"LoginErrorUsernameIsErr":{"message":"账号或密码错误"}
},
"刷新token": {
"RefreshTokenSuccess": {"message": "刷新token成功"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess":{"message": "添加维度成功!"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"message": "删除维度成功"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"message": "添加组织成功"}
},
"组织加入用户": {
"UserAddOrgSuccess": {"state":true,"message":"加入成功","value":""}
},
"保存组织参数": {
"SaveParamSuccess": {"state":true,"message":"保存组织参数成功!","value":""}
},
"删除组织": {
"DeleteOrgSuccess": {"state":true,"message":"删除组织成功!","value":""}
}
}
}
\ No newline at end of file
{
"维度管理": {
"添加维度": {
"AddDemSuccess": "delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"select": "select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";",
"delete": "DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";"
}
}
}
}
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: settings.py
# Author: lao_zhao
# Datetime: 2024/5/21 10:15
# Description:
#
# ---------------------------------------------------------------------------
# excel的列号=======================================
NUMBER = "A"
MODULE = "B"
API = "C"
TITLE = "D"
LEVEL = "E"
METHOD = "F"
URL = "G"
MIME = "H"
CASE = "I"
EXPECT = "J"
SQL = "K"
SQL_TYPE = "L"
UPDATE_KEY = "M"
# ini文件中节点名称======================================
FILE = "file1"
WORKSHEET = "worksheet"
HOST = "host"
DB = "db"
# ini文件中键名称======================================
# file节点============================================
EXCEL_KEY = "excel"
CASE_KEY = "case"
EXPECT_KEY = "expect"
SQL_KEY = "sql"
# worksheet节点============================================
TABLE_NAME_KEY = "table_name"
# host节点============================================
BPM_KEY = "bpm"
# db节点============================================
HOST_KEY = "host"
PORT_KEY = "port"
USERNAME_KEY = "username"
PASSWORD_KEY = "password"
DATABASE_KEY = "database"
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803532844318720"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803541883043840"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803550955323392"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803560044380160"}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803332507582464"}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803436442435584"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803445468577792"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803454528274432"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803463587971072"}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803532844318720"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803541883043840"}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803331177988096"}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDAsImlhdCI6MTcxNjI3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDIsImlhdCI6MTcxNjI3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDQsImlhdCI6MTcxNjI3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDYsImlhdCI6MTcxNjI3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803532844318720"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803541883043840"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803550955323392"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803560044380160"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803569104076800"}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803436442435584"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803445468577792"}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803331643555840"}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803332075569152"}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTcsImlhdCI6MTcxNjI3MjU5N30.sY4lvg3FdRhPw7aTY0jx3ZeN03MQbTx1bARhQIZP2H41KaUr83P2Q4MTt-AKuPxQxYsVlEOH9rPkM0X7HhxEJA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803532844318720"}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803436442435584"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803445468577792"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803454528274432"}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803436442435584"}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803330313961472"}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803333417746432"}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDAsImlhdCI6MTcxNjI3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDIsImlhdCI6MTcxNjI3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDQsImlhdCI6MTcxNjI3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDYsImlhdCI6MTcxNjI3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDgsImlhdCI6MTcxNjI3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803436442435584"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803445468577792"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803454528274432"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803463587971072"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803472635084800"}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDAsImlhdCI6MTcxNjI3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDIsImlhdCI6MTcxNjI3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDQsImlhdCI6MTcxNjI3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDAsImlhdCI6MTcxNjI3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803332960567296"}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803330750169088"}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803532844318720"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803541883043840"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803550955323392"}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803333887508480"}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDAsImlhdCI6MTcxNjI3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDIsImlhdCI6MTcxNjI3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
"Epic","Feature","Story","FAILED","BROKEN","PASSED","SKIPPED","UNKNOWN"
"BPM系统-demo","认证接口","登录系统","0","0","10","0","0"
"BPM系统-demo","认证接口","刷新token","1","0","0","0","0"
"BPM系统-demo","维度管理","根据维度编码删除维度","1","0","0","0","0"
"BPM系统-demo","组织管理","删除组织","0","0","1","0","0"
"BPM系统-老张","组织管理","删除组织","0","0","1","0","0"
"BPM系统-老张","组织管理","保存组织参数","0","0","1","0","0"
"BPM系统-老张","组织管理","组织加入用户","0","0","1","0","0"
"BPM系统-demo","维度管理","添加维度","0","0","1","0","0"
"BPM系统-demo","组织管理","添加组织","1","0","0","0","0"
"BPM系统-demo","组织管理","组织加入用户","0","0","1","0","0"
"BPM系统-demo","组织管理","保存组织参数","0","0","1","0","0"
"BPM-场景测试","认证接口","登录系统","0","0","1","0","0"
"BPM系统-老张","维度管理","添加维度","0","0","1","0","0"
"BPM系统-老张","维度管理","根据维度编码删除维度","1","0","0","0","0"
"BPM-场景测试","维度管理","添加维度","0","0","1","0","0"
"BPM系统-老张","组织管理","添加组织","1","0","0","0","0"
"BPM-场景测试","test","test","0","0","1","0","0"
{
"uid" : "b1a8273437954620fa374b796ffaacdd",
"name" : "behaviors",
"children" : [ {
"name" : "BPM系统-demo",
"children" : [ {
"name" : "认证接口",
"children" : [ {
"name" : "登录系统",
"children" : [ {
"name" : "正向用例-正确输入用户名和密码",
"uid" : "80142e22de024a60",
"parentUid" : "54068c4b34235e80b3707de86ff13e04",
"status" : "passed",
"time" : {
"start" : 1716272598748,
"stop" : 1716272598811,
"duration" : 63
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'MTIzNDU2'}", "'高'", "'正向用例-正确输入用户名和密码'", "{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码为空",
"uid" : "1bd3c031f056ab2e",
"parentUid" : "54068c4b34235e80b3707de86ff13e04",
"status" : "passed",
"time" : {
"start" : 1716272598829,
"stop" : 1716272598886,
"duration" : 57
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "'中'", "'反向用例-用户名正确,密码为空'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码过长",
"uid" : "c26c17d72f28aa7f",
"parentUid" : "54068c4b34235e80b3707de86ff13e04",
"status" : "passed",
"time" : {
"start" : 1716272598895,
"stop" : 1716272598989,
"duration" : 94
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}", "'中'", "'反向用例-用户名正确,密码过长'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码过短",
"uid" : "e425d3e0108cef57",
"parentUid" : "54068c4b34235e80b3707de86ff13e04",
"status" : "passed",
"time" : {
"start" : 1716272598998,
"stop" : 1716272599093,
"duration" : 95
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'm'}", "'中'", "'反向用例-用户名正确,密码过短'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码为特殊字符",
"uid" : "d093b8587a3ab4f3",
"parentUid" : "54068c4b34235e80b3707de86ff13e04",
"status" : "passed",
"time" : {
"start" : 1716272599103,
"stop" : 1716272599203,
"duration" : 100
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '☯㍿卍卐'}", "'中'", "'反向用例-用户名正确,密码为特殊字符'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名为空",
"uid" : "5532c9175fb2354e",
"parentUid" : "54068c4b34235e80b3707de86ff13e04",
"status" : "passed",
"time" : {
"start" : 1716272599213,
"stop" : 1716272599306,
"duration" : 93
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名为空'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名过长",
"uid" : "8142d41860b04b15",
"parentUid" : "54068c4b34235e80b3707de86ff13e04",
"status" : "passed",
"time" : {
"start" : 1716272599315,
"stop" : 1716272599407,
"duration" : 92
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名过长'", "{'message': '账号或密码错误'}", "'POST'", "'json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名过短",
"uid" : "96596e0fab9d3415",
"parentUid" : "54068c4b34235e80b3707de86ff13e04",
"status" : "passed",
"time" : {
"start" : 1716272599418,
"stop" : 1716272599517,
"duration" : 99
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名过短'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名为特殊字符",
"uid" : "5b0b595f880fe013",
"parentUid" : "54068c4b34235e80b3707de86ff13e04",
"status" : "passed",
"time" : {
"start" : 1716272599527,
"stop" : 1716272599627,
"duration" : 100
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名为特殊字符'", "{'message': '账号或密码错误'}", "'POST'", "'json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名错误",
"uid" : "a0b87df8f50dc316",
"parentUid" : "54068c4b34235e80b3707de86ff13e04",
"status" : "passed",
"time" : {
"start" : 1716272599640,
"stop" : 1716272599737,
"duration" : 97
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin123', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名错误'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
} ],
"uid" : "54068c4b34235e80b3707de86ff13e04"
}, {
"name" : "刷新token",
"children" : [ {
"name" : "正向用例",
"uid" : "139913cc61e34bb9",
"parentUid" : "412797404a49368b01459232917764e5",
"status" : "failed",
"time" : {
"start" : 1716272610326,
"stop" : 1716272610382,
"duration" : 56
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
} ],
"uid" : "412797404a49368b01459232917764e5"
} ],
"uid" : "fee5f38f156c59a7229cd608f480f397"
}, {
"name" : "维度管理",
"children" : [ {
"name" : "添加维度",
"children" : [ {
"name" : "正向用例",
"uid" : "7af172a2303b627d",
"parentUid" : "367222556968830fe969c56d23a64b28",
"status" : "passed",
"time" : {
"start" : 1716272610398,
"stop" : 1716272610534,
"duration" : 136
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}", "'高'", "'正向用例'", "{'message': '添加维度成功!'}", "'pOst'", "'json'", "'维度管理'", "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'delete'", "None", "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'" ]
} ],
"uid" : "367222556968830fe969c56d23a64b28"
}, {
"name" : "根据维度编码删除维度",
"children" : [ {
"name" : "正向用例",
"uid" : "cc6c15cf3215c8cc",
"parentUid" : "cb9e32ebc631ca9261bc484226c96537",
"status" : "failed",
"time" : {
"start" : 1716272632686,
"stop" : 1716272632817,
"duration" : 131
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
} ],
"uid" : "cb9e32ebc631ca9261bc484226c96537"
} ],
"uid" : "73e8dfd9412382cfca95173adf06150b"
}, {
"name" : "组织管理",
"children" : [ {
"name" : "添加组织",
"children" : [ {
"name" : "正向用例",
"uid" : "f7e90e36deb68600",
"parentUid" : "daf3ffbdadc91192b52bfb1df9f0d4e0",
"status" : "failed",
"time" : {
"start" : 1716272621599,
"stop" : 1716272621780,
"duration" : 181
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
} ],
"uid" : "daf3ffbdadc91192b52bfb1df9f0d4e0"
}, {
"name" : "组织加入用户",
"children" : [ {
"name" : "正向用例",
"uid" : "10e8cf966692af2d",
"parentUid" : "ff6fb21f9516bd8d36114e5bed9f610c",
"status" : "passed",
"time" : {
"start" : 1716272621795,
"stop" : 1716272621848,
"duration" : 53
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'组织加入用户'", "{'orgCode': 'test_add_org', 'accounts': 'admin'}", "'高'", "'正向用例'", "{'state': True, 'message': '加入成功', 'value': ''}", "'POST'", "'query'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'" ]
} ],
"uid" : "ff6fb21f9516bd8d36114e5bed9f610c"
}, {
"name" : "保存组织参数",
"children" : [ {
"name" : "正向用例",
"uid" : "15e35cc79ee68b8c",
"parentUid" : "3dc2353ea1ead53d1d146118c7d59cb0",
"status" : "passed",
"time" : {
"start" : 1716272621856,
"stop" : 1716272621912,
"duration" : 56
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}", "'中'", "'正向用例'", "{'state': True, 'message': '保存组织参数成功!', 'value': ''}", "'post'", "'query|json'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'" ]
} ],
"uid" : "3dc2353ea1ead53d1d146118c7d59cb0"
}, {
"name" : "删除组织",
"children" : [ {
"name" : "正向用例",
"uid" : "9a2316575f97b91e",
"parentUid" : "2793cc2821b7232abcd070673a778725",
"status" : "passed",
"time" : {
"start" : 1716272621920,
"stop" : 1716272621978,
"duration" : 58
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_add_org'", "'高'", "'正向用例'", "{'state': True, 'message': '删除组织成功!', 'value': ''}", "'POST'", "'text/plain'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'" ]
} ],
"uid" : "2793cc2821b7232abcd070673a778725"
} ],
"uid" : "4bee7701e94bc8313967def29a10407c"
} ],
"uid" : "66550695002566ec8b65b624a9b94173"
}, {
"name" : "BPM-场景测试",
"children" : [ {
"name" : "认证接口",
"children" : [ {
"name" : "登录系统",
"children" : [ {
"name" : "登录--前置",
"uid" : "ce412b2b5e44b608",
"parentUid" : "3c5c9dbdff6eedda7132437c4823e890",
"status" : "passed",
"time" : {
"start" : 1716272632845,
"stop" : 1716272632940,
"duration" : 95
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
} ],
"uid" : "3c5c9dbdff6eedda7132437c4823e890"
} ],
"uid" : "d2572c9cea4c4a294688937ffd2e595b"
}, {
"name" : "维度管理",
"children" : [ {
"name" : "添加维度",
"children" : [ {
"name" : "添加维度-依赖登录",
"uid" : "dd7fa74e2935b20a",
"parentUid" : "8153686440f02f492100449d057c22d2",
"status" : "passed",
"time" : {
"start" : 1716272632942,
"stop" : 1716272633094,
"duration" : 152
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
} ],
"uid" : "8153686440f02f492100449d057c22d2"
} ],
"uid" : "28e7db48793fed92e49db97fac31f817"
}, {
"name" : "test",
"children" : [ {
"name" : "test",
"children" : [ {
"name" : "test用例函数-依赖登录成功和添加维度成功",
"uid" : "7efd9dd32f98b518",
"parentUid" : "72af9ba782be2d09bd4e1c28ad74d88f",
"status" : "passed",
"time" : {
"start" : 1716272633097,
"stop" : 1716272633098,
"duration" : 1
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
} ],
"uid" : "72af9ba782be2d09bd4e1c28ad74d88f"
} ],
"uid" : "59c6ea2fb0289419214d1d68d60925f6"
} ],
"uid" : "94f1553abd732a71c34e7dce06118ae5"
}, {
"name" : "BPM系统-老张",
"children" : [ {
"name" : "维度管理",
"children" : [ {
"name" : "添加维度",
"children" : [ {
"name" : "正向用例",
"uid" : "510c89b87f6352b8",
"parentUid" : "b9d6aa28835bc38076dcf9d345270941",
"status" : "passed",
"time" : {
"start" : 1716272633398,
"stop" : 1716272633535,
"duration" : 137
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}", "'高'", "'正向用例'", "{'message': '添加维度成功!'}", "'pOst'", "'json'", "'维度管理'", "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'delete'", "None", "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'" ]
} ],
"uid" : "b9d6aa28835bc38076dcf9d345270941"
}, {
"name" : "根据维度编码删除维度",
"children" : [ {
"name" : "正向用例",
"uid" : "6bce7862e8bf2a3f",
"parentUid" : "8d831c703d04ddd1f308d9c902ef9f96",
"status" : "failed",
"time" : {
"start" : 1716272655685,
"stop" : 1716272655817,
"duration" : 132
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
} ],
"uid" : "8d831c703d04ddd1f308d9c902ef9f96"
} ],
"uid" : "4e2566cdb71da7bca218fcb360e80733"
}, {
"name" : "组织管理",
"children" : [ {
"name" : "添加组织",
"children" : [ {
"name" : "正向用例",
"uid" : "643ca7629b09152b",
"parentUid" : "9a6edbc37f0b31741ce44ef6e4b3f2fa",
"status" : "failed",
"time" : {
"start" : 1716272644557,
"stop" : 1716272644742,
"duration" : 185
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
} ],
"uid" : "9a6edbc37f0b31741ce44ef6e4b3f2fa"
}, {
"name" : "组织加入用户",
"children" : [ {
"name" : "正向用例",
"uid" : "adb4666aed6ea6fd",
"parentUid" : "3ccbcc6f69a2f5964652c7c250d86e55",
"status" : "passed",
"time" : {
"start" : 1716272644756,
"stop" : 1716272644809,
"duration" : 53
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'组织加入用户'", "{'orgCode': 'test_add_org', 'accounts': 'admin'}", "'高'", "'正向用例'", "{'state': True, 'message': '加入成功', 'value': ''}", "'POST'", "'query'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'" ]
} ],
"uid" : "3ccbcc6f69a2f5964652c7c250d86e55"
}, {
"name" : "保存组织参数",
"children" : [ {
"name" : "正向用例",
"uid" : "76ee0be7403e029e",
"parentUid" : "2c942b594b1e70afb3b19161b365004a",
"status" : "passed",
"time" : {
"start" : 1716272644818,
"stop" : 1716272644873,
"duration" : 55
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}", "'中'", "'正向用例'", "{'state': True, 'message': '保存组织参数成功!', 'value': ''}", "'post'", "'query|json'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'" ]
} ],
"uid" : "2c942b594b1e70afb3b19161b365004a"
}, {
"name" : "删除组织",
"children" : [ {
"name" : "正向用例",
"uid" : "b6d10bbf3ce5a604",
"parentUid" : "7bcef793394cb1a51e5b026ae68f0aca",
"status" : "passed",
"time" : {
"start" : 1716272644883,
"stop" : 1716272644938,
"duration" : 55
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_add_org'", "'高'", "'正向用例'", "{'state': True, 'message': '删除组织成功!', 'value': ''}", "'POST'", "'text/plain'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'" ]
} ],
"uid" : "7bcef793394cb1a51e5b026ae68f0aca"
} ],
"uid" : "31c3a4ac992804d12368ec14781f5638"
} ],
"uid" : "6e01d6d59ee91e3571e91df05295436f"
} ]
}
\ No newline at end of file
"Category","FAILED","BROKEN","PASSED","SKIPPED","UNKNOWN"
"Product defects","5","0","0","0","0"
{
"uid" : "4b4757e66a1912dae1a509f688f20b0f",
"name" : "categories",
"children" : [ {
"name" : "Product defects",
"children" : [ {
"name" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191C40C0>('message')\n + where <built-in method get of dict object at 0x0000014F191C40C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"children" : [ {
"name" : "正向用例",
"uid" : "139913cc61e34bb9",
"parentUid" : "1b23de01d9810fce01500382107beb90",
"status" : "failed",
"time" : {
"start" : 1716272610326,
"stop" : 1716272610382,
"duration" : 56
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
} ],
"uid" : "1b23de01d9810fce01500382107beb90"
}, {
"name" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"children" : [ {
"name" : "正向用例",
"uid" : "f7e90e36deb68600",
"parentUid" : "4a7003532ab41bb4162e963e0553c0dd",
"status" : "failed",
"time" : {
"start" : 1716272621599,
"stop" : 1716272621780,
"duration" : 181
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "643ca7629b09152b",
"parentUid" : "4a7003532ab41bb4162e963e0553c0dd",
"status" : "failed",
"time" : {
"start" : 1716272644557,
"stop" : 1716272644742,
"duration" : 185
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
} ],
"uid" : "4a7003532ab41bb4162e963e0553c0dd"
}, {
"name" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"children" : [ {
"name" : "正向用例",
"uid" : "cc6c15cf3215c8cc",
"parentUid" : "fc88e63a27e532a1ff14905d99754e1d",
"status" : "failed",
"time" : {
"start" : 1716272632686,
"stop" : 1716272632817,
"duration" : 131
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "正向用例",
"uid" : "6bce7862e8bf2a3f",
"parentUid" : "fc88e63a27e532a1ff14905d99754e1d",
"status" : "failed",
"time" : {
"start" : 1716272655685,
"stop" : 1716272655817,
"duration" : 132
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
} ],
"uid" : "fc88e63a27e532a1ff14905d99754e1d"
} ],
"uid" : "8fb3a91ba5aaf9de24cc8a92edc82b5d"
} ]
}
\ No newline at end of file
{
"uid" : "83edc06c07f9ae9e47eb6dd1b683e4e2",
"name" : "packages",
"children" : [ {
"name" : "test_case",
"children" : [ {
"name" : "test_demo.test_bpm",
"children" : [ {
"name" : "正向用例-正确输入用户名和密码",
"uid" : "80142e22de024a60",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272598748,
"stop" : 1716272598811,
"duration" : 63
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'MTIzNDU2'}", "'高'", "'正向用例-正确输入用户名和密码'", "{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码为空",
"uid" : "1bd3c031f056ab2e",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272598829,
"stop" : 1716272598886,
"duration" : 57
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "'中'", "'反向用例-用户名正确,密码为空'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码过长",
"uid" : "c26c17d72f28aa7f",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272598895,
"stop" : 1716272598989,
"duration" : 94
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}", "'中'", "'反向用例-用户名正确,密码过长'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码过短",
"uid" : "e425d3e0108cef57",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272598998,
"stop" : 1716272599093,
"duration" : 95
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'm'}", "'中'", "'反向用例-用户名正确,密码过短'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码为特殊字符",
"uid" : "d093b8587a3ab4f3",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272599103,
"stop" : 1716272599203,
"duration" : 100
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '☯㍿卍卐'}", "'中'", "'反向用例-用户名正确,密码为特殊字符'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名为空",
"uid" : "5532c9175fb2354e",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272599213,
"stop" : 1716272599306,
"duration" : 93
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名为空'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名过长",
"uid" : "8142d41860b04b15",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272599315,
"stop" : 1716272599407,
"duration" : 92
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名过长'", "{'message': '账号或密码错误'}", "'POST'", "'json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名过短",
"uid" : "96596e0fab9d3415",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272599418,
"stop" : 1716272599517,
"duration" : 99
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名过短'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名为特殊字符",
"uid" : "5b0b595f880fe013",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272599527,
"stop" : 1716272599627,
"duration" : 100
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名为特殊字符'", "{'message': '账号或密码错误'}", "'POST'", "'json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名错误",
"uid" : "a0b87df8f50dc316",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272599640,
"stop" : 1716272599737,
"duration" : 97
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin123', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名错误'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "正向用例",
"uid" : "139913cc61e34bb9",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "failed",
"time" : {
"start" : 1716272610326,
"stop" : 1716272610382,
"duration" : 56
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}, {
"name" : "正向用例",
"uid" : "7af172a2303b627d",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272610398,
"stop" : 1716272610534,
"duration" : 136
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}", "'高'", "'正向用例'", "{'message': '添加维度成功!'}", "'pOst'", "'json'", "'维度管理'", "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'delete'", "None", "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'" ]
}, {
"name" : "正向用例",
"uid" : "f7e90e36deb68600",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "failed",
"time" : {
"start" : 1716272621599,
"stop" : 1716272621780,
"duration" : 181
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "10e8cf966692af2d",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272621795,
"stop" : 1716272621848,
"duration" : 53
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'组织加入用户'", "{'orgCode': 'test_add_org', 'accounts': 'admin'}", "'高'", "'正向用例'", "{'state': True, 'message': '加入成功', 'value': ''}", "'POST'", "'query'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'" ]
}, {
"name" : "正向用例",
"uid" : "15e35cc79ee68b8c",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272621856,
"stop" : 1716272621912,
"duration" : 56
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}", "'中'", "'正向用例'", "{'state': True, 'message': '保存组织参数成功!', 'value': ''}", "'post'", "'query|json'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'" ]
}, {
"name" : "正向用例",
"uid" : "9a2316575f97b91e",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "passed",
"time" : {
"start" : 1716272621920,
"stop" : 1716272621978,
"duration" : 58
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_add_org'", "'高'", "'正向用例'", "{'state': True, 'message': '删除组织成功!', 'value': ''}", "'POST'", "'text/plain'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'" ]
}, {
"name" : "正向用例",
"uid" : "cc6c15cf3215c8cc",
"parentUid" : "408359e4381982766f71d289f282adbb",
"status" : "failed",
"time" : {
"start" : 1716272632686,
"stop" : 1716272632817,
"duration" : 131
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
} ],
"uid" : "test_demo.test_bpm"
}, {
"name" : "test_dependency.test_dependency",
"children" : [ {
"name" : "登录--前置",
"uid" : "ce412b2b5e44b608",
"parentUid" : "a275d33d9bda480afc64576a664c55db",
"status" : "passed",
"time" : {
"start" : 1716272632845,
"stop" : 1716272632940,
"duration" : 95
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "添加维度-依赖登录",
"uid" : "dd7fa74e2935b20a",
"parentUid" : "a275d33d9bda480afc64576a664c55db",
"status" : "passed",
"time" : {
"start" : 1716272632942,
"stop" : 1716272633094,
"duration" : 152
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "test用例函数-依赖登录成功和添加维度成功",
"uid" : "7efd9dd32f98b518",
"parentUid" : "a275d33d9bda480afc64576a664c55db",
"status" : "passed",
"time" : {
"start" : 1716272633097,
"stop" : 1716272633098,
"duration" : 1
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
} ],
"uid" : "test_dependency.test_dependency"
}, {
"name" : "test_mirZhang.test_bpm",
"children" : [ {
"name" : "正向用例",
"uid" : "510c89b87f6352b8",
"parentUid" : "fbaa16879cfc96f99b767496d76ca64d",
"status" : "passed",
"time" : {
"start" : 1716272633398,
"stop" : 1716272633535,
"duration" : 137
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}", "'高'", "'正向用例'", "{'message': '添加维度成功!'}", "'pOst'", "'json'", "'维度管理'", "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'delete'", "None", "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'" ]
}, {
"name" : "正向用例",
"uid" : "643ca7629b09152b",
"parentUid" : "fbaa16879cfc96f99b767496d76ca64d",
"status" : "failed",
"time" : {
"start" : 1716272644557,
"stop" : 1716272644742,
"duration" : 185
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "adb4666aed6ea6fd",
"parentUid" : "fbaa16879cfc96f99b767496d76ca64d",
"status" : "passed",
"time" : {
"start" : 1716272644756,
"stop" : 1716272644809,
"duration" : 53
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'组织加入用户'", "{'orgCode': 'test_add_org', 'accounts': 'admin'}", "'高'", "'正向用例'", "{'state': True, 'message': '加入成功', 'value': ''}", "'POST'", "'query'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'" ]
}, {
"name" : "正向用例",
"uid" : "76ee0be7403e029e",
"parentUid" : "fbaa16879cfc96f99b767496d76ca64d",
"status" : "passed",
"time" : {
"start" : 1716272644818,
"stop" : 1716272644873,
"duration" : 55
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}", "'中'", "'正向用例'", "{'state': True, 'message': '保存组织参数成功!', 'value': ''}", "'post'", "'query|json'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'" ]
}, {
"name" : "正向用例",
"uid" : "b6d10bbf3ce5a604",
"parentUid" : "fbaa16879cfc96f99b767496d76ca64d",
"status" : "passed",
"time" : {
"start" : 1716272644883,
"stop" : 1716272644938,
"duration" : 55
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_add_org'", "'高'", "'正向用例'", "{'state': True, 'message': '删除组织成功!', 'value': ''}", "'POST'", "'text/plain'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'" ]
}, {
"name" : "正向用例",
"uid" : "6bce7862e8bf2a3f",
"parentUid" : "fbaa16879cfc96f99b767496d76ca64d",
"status" : "failed",
"time" : {
"start" : 1716272655685,
"stop" : 1716272655817,
"duration" : 132
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
} ],
"uid" : "test_mirZhang.test_bpm"
} ],
"uid" : "3b2e467b921b0ea8d4803b9c79d92d0c"
} ]
}
\ No newline at end of file
"Status","Start Time","Stop Time","Duration in ms","Parent Suite","Suite","Sub Suite","Test Class","Test Method","Name","Description"
"passed","Tue May 21 14:23:19 CST 2024","Tue May 21 14:23:19 CST 2024","92","test_case.test_demo","test_bpm","TestBPM","","","反向用例-密码正确,用户名过长",""
"failed","Tue May 21 14:23:30 CST 2024","Tue May 21 14:23:30 CST 2024","56","test_case.test_demo","test_bpm","TestBPM","","","正向用例",""
"passed","Tue May 21 14:23:18 CST 2024","Tue May 21 14:23:18 CST 2024","63","test_case.test_demo","test_bpm","TestBPM","","","正向用例-正确输入用户名和密码",""
"failed","Tue May 21 14:23:52 CST 2024","Tue May 21 14:23:52 CST 2024","131","test_case.test_demo","test_bpm","TestBPM","","","正向用例",""
"passed","Tue May 21 14:23:18 CST 2024","Tue May 21 14:23:18 CST 2024","57","test_case.test_demo","test_bpm","TestBPM","","","反向用例-用户名正确,密码为空",""
"passed","Tue May 21 14:23:19 CST 2024","Tue May 21 14:23:19 CST 2024","100","test_case.test_demo","test_bpm","TestBPM","","","反向用例-密码正确,用户名为特殊字符",""
"passed","Tue May 21 14:23:41 CST 2024","Tue May 21 14:23:41 CST 2024","58","test_case.test_demo","test_bpm","TestBPM","","","正向用例",""
"passed","Tue May 21 14:24:04 CST 2024","Tue May 21 14:24:04 CST 2024","55","test_case.test_mirZhang","test_bpm","TestBPM","","","正向用例",""
"passed","Tue May 21 14:23:19 CST 2024","Tue May 21 14:23:19 CST 2024","93","test_case.test_demo","test_bpm","TestBPM","","","反向用例-密码正确,用户名为空",""
"passed","Tue May 21 14:24:04 CST 2024","Tue May 21 14:24:04 CST 2024","55","test_case.test_mirZhang","test_bpm","TestBPM","","","正向用例",""
"passed","Tue May 21 14:24:04 CST 2024","Tue May 21 14:24:04 CST 2024","53","test_case.test_mirZhang","test_bpm","TestBPM","","","正向用例",""
"passed","Tue May 21 14:23:30 CST 2024","Tue May 21 14:23:30 CST 2024","136","test_case.test_demo","test_bpm","TestBPM","","","正向用例",""
"failed","Tue May 21 14:23:41 CST 2024","Tue May 21 14:23:41 CST 2024","181","test_case.test_demo","test_bpm","TestBPM","","","正向用例",""
"passed","Tue May 21 14:23:41 CST 2024","Tue May 21 14:23:41 CST 2024","53","test_case.test_demo","test_bpm","TestBPM","","","正向用例",""
"passed","Tue May 21 14:23:41 CST 2024","Tue May 21 14:23:41 CST 2024","56","test_case.test_demo","test_bpm","TestBPM","","","正向用例",""
"passed","Tue May 21 14:23:52 CST 2024","Tue May 21 14:23:52 CST 2024","95","test_case.test_dependency","test_dependency","","","","登录--前置",""
"passed","Tue May 21 14:23:53 CST 2024","Tue May 21 14:23:53 CST 2024","137","test_case.test_mirZhang","test_bpm","TestBPM","","","正向用例",""
"failed","Tue May 21 14:24:15 CST 2024","Tue May 21 14:24:15 CST 2024","132","test_case.test_mirZhang","test_bpm","TestBPM","","","正向用例",""
"passed","Tue May 21 14:23:19 CST 2024","Tue May 21 14:23:19 CST 2024","97","test_case.test_demo","test_bpm","TestBPM","","","反向用例-密码正确,用户名错误",""
"passed","Tue May 21 14:23:18 CST 2024","Tue May 21 14:23:18 CST 2024","94","test_case.test_demo","test_bpm","TestBPM","","","反向用例-用户名正确,密码过长",""
"passed","Tue May 21 14:23:19 CST 2024","Tue May 21 14:23:19 CST 2024","100","test_case.test_demo","test_bpm","TestBPM","","","反向用例-用户名正确,密码为特殊字符",""
"passed","Tue May 21 14:23:52 CST 2024","Tue May 21 14:23:53 CST 2024","152","test_case.test_dependency","test_dependency","","","","添加维度-依赖登录",""
"failed","Tue May 21 14:24:04 CST 2024","Tue May 21 14:24:04 CST 2024","185","test_case.test_mirZhang","test_bpm","TestBPM","","","正向用例",""
"passed","Tue May 21 14:23:18 CST 2024","Tue May 21 14:23:19 CST 2024","95","test_case.test_demo","test_bpm","TestBPM","","","反向用例-用户名正确,密码过短",""
"passed","Tue May 21 14:23:53 CST 2024","Tue May 21 14:23:53 CST 2024","1","test_case.test_dependency","test_dependency","","","","test用例函数-依赖登录成功和添加维度成功",""
"passed","Tue May 21 14:23:19 CST 2024","Tue May 21 14:23:19 CST 2024","99","test_case.test_demo","test_bpm","TestBPM","","","反向用例-密码正确,用户名过短",""
{
"uid" : "98d3104e051c652961429bf95fa0b5d6",
"name" : "suites",
"children" : [ {
"name" : "test_case.test_demo",
"children" : [ {
"name" : "test_bpm",
"children" : [ {
"name" : "TestBPM",
"children" : [ {
"name" : "正向用例-正确输入用户名和密码",
"uid" : "80142e22de024a60",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272598748,
"stop" : 1716272598811,
"duration" : 63
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'MTIzNDU2'}", "'高'", "'正向用例-正确输入用户名和密码'", "{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码为空",
"uid" : "1bd3c031f056ab2e",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272598829,
"stop" : 1716272598886,
"duration" : 57
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "'中'", "'反向用例-用户名正确,密码为空'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码过长",
"uid" : "c26c17d72f28aa7f",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272598895,
"stop" : 1716272598989,
"duration" : 94
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}", "'中'", "'反向用例-用户名正确,密码过长'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码过短",
"uid" : "e425d3e0108cef57",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272598998,
"stop" : 1716272599093,
"duration" : 95
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'm'}", "'中'", "'反向用例-用户名正确,密码过短'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码为特殊字符",
"uid" : "d093b8587a3ab4f3",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272599103,
"stop" : 1716272599203,
"duration" : 100
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '☯㍿卍卐'}", "'中'", "'反向用例-用户名正确,密码为特殊字符'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名为空",
"uid" : "5532c9175fb2354e",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272599213,
"stop" : 1716272599306,
"duration" : 93
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名为空'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名过长",
"uid" : "8142d41860b04b15",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272599315,
"stop" : 1716272599407,
"duration" : 92
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名过长'", "{'message': '账号或密码错误'}", "'POST'", "'json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名过短",
"uid" : "96596e0fab9d3415",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272599418,
"stop" : 1716272599517,
"duration" : 99
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名过短'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名为特殊字符",
"uid" : "5b0b595f880fe013",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272599527,
"stop" : 1716272599627,
"duration" : 100
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名为特殊字符'", "{'message': '账号或密码错误'}", "'POST'", "'json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名错误",
"uid" : "a0b87df8f50dc316",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272599640,
"stop" : 1716272599737,
"duration" : 97
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin123', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名错误'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "正向用例",
"uid" : "139913cc61e34bb9",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "failed",
"time" : {
"start" : 1716272610326,
"stop" : 1716272610382,
"duration" : 56
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}, {
"name" : "正向用例",
"uid" : "7af172a2303b627d",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272610398,
"stop" : 1716272610534,
"duration" : 136
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}", "'高'", "'正向用例'", "{'message': '添加维度成功!'}", "'pOst'", "'json'", "'维度管理'", "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'delete'", "None", "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'" ]
}, {
"name" : "正向用例",
"uid" : "f7e90e36deb68600",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "failed",
"time" : {
"start" : 1716272621599,
"stop" : 1716272621780,
"duration" : 181
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "10e8cf966692af2d",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272621795,
"stop" : 1716272621848,
"duration" : 53
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'组织加入用户'", "{'orgCode': 'test_add_org', 'accounts': 'admin'}", "'高'", "'正向用例'", "{'state': True, 'message': '加入成功', 'value': ''}", "'POST'", "'query'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'" ]
}, {
"name" : "正向用例",
"uid" : "15e35cc79ee68b8c",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272621856,
"stop" : 1716272621912,
"duration" : 56
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}", "'中'", "'正向用例'", "{'state': True, 'message': '保存组织参数成功!', 'value': ''}", "'post'", "'query|json'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'" ]
}, {
"name" : "正向用例",
"uid" : "9a2316575f97b91e",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "passed",
"time" : {
"start" : 1716272621920,
"stop" : 1716272621978,
"duration" : 58
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_add_org'", "'高'", "'正向用例'", "{'state': True, 'message': '删除组织成功!', 'value': ''}", "'POST'", "'text/plain'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'" ]
}, {
"name" : "正向用例",
"uid" : "cc6c15cf3215c8cc",
"parentUid" : "ef69bf2bb1b41f3ca3f11617396f6a81",
"status" : "failed",
"time" : {
"start" : 1716272632686,
"stop" : 1716272632817,
"duration" : 131
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
} ],
"uid" : "ef69bf2bb1b41f3ca3f11617396f6a81"
} ],
"uid" : "5f023a47dd31329b45d44784c00131e4"
} ],
"uid" : "7a8b7e46177bbd4d1efa8551fea4a38d"
}, {
"name" : "test_case.test_dependency",
"children" : [ {
"name" : "test_dependency",
"children" : [ {
"name" : "登录--前置",
"uid" : "ce412b2b5e44b608",
"parentUid" : "fc6c9efd9546dcb429acba88a29f612b",
"status" : "passed",
"time" : {
"start" : 1716272632845,
"stop" : 1716272632940,
"duration" : 95
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "添加维度-依赖登录",
"uid" : "dd7fa74e2935b20a",
"parentUid" : "fc6c9efd9546dcb429acba88a29f612b",
"status" : "passed",
"time" : {
"start" : 1716272632942,
"stop" : 1716272633094,
"duration" : 152
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "test用例函数-依赖登录成功和添加维度成功",
"uid" : "7efd9dd32f98b518",
"parentUid" : "fc6c9efd9546dcb429acba88a29f612b",
"status" : "passed",
"time" : {
"start" : 1716272633097,
"stop" : 1716272633098,
"duration" : 1
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
} ],
"uid" : "fc6c9efd9546dcb429acba88a29f612b"
} ],
"uid" : "5fa37ee52138cac4807b87b482b5d721"
}, {
"name" : "test_case.test_mirZhang",
"children" : [ {
"name" : "test_bpm",
"children" : [ {
"name" : "TestBPM",
"children" : [ {
"name" : "正向用例",
"uid" : "510c89b87f6352b8",
"parentUid" : "c76c9721dfc2eeaf36e23d7cef2f161e",
"status" : "passed",
"time" : {
"start" : 1716272633398,
"stop" : 1716272633535,
"duration" : 137
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}", "'高'", "'正向用例'", "{'message': '添加维度成功!'}", "'pOst'", "'json'", "'维度管理'", "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'delete'", "None", "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'" ]
}, {
"name" : "正向用例",
"uid" : "643ca7629b09152b",
"parentUid" : "c76c9721dfc2eeaf36e23d7cef2f161e",
"status" : "failed",
"time" : {
"start" : 1716272644557,
"stop" : 1716272644742,
"duration" : 185
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "adb4666aed6ea6fd",
"parentUid" : "c76c9721dfc2eeaf36e23d7cef2f161e",
"status" : "passed",
"time" : {
"start" : 1716272644756,
"stop" : 1716272644809,
"duration" : 53
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'组织加入用户'", "{'orgCode': 'test_add_org', 'accounts': 'admin'}", "'高'", "'正向用例'", "{'state': True, 'message': '加入成功', 'value': ''}", "'POST'", "'query'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'" ]
}, {
"name" : "正向用例",
"uid" : "76ee0be7403e029e",
"parentUid" : "c76c9721dfc2eeaf36e23d7cef2f161e",
"status" : "passed",
"time" : {
"start" : 1716272644818,
"stop" : 1716272644873,
"duration" : 55
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}", "'中'", "'正向用例'", "{'state': True, 'message': '保存组织参数成功!', 'value': ''}", "'post'", "'query|json'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'" ]
}, {
"name" : "正向用例",
"uid" : "b6d10bbf3ce5a604",
"parentUid" : "c76c9721dfc2eeaf36e23d7cef2f161e",
"status" : "passed",
"time" : {
"start" : 1716272644883,
"stop" : 1716272644938,
"duration" : 55
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_add_org'", "'高'", "'正向用例'", "{'state': True, 'message': '删除组织成功!', 'value': ''}", "'POST'", "'text/plain'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'" ]
}, {
"name" : "正向用例",
"uid" : "6bce7862e8bf2a3f",
"parentUid" : "c76c9721dfc2eeaf36e23d7cef2f161e",
"status" : "failed",
"time" : {
"start" : 1716272655685,
"stop" : 1716272655817,
"duration" : 132
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
} ],
"uid" : "c76c9721dfc2eeaf36e23d7cef2f161e"
} ],
"uid" : "67ba6791b97e745dd37a3c2e47827490"
} ],
"uid" : "663b5eac116b5bc6651b8e1e82719203"
} ]
}
\ No newline at end of file
{
"uid" : "10e8cf966692af2d",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "385bda31fe152e15cd1fc6b7817225aa",
"time" : {
"start" : 1716272621795,
"stop" : 1716272621848,
"duration" : 53
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "7201d70001e141e",
"name" : "log",
"source" : "7201d70001e141e.txt",
"type" : "text/plain",
"size" : 276
}, {
"uid" : "b40117ab71b81a91",
"name" : "stdout",
"source" : "b40117ab71b81a91.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "组织加入用户"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'组织加入用户'"
}, {
"name" : "case_data",
"value" : "{'orgCode': 'test_add_org', 'accounts': 'admin'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '加入成功', 'value': ''}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "10e8cf966692af2d.json",
"parameterValues" : [ "'组织加入用户'", "{'orgCode': 'test_add_org', 'accounts': 'admin'}", "'高'", "'正向用例'", "{'state': True, 'message': '加入成功', 'value': ''}", "'POST'", "'query'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'" ]
}
\ No newline at end of file
{
"uid" : "12eaadd487a58cd",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "f0f670cbfec7a9680aec241c756307a6",
"time" : {
"start" : 1716272649197,
"stop" : 1716272649328,
"duration" : 131
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "208c263728b0d9ca",
"name" : "log",
"source" : "208c263728b0d9ca.txt",
"type" : "text/plain",
"size" : 735
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '1792803475629817856'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "method",
"value" : "'DELETE'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "12eaadd487a58cd.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "139913cc61e34bb9",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "1dcae5f805bddffd6ce19e14c8b3458b",
"time" : {
"start" : 1716272610326,
"stop" : 1716272610382,
"duration" : 56
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191C40C0>('message')\n + where <built-in method get of dict object at 0x0000014F191C40C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F191C40C0>('message')\nE + where <built-in method get of dict object at 0x0000014F191C40C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191C40C0>('message')\n + where <built-in method get of dict object at 0x0000014F191C40C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F191C40C0>('message')\nE + where <built-in method get of dict object at 0x0000014F191C40C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "85bb81ed805a1bc2",
"name" : "log",
"source" : "85bb81ed805a1bc2.txt",
"type" : "text/plain",
"size" : 2639
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "刷新token"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'刷新token'"
}, {
"name" : "case_data",
"value" : "None"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '刷新token成功'}"
}, {
"name" : "method",
"value" : "'GET'"
}, {
"name" : "mime",
"value" : "None"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/refresh'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ {
"uid" : "272c438f0bed80b",
"status" : "failed",
"statusDetails" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F19157380>('message')\n + where <built-in method get of dict object at 0x0000014F19157380> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"time" : {
"start" : 1716272608243,
"stop" : 1716272608294,
"duration" : 51
}
}, {
"uid" : "4f1ef4a5b7fd035f",
"status" : "failed",
"statusDetails" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191B6B40>('message')\n + where <built-in method get of dict object at 0x0000014F191B6B40> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"time" : {
"start" : 1716272606164,
"stop" : 1716272606215,
"duration" : 51
}
}, {
"uid" : "c2d850dec3954142",
"status" : "failed",
"statusDetails" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F19157400>('message')\n + where <built-in method get of dict object at 0x0000014F19157400> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"time" : {
"start" : 1716272604095,
"stop" : 1716272604145,
"duration" : 50
}
}, {
"uid" : "4cf6104851f97da",
"status" : "failed",
"statusDetails" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191A66C0>('message')\n + where <built-in method get of dict object at 0x0000014F191A66C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"time" : {
"start" : 1716272602024,
"stop" : 1716272602074,
"duration" : 50
}
}, {
"uid" : "18d9dd9447f5bd7b",
"status" : "failed",
"statusDetails" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F19124300>('message')\n + where <built-in method get of dict object at 0x0000014F19124300> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"time" : {
"start" : 1716272599755,
"stop" : 1716272599845,
"duration" : 90
}
} ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "139913cc61e34bb9.json",
"parameterValues" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}
\ No newline at end of file
{
"uid" : "15e35cc79ee68b8c",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "e133082949e07d38e4a8587843153535",
"time" : {
"start" : 1716272621856,
"stop" : 1716272621912,
"duration" : 56
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "9822ad938ab5e065",
"name" : "log",
"source" : "9822ad938ab5e065.txt",
"type" : "text/plain",
"size" : 376
}, {
"uid" : "756ecf2b72d113b2",
"name" : "stdout",
"source" : "756ecf2b72d113b2.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "保存组织参数"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'保存组织参数'"
}, {
"name" : "case_data",
"value" : "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '保存组织参数成功!', 'value': ''}"
}, {
"name" : "method",
"value" : "'post'"
}, {
"name" : "mime",
"value" : "'query|json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "15e35cc79ee68b8c.json",
"parameterValues" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}", "'中'", "'正向用例'", "{'state': True, 'message': '保存组织参数成功!', 'value': ''}", "'post'", "'query|json'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'" ]
}
\ No newline at end of file
{
"uid" : "18d9dd9447f5bd7b",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "1dcae5f805bddffd6ce19e14c8b3458b",
"time" : {
"start" : 1716272599755,
"stop" : 1716272599845,
"duration" : 90
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F19124300>('message')\n + where <built-in method get of dict object at 0x0000014F19124300> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F19124300>('message')\nE + where <built-in method get of dict object at 0x0000014F19124300> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F19124300>('message')\n + where <built-in method get of dict object at 0x0000014F19124300> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F19124300>('message')\nE + where <built-in method get of dict object at 0x0000014F19124300> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "3b913b49dc4f3472",
"name" : "log",
"source" : "3b913b49dc4f3472.txt",
"type" : "text/plain",
"size" : 439
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "刷新token"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'刷新token'"
}, {
"name" : "case_data",
"value" : "None"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '刷新token成功'}"
}, {
"name" : "method",
"value" : "'GET'"
}, {
"name" : "mime",
"value" : "None"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/refresh'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "18d9dd9447f5bd7b.json",
"parameterValues" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}
\ No newline at end of file
{
"uid" : "1ad3f99f8aec3b78",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "f0f670cbfec7a9680aec241c756307a6",
"time" : {
"start" : 1716272651358,
"stop" : 1716272651491,
"duration" : 133
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "aa23f63cb24a3b27",
"name" : "log",
"source" : "aa23f63cb24a3b27.txt",
"type" : "text/plain",
"size" : 980
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '1792803475629817856'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "method",
"value" : "'DELETE'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "1ad3f99f8aec3b78.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "1bd3c031f056ab2e",
"name" : "反向用例-用户名正确,密码为空",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "4164dfc118ea6cc8eeb9ce3984609436",
"time" : {
"start" : 1716272598829,
"stop" : 1716272598886,
"duration" : 57
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "71a819440c253d52",
"name" : "log",
"source" : "71a819440c253d52.txt",
"type" : "text/plain",
"size" : 275
}, {
"uid" : "8883fd4feebc6905",
"name" : "stdout",
"source" : "8883fd4feebc6905.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'admin', 'password': ''}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'反向用例-用户名正确,密码为空'"
}, {
"name" : "expect_data",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "1bd3c031f056ab2e.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "'中'", "'反向用例-用户名正确,密码为空'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}
\ No newline at end of file
{
"uid" : "209ce81276c337a6",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "487ae598a2b30a5ea2489bb3e5fa08a4",
"time" : {
"start" : 1716272614968,
"stop" : 1716272615147,
"duration" : 179
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "69ecbaba4125d9c7",
"name" : "log",
"source" : "69ecbaba4125d9c7.txt",
"type" : "text/plain",
"size" : 1193
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "209ce81276c337a6.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "272c438f0bed80b",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "1dcae5f805bddffd6ce19e14c8b3458b",
"time" : {
"start" : 1716272608243,
"stop" : 1716272608294,
"duration" : 51
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F19157380>('message')\n + where <built-in method get of dict object at 0x0000014F19157380> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F19157380>('message')\nE + where <built-in method get of dict object at 0x0000014F19157380> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F19157380>('message')\n + where <built-in method get of dict object at 0x0000014F19157380> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F19157380>('message')\nE + where <built-in method get of dict object at 0x0000014F19157380> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "39baf5c12bf79df8",
"name" : "log",
"source" : "39baf5c12bf79df8.txt",
"type" : "text/plain",
"size" : 2199
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "刷新token"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'刷新token'"
}, {
"name" : "case_data",
"value" : "None"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '刷新token成功'}"
}, {
"name" : "method",
"value" : "'GET'"
}, {
"name" : "mime",
"value" : "None"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/refresh'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "272c438f0bed80b.json",
"parameterValues" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}
\ No newline at end of file
{
"uid" : "3015128a124f9ae6",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "526f1fd519b78b4955668d6cfd277048",
"time" : {
"start" : 1716272640167,
"stop" : 1716272640342,
"duration" : 175
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "7cd371d730635a5c",
"name" : "log",
"source" : "7cd371d730635a5c.txt",
"type" : "text/plain",
"size" : 1591
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "3015128a124f9ae6.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "34d4a7d4229ac13b",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "f0f670cbfec7a9680aec241c756307a6",
"time" : {
"start" : 1716272644958,
"stop" : 1716272645054,
"duration" : 96
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == '删除维度成功!'\n \n - 删除维度成功!\n ? -\n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == '删除维度成功!'\n \n - 删除维度成功!\n ? -\n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "a8ff188565383ebb",
"name" : "log",
"source" : "a8ff188565383ebb.txt",
"type" : "text/plain",
"size" : 245
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '需要更新'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "method",
"value" : "'DELETE'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "34d4a7d4229ac13b.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "47066bd5655ab306",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "487ae598a2b30a5ea2489bb3e5fa08a4",
"time" : {
"start" : 1716272612750,
"stop" : 1716272612931,
"duration" : 181
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "f32a4201d93ebd55",
"name" : "log",
"source" : "f32a4201d93ebd55.txt",
"type" : "text/plain",
"size" : 795
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "47066bd5655ab306.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "4cf6104851f97da",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "1dcae5f805bddffd6ce19e14c8b3458b",
"time" : {
"start" : 1716272602024,
"stop" : 1716272602074,
"duration" : 50
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191A66C0>('message')\n + where <built-in method get of dict object at 0x0000014F191A66C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F191A66C0>('message')\nE + where <built-in method get of dict object at 0x0000014F191A66C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191A66C0>('message')\n + where <built-in method get of dict object at 0x0000014F191A66C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F191A66C0>('message')\nE + where <built-in method get of dict object at 0x0000014F191A66C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "95802db4a485e5cb",
"name" : "log",
"source" : "95802db4a485e5cb.txt",
"type" : "text/plain",
"size" : 879
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "刷新token"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'刷新token'"
}, {
"name" : "case_data",
"value" : "None"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '刷新token成功'}"
}, {
"name" : "method",
"value" : "'GET'"
}, {
"name" : "mime",
"value" : "None"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/refresh'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "4cf6104851f97da.json",
"parameterValues" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}
\ No newline at end of file
{
"uid" : "4f1ef4a5b7fd035f",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "1dcae5f805bddffd6ce19e14c8b3458b",
"time" : {
"start" : 1716272606164,
"stop" : 1716272606215,
"duration" : 51
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191B6B40>('message')\n + where <built-in method get of dict object at 0x0000014F191B6B40> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F191B6B40>('message')\nE + where <built-in method get of dict object at 0x0000014F191B6B40> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191B6B40>('message')\n + where <built-in method get of dict object at 0x0000014F191B6B40> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F191B6B40>('message')\nE + where <built-in method get of dict object at 0x0000014F191B6B40> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "8b75f965076bf807",
"name" : "log",
"source" : "8b75f965076bf807.txt",
"type" : "text/plain",
"size" : 1759
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "刷新token"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'刷新token'"
}, {
"name" : "case_data",
"value" : "None"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '刷新token成功'}"
}, {
"name" : "method",
"value" : "'GET'"
}, {
"name" : "mime",
"value" : "None"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/refresh'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "4f1ef4a5b7fd035f.json",
"parameterValues" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}
\ No newline at end of file
{
"uid" : "510c89b87f6352b8",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "aab084bf6a05ec45b335f51ecc264b7e",
"time" : {
"start" : 1716272633398,
"stop" : 1716272633535,
"duration" : 137
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "f01d7cb12097c711",
"name" : "log",
"source" : "f01d7cb12097c711.txt",
"type" : "text/plain",
"size" : 340
}, {
"uid" : "f6d07ad08c02221c",
"name" : "stdout",
"source" : "f6d07ad08c02221c.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "添加维度"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加维度'"
}, {
"name" : "case_data",
"value" : "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加维度成功!'}"
}, {
"name" : "method",
"value" : "'pOst'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'delete'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "510c89b87f6352b8.json",
"parameterValues" : [ "'添加维度'", "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}", "'高'", "'正向用例'", "{'message': '添加维度成功!'}", "'pOst'", "'json'", "'维度管理'", "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'delete'", "None", "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'" ]
}
\ No newline at end of file
{
"uid" : "5532c9175fb2354e",
"name" : "反向用例-密码正确,用户名为空",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "ca39ba3d830745ef2c54de45a0fd94de",
"time" : {
"start" : 1716272599213,
"stop" : 1716272599306,
"duration" : 93
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "538dd3c6269d607b",
"name" : "log",
"source" : "538dd3c6269d607b.txt",
"type" : "text/plain",
"size" : 278
}, {
"uid" : "8c5282cbec7e86da",
"name" : "stdout",
"source" : "8c5282cbec7e86da.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': '', 'password': 'MTIzNDU2'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'反向用例-密码正确,用户名为空'"
}, {
"name" : "expect_data",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "5532c9175fb2354e.json",
"parameterValues" : [ "'登录系统'", "{'username': '', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名为空'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}
\ No newline at end of file
{
"uid" : "5b0b595f880fe013",
"name" : "反向用例-密码正确,用户名为特殊字符",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "fa305c7b3d900250c6115572baa5540a",
"time" : {
"start" : 1716272599527,
"stop" : 1716272599627,
"duration" : 100
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "7cf883af7fabeddf",
"name" : "log",
"source" : "7cf883af7fabeddf.txt",
"type" : "text/plain",
"size" : 290
}, {
"uid" : "c40a6c404248f2af",
"name" : "stdout",
"source" : "c40a6c404248f2af.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'反向用例-密码正确,用户名为特殊字符'"
}, {
"name" : "expect_data",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "5b0b595f880fe013.json",
"parameterValues" : [ "'登录系统'", "{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名为特殊字符'", "{'message': '账号或密码错误'}", "'POST'", "'json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}
\ No newline at end of file
{
"uid" : "5dd7bd33a0896cb1",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "f0f670cbfec7a9680aec241c756307a6",
"time" : {
"start" : 1716272653523,
"stop" : 1716272653661,
"duration" : 138
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "116a66ad8e750f6d",
"name" : "log",
"source" : "116a66ad8e750f6d.txt",
"type" : "text/plain",
"size" : 1225
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '1792803475629817856'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "method",
"value" : "'DELETE'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "5dd7bd33a0896cb1.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "63fd0603d3fc3e68",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "f0f670cbfec7a9680aec241c756307a6",
"time" : {
"start" : 1716272647081,
"stop" : 1716272647173,
"duration" : 92
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "6666807bee4dd972",
"name" : "log",
"source" : "6666807bee4dd972.txt",
"type" : "text/plain",
"size" : 490
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '1792803475629817856'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "method",
"value" : "'DELETE'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "63fd0603d3fc3e68.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "643ca7629b09152b",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "526f1fd519b78b4955668d6cfd277048",
"time" : {
"start" : 1716272644557,
"stop" : 1716272644742,
"duration" : 185
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "6b95a89eb4116b8d",
"name" : "log",
"source" : "6b95a89eb4116b8d.txt",
"type" : "text/plain",
"size" : 2387
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ {
"uid" : "f0b29a97131b512d",
"status" : "failed",
"statusDetails" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"time" : {
"start" : 1716272642365,
"stop" : 1716272642541,
"duration" : 176
}
}, {
"uid" : "3015128a124f9ae6",
"status" : "failed",
"statusDetails" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"time" : {
"start" : 1716272640167,
"stop" : 1716272640342,
"duration" : 175
}
}, {
"uid" : "bab371eff6794f2b",
"status" : "failed",
"statusDetails" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"time" : {
"start" : 1716272637956,
"stop" : 1716272638139,
"duration" : 183
}
}, {
"uid" : "d86d7ab21b67c470",
"status" : "failed",
"statusDetails" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"time" : {
"start" : 1716272635752,
"stop" : 1716272635930,
"duration" : 178
}
}, {
"uid" : "d386a81c173e63a4",
"status" : "failed",
"statusDetails" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"time" : {
"start" : 1716272633544,
"stop" : 1716272633720,
"duration" : 176
}
} ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "643ca7629b09152b.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "64c7a0a97adde6d1",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "347d2f73ed73495ba7ba72dbf723f253",
"time" : {
"start" : 1716272630526,
"stop" : 1716272630660,
"duration" : 134
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "1cc5cc26b0e6793e",
"name" : "log",
"source" : "1cc5cc26b0e6793e.txt",
"type" : "text/plain",
"size" : 1225
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '1792803379156631552'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "method",
"value" : "'DELETE'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "64c7a0a97adde6d1.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "682b7b7636aca843",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "487ae598a2b30a5ea2489bb3e5fa08a4",
"time" : {
"start" : 1716272610542,
"stop" : 1716272610722,
"duration" : 180
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "de31b21afa53e092",
"name" : "log",
"source" : "de31b21afa53e092.txt",
"type" : "text/plain",
"size" : 397
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_add_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "682b7b7636aca843.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "6bce7862e8bf2a3f",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "f0f670cbfec7a9680aec241c756307a6",
"time" : {
"start" : 1716272655685,
"stop" : 1716272655817,
"duration" : 132
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "3ee4fb5ea7f92b8a",
"name" : "log",
"source" : "3ee4fb5ea7f92b8a.txt",
"type" : "text/plain",
"size" : 1470
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '1792803475629817856'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "method",
"value" : "'DELETE'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ {
"uid" : "5dd7bd33a0896cb1",
"status" : "failed",
"statusDetails" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"time" : {
"start" : 1716272653523,
"stop" : 1716272653661,
"duration" : 138
}
}, {
"uid" : "1ad3f99f8aec3b78",
"status" : "failed",
"statusDetails" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"time" : {
"start" : 1716272651358,
"stop" : 1716272651491,
"duration" : 133
}
}, {
"uid" : "12eaadd487a58cd",
"status" : "failed",
"statusDetails" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"time" : {
"start" : 1716272649197,
"stop" : 1716272649328,
"duration" : 131
}
}, {
"uid" : "63fd0603d3fc3e68",
"status" : "failed",
"statusDetails" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"time" : {
"start" : 1716272647081,
"stop" : 1716272647173,
"duration" : 92
}
}, {
"uid" : "34d4a7d4229ac13b",
"status" : "failed",
"statusDetails" : "AssertionError: assert '删除维度成功' == '删除维度成功!'\n \n - 删除维度成功!\n ? -\n + 删除维度成功",
"time" : {
"start" : 1716272644958,
"stop" : 1716272645054,
"duration" : 96
}
} ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "6bce7862e8bf2a3f.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "76ee0be7403e029e",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "f523c6add46569d79b9a33cc763be891",
"time" : {
"start" : 1716272644818,
"stop" : 1716272644873,
"duration" : 55
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "5beb8dd75024124b",
"name" : "log",
"source" : "5beb8dd75024124b.txt",
"type" : "text/plain",
"size" : 376
}, {
"uid" : "4a87a856d252348a",
"name" : "stdout",
"source" : "4a87a856d252348a.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "保存组织参数"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'保存组织参数'"
}, {
"name" : "case_data",
"value" : "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '保存组织参数成功!', 'value': ''}"
}, {
"name" : "method",
"value" : "'post'"
}, {
"name" : "mime",
"value" : "'query|json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "76ee0be7403e029e.json",
"parameterValues" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}", "'中'", "'正向用例'", "{'state': True, 'message': '保存组织参数成功!', 'value': ''}", "'post'", "'query|json'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'" ]
}
\ No newline at end of file
{
"uid" : "7af172a2303b627d",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "435ba53246b35b4af7286c32ad75fe23",
"time" : {
"start" : 1716272610398,
"stop" : 1716272610534,
"duration" : 136
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "bbc2176bbcbfcb7e",
"name" : "log",
"source" : "bbc2176bbcbfcb7e.txt",
"type" : "text/plain",
"size" : 340
}, {
"uid" : "2ffbcb889e2046d8",
"name" : "stdout",
"source" : "2ffbcb889e2046d8.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "添加维度"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加维度'"
}, {
"name" : "case_data",
"value" : "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加维度成功!'}"
}, {
"name" : "method",
"value" : "'pOst'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'delete'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "7af172a2303b627d.json",
"parameterValues" : [ "'添加维度'", "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}", "'高'", "'正向用例'", "{'message': '添加维度成功!'}", "'pOst'", "'json'", "'维度管理'", "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'delete'", "None", "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'" ]
}
\ No newline at end of file
{
"uid" : "7efd9dd32f98b518",
"name" : "test用例函数-依赖登录成功和添加维度成功",
"fullName" : "test_case.test_dependency.test_dependency#test1",
"historyId" : "112831bd8b103ba5270ea46bde2822af",
"time" : {
"start" : 1716272633097,
"stop" : 1716272633098,
"duration" : 1
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "7ca9dc953c624cc6",
"name" : "stdout",
"source" : "7ca9dc953c624cc6.txt",
"type" : "text/plain",
"size" : 14
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "story",
"value" : "test"
}, {
"name" : "feature",
"value" : "test"
}, {
"name" : "epic",
"value" : "BPM-场景测试"
}, {
"name" : "tag",
"value" : "dependency(depends=['test_add_dem', 'test_login'])"
}, {
"name" : "parentSuite",
"value" : "test_case.test_dependency"
}, {
"name" : "suite",
"value" : "test_dependency"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_dependency.test_dependency"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ "dependency(depends=['test_add_dem', 'test_login'])" ]
},
"source" : "7efd9dd32f98b518.json",
"parameterValues" : [ ]
}
\ No newline at end of file
{
"uid" : "80142e22de024a60",
"name" : "正向用例-正确输入用户名和密码",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "f7417fae3641334c555177156c21126d",
"time" : {
"start" : 1716272598748,
"stop" : 1716272598811,
"duration" : 63
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "5a84d42ab44260be",
"name" : "log",
"source" : "5a84d42ab44260be.txt",
"type" : "text/plain",
"size" : 575
}, {
"uid" : "4b82c6a38a94e361",
"name" : "stdout",
"source" : "4b82c6a38a94e361.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'admin', 'password': 'MTIzNDU2'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例-正确输入用户名和密码'"
}, {
"name" : "expect_data",
"value" : "{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "80142e22de024a60.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': 'MTIzNDU2'}", "'高'", "'正向用例-正确输入用户名和密码'", "{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}
\ No newline at end of file
{
"uid" : "8142d41860b04b15",
"name" : "反向用例-密码正确,用户名过长",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "968bf5f1bc5266807075e84dfd49d322",
"time" : {
"start" : 1716272599315,
"stop" : 1716272599407,
"duration" : 92
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "195d3c3ed8fa0070",
"name" : "log",
"source" : "195d3c3ed8fa0070.txt",
"type" : "text/plain",
"size" : 298
}, {
"uid" : "e225611ab025f71d",
"name" : "stdout",
"source" : "e225611ab025f71d.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'反向用例-密码正确,用户名过长'"
}, {
"name" : "expect_data",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "8142d41860b04b15.json",
"parameterValues" : [ "'登录系统'", "{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名过长'", "{'message': '账号或密码错误'}", "'POST'", "'json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}
\ No newline at end of file
{
"uid" : "88e60d865858edc2",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "347d2f73ed73495ba7ba72dbf723f253",
"time" : {
"start" : 1716272624099,
"stop" : 1716272624187,
"duration" : 88
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "6ea91b34562fdff6",
"name" : "log",
"source" : "6ea91b34562fdff6.txt",
"type" : "text/plain",
"size" : 490
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '1792803379156631552'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "method",
"value" : "'DELETE'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "88e60d865858edc2.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "96596e0fab9d3415",
"name" : "反向用例-密码正确,用户名过短",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "1a3971dd942170d7f7bcf2c1f2eecd8f",
"time" : {
"start" : 1716272599418,
"stop" : 1716272599517,
"duration" : 99
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "a66f6f015a0908d7",
"name" : "log",
"source" : "a66f6f015a0908d7.txt",
"type" : "text/plain",
"size" : 279
}, {
"uid" : "c3a3b7a3c91bcff7",
"name" : "stdout",
"source" : "c3a3b7a3c91bcff7.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'a', 'password': 'MTIzNDU2'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'反向用例-密码正确,用户名过短'"
}, {
"name" : "expect_data",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "96596e0fab9d3415.json",
"parameterValues" : [ "'登录系统'", "{'username': 'a', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名过短'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}
\ No newline at end of file
{
"uid" : "9a2316575f97b91e",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "db26a6f22fbc123482ea90d3e77fa9fd",
"time" : {
"start" : 1716272621920,
"stop" : 1716272621978,
"duration" : 58
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "8f0dd4d860439e9d",
"name" : "log",
"source" : "8f0dd4d860439e9d.txt",
"type" : "text/plain",
"size" : 258
}, {
"uid" : "d58b94aaa68aa2dd",
"name" : "stdout",
"source" : "d58b94aaa68aa2dd.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "删除组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'删除组织'"
}, {
"name" : "case_data",
"value" : "'test_add_org'"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '删除组织成功!', 'value': ''}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'text/plain'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "9a2316575f97b91e.json",
"parameterValues" : [ "'删除组织'", "'test_add_org'", "'高'", "'正向用例'", "{'state': True, 'message': '删除组织成功!', 'value': ''}", "'POST'", "'text/plain'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'" ]
}
\ No newline at end of file
{
"uid" : "9d2f1604d71ec7a6",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "487ae598a2b30a5ea2489bb3e5fa08a4",
"time" : {
"start" : 1716272619383,
"stop" : 1716272619564,
"duration" : 181
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "6e082c14d64f516c",
"name" : "log",
"source" : "6e082c14d64f516c.txt",
"type" : "text/plain",
"size" : 1989
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "9d2f1604d71ec7a6.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "a011264732c293ec",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "347d2f73ed73495ba7ba72dbf723f253",
"time" : {
"start" : 1716272626207,
"stop" : 1716272626341,
"duration" : 134
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "436d5cd427874b03",
"name" : "log",
"source" : "436d5cd427874b03.txt",
"type" : "text/plain",
"size" : 735
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '1792803379156631552'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "method",
"value" : "'DELETE'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "a011264732c293ec.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "a0b87df8f50dc316",
"name" : "反向用例-密码正确,用户名错误",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "83d67cdc5550a580709b5379b214757d",
"time" : {
"start" : 1716272599640,
"stop" : 1716272599737,
"duration" : 97
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "ba6929d93441163b",
"name" : "log",
"source" : "ba6929d93441163b.txt",
"type" : "text/plain",
"size" : 286
}, {
"uid" : "8a43ab00612fb800",
"name" : "stdout",
"source" : "8a43ab00612fb800.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'admin123', 'password': 'MTIzNDU2'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'反向用例-密码正确,用户名错误'"
}, {
"name" : "expect_data",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "a0b87df8f50dc316.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin123', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名错误'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}
\ No newline at end of file
{
"uid" : "adb4666aed6ea6fd",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "2d767e403ea75ccb1f14fcd976c25353",
"time" : {
"start" : 1716272644756,
"stop" : 1716272644809,
"duration" : 53
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "26ab91eb58d5437f",
"name" : "log",
"source" : "26ab91eb58d5437f.txt",
"type" : "text/plain",
"size" : 276
}, {
"uid" : "6413450afbe297d",
"name" : "stdout",
"source" : "6413450afbe297d.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "组织加入用户"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'组织加入用户'"
}, {
"name" : "case_data",
"value" : "{'orgCode': 'test_add_org', 'accounts': 'admin'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '加入成功', 'value': ''}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "adb4666aed6ea6fd.json",
"parameterValues" : [ "'组织加入用户'", "{'orgCode': 'test_add_org', 'accounts': 'admin'}", "'高'", "'正向用例'", "{'state': True, 'message': '加入成功', 'value': ''}", "'POST'", "'query'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'" ]
}
\ No newline at end of file
{
"uid" : "b477169fbff4410e",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "347d2f73ed73495ba7ba72dbf723f253",
"time" : {
"start" : 1716272621987,
"stop" : 1716272622080,
"duration" : 93
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == '删除维度成功!'\n \n - 删除维度成功!\n ? -\n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == '删除维度成功!'\n \n - 删除维度成功!\n ? -\n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "bbd501f9dbcd3dda",
"name" : "log",
"source" : "bbd501f9dbcd3dda.txt",
"type" : "text/plain",
"size" : 245
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '需要更新'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "method",
"value" : "'DELETE'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "b477169fbff4410e.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "b6d10bbf3ce5a604",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "5ee7a985530eff8db65cbc3fbd8fd151",
"time" : {
"start" : 1716272644883,
"stop" : 1716272644938,
"duration" : 55
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "daf1a95306848a3",
"name" : "log",
"source" : "daf1a95306848a3.txt",
"type" : "text/plain",
"size" : 258
}, {
"uid" : "987782255dd3f0f5",
"name" : "stdout",
"source" : "987782255dd3f0f5.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "删除组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'删除组织'"
}, {
"name" : "case_data",
"value" : "'test_add_org'"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '删除组织成功!', 'value': ''}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'text/plain'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "b6d10bbf3ce5a604.json",
"parameterValues" : [ "'删除组织'", "'test_add_org'", "'高'", "'正向用例'", "{'state': True, 'message': '删除组织成功!', 'value': ''}", "'POST'", "'text/plain'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'" ]
}
\ No newline at end of file
{
"uid" : "bab371eff6794f2b",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "526f1fd519b78b4955668d6cfd277048",
"time" : {
"start" : 1716272637956,
"stop" : 1716272638139,
"duration" : 183
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "cf084e108e2df99e",
"name" : "log",
"source" : "cf084e108e2df99e.txt",
"type" : "text/plain",
"size" : 1193
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "bab371eff6794f2b.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "c26c17d72f28aa7f",
"name" : "反向用例-用户名正确,密码过长",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "37bde76add67e3f73e804e1ff293bbd9",
"time" : {
"start" : 1716272598895,
"stop" : 1716272598989,
"duration" : 94
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "a9bcf4a95c5389c9",
"name" : "log",
"source" : "a9bcf4a95c5389c9.txt",
"type" : "text/plain",
"size" : 355
}, {
"uid" : "bd632cb85700b6eb",
"name" : "stdout",
"source" : "bd632cb85700b6eb.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'反向用例-用户名正确,密码过长'"
}, {
"name" : "expect_data",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "c26c17d72f28aa7f.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}", "'中'", "'反向用例-用户名正确,密码过长'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}
\ No newline at end of file
{
"uid" : "c2d850dec3954142",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "1dcae5f805bddffd6ce19e14c8b3458b",
"time" : {
"start" : 1716272604095,
"stop" : 1716272604145,
"duration" : 50
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F19157400>('message')\n + where <built-in method get of dict object at 0x0000014F19157400> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F19157400>('message')\nE + where <built-in method get of dict object at 0x0000014F19157400> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F19157400>('message')\n + where <built-in method get of dict object at 0x0000014F19157400> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F19157400>('message')\nE + where <built-in method get of dict object at 0x0000014F19157400> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "dde9a1e6e87f25aa",
"name" : "log",
"source" : "dde9a1e6e87f25aa.txt",
"type" : "text/plain",
"size" : 1319
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "刷新token"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'刷新token'"
}, {
"name" : "case_data",
"value" : "None"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '刷新token成功'}"
}, {
"name" : "method",
"value" : "'GET'"
}, {
"name" : "mime",
"value" : "None"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/refresh'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "c2d850dec3954142.json",
"parameterValues" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}
\ No newline at end of file
{
"uid" : "cc6c15cf3215c8cc",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "347d2f73ed73495ba7ba72dbf723f253",
"time" : {
"start" : 1716272632686,
"stop" : 1716272632817,
"duration" : 131
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "879a46074811af0",
"name" : "log",
"source" : "879a46074811af0.txt",
"type" : "text/plain",
"size" : 1470
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '1792803379156631552'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "method",
"value" : "'DELETE'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ {
"uid" : "64c7a0a97adde6d1",
"status" : "failed",
"statusDetails" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"time" : {
"start" : 1716272630526,
"stop" : 1716272630660,
"duration" : 134
}
}, {
"uid" : "d1e0d7501f9ea60",
"status" : "failed",
"statusDetails" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"time" : {
"start" : 1716272628366,
"stop" : 1716272628501,
"duration" : 135
}
}, {
"uid" : "a011264732c293ec",
"status" : "failed",
"statusDetails" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"time" : {
"start" : 1716272626207,
"stop" : 1716272626341,
"duration" : 134
}
}, {
"uid" : "88e60d865858edc2",
"status" : "failed",
"statusDetails" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"time" : {
"start" : 1716272624099,
"stop" : 1716272624187,
"duration" : 88
}
}, {
"uid" : "b477169fbff4410e",
"status" : "failed",
"statusDetails" : "AssertionError: assert '删除维度成功' == '删除维度成功!'\n \n - 删除维度成功!\n ? -\n + 删除维度成功",
"time" : {
"start" : 1716272621987,
"stop" : 1716272622080,
"duration" : 93
}
} ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "cc6c15cf3215c8cc.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "ce412b2b5e44b608",
"name" : "登录--前置",
"fullName" : "test_case.test_dependency.test_dependency#test_login",
"historyId" : "b3ea99bce5fbf89dc61e67ffc74d2796",
"time" : {
"start" : 1716272632845,
"stop" : 1716272632940,
"duration" : 95
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "93c840dec4b9b526",
"name" : "stdout",
"source" : "93c840dec4b9b526.txt",
"type" : "text/plain",
"size" : 13
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "epic",
"value" : "BPM-场景测试"
}, {
"name" : "tag",
"value" : "dependency"
}, {
"name" : "parentSuite",
"value" : "test_case.test_dependency"
}, {
"name" : "suite",
"value" : "test_dependency"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_dependency.test_dependency"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ "dependency" ]
},
"source" : "ce412b2b5e44b608.json",
"parameterValues" : [ ]
}
\ No newline at end of file
{
"uid" : "d093b8587a3ab4f3",
"name" : "反向用例-用户名正确,密码为特殊字符",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "45fbe766301d5f34f2314154dd48ad7c",
"time" : {
"start" : 1716272599103,
"stop" : 1716272599203,
"duration" : 100
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "4c9392d6daa2384",
"name" : "log",
"source" : "4c9392d6daa2384.txt",
"type" : "text/plain",
"size" : 287
}, {
"uid" : "ac741aa1898e1262",
"name" : "stdout",
"source" : "ac741aa1898e1262.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'admin', 'password': '☯㍿卍卐'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'反向用例-用户名正确,密码为特殊字符'"
}, {
"name" : "expect_data",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "d093b8587a3ab4f3.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': '☯㍿卍卐'}", "'中'", "'反向用例-用户名正确,密码为特殊字符'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}
\ No newline at end of file
{
"uid" : "d1e0d7501f9ea60",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "347d2f73ed73495ba7ba72dbf723f253",
"time" : {
"start" : 1716272628366,
"stop" : 1716272628501,
"duration" : 135
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "68079d64d13b4b9b",
"name" : "log",
"source" : "68079d64d13b4b9b.txt",
"type" : "text/plain",
"size" : 980
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '1792803379156631552'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "method",
"value" : "'DELETE'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "d1e0d7501f9ea60.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "d386a81c173e63a4",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "526f1fd519b78b4955668d6cfd277048",
"time" : {
"start" : 1716272633544,
"stop" : 1716272633720,
"duration" : 176
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "e05bc2e897e525cd",
"name" : "log",
"source" : "e05bc2e897e525cd.txt",
"type" : "text/plain",
"size" : 397
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_add_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "d386a81c173e63a4.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "d86d7ab21b67c470",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "526f1fd519b78b4955668d6cfd277048",
"time" : {
"start" : 1716272635752,
"stop" : 1716272635930,
"duration" : 178
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "b398dd14596ef633",
"name" : "log",
"source" : "b398dd14596ef633.txt",
"type" : "text/plain",
"size" : 795
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "d86d7ab21b67c470.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "dd7fa74e2935b20a",
"name" : "添加维度-依赖登录",
"fullName" : "test_case.test_dependency.test_dependency#test_add_dem",
"historyId" : "2c19ea97cbbe4cb31079c2ee05828120",
"time" : {
"start" : 1716272632942,
"stop" : 1716272633094,
"duration" : 152
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "c8901e6970c427be",
"name" : "stdout",
"source" : "c8901e6970c427be.txt",
"type" : "text/plain",
"size" : 13
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "添加维度"
}, {
"name" : "epic",
"value" : "BPM-场景测试"
}, {
"name" : "tag",
"value" : "dependency(depends=['test_login'])"
}, {
"name" : "parentSuite",
"value" : "test_case.test_dependency"
}, {
"name" : "suite",
"value" : "test_dependency"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_dependency.test_dependency"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ "dependency(depends=['test_login'])" ]
},
"source" : "dd7fa74e2935b20a.json",
"parameterValues" : [ ]
}
\ No newline at end of file
{
"uid" : "e425d3e0108cef57",
"name" : "反向用例-用户名正确,密码过短",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "f5ad8b2871fbe9131e812a7e7fd4507e",
"time" : {
"start" : 1716272598998,
"stop" : 1716272599093,
"duration" : 95
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "27912ca823c311e6",
"name" : "log",
"source" : "27912ca823c311e6.txt",
"type" : "text/plain",
"size" : 276
}, {
"uid" : "c49546fe18c84daf",
"name" : "stdout",
"source" : "c49546fe18c84daf.txt",
"type" : "text/plain",
"size" : 7
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'admin', 'password': 'm'}"
}, {
"name" : "case_level",
"value" : "'中'"
}, {
"name" : "case_title",
"value" : "'反向用例-用户名正确,密码过短'"
}, {
"name" : "expect_data",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "e425d3e0108cef57.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': 'm'}", "'中'", "'反向用例-用户名正确,密码过短'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}
\ No newline at end of file
{
"uid" : "f0b29a97131b512d",
"name" : "正向用例",
"fullName" : "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm",
"historyId" : "526f1fd519b78b4955668d6cfd277048",
"time" : {
"start" : 1716272642365,
"stop" : 1716272642541,
"duration" : 176
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "2a6299f399f58eb7",
"name" : "log",
"source" : "2a6299f399f58eb7.txt",
"type" : "text/plain",
"size" : 1989
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-老张"
}, {
"name" : "parentSuite",
"value" : "test_case.test_mirZhang"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_mirZhang.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "f0b29a97131b512d.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "f63c130e44479e2f",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "487ae598a2b30a5ea2489bb3e5fa08a4",
"time" : {
"start" : 1716272617174,
"stop" : 1716272617355,
"duration" : 181
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "c03a0df9281574b5",
"name" : "log",
"source" : "c03a0df9281574b5.txt",
"type" : "text/plain",
"size" : 1591
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : true,
"retry" : true,
"extra" : {
"categories" : [ ],
"tags" : [ ]
},
"source" : "f63c130e44479e2f.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "f7e90e36deb68600",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "487ae598a2b30a5ea2489bb3e5fa08a4",
"time" : {
"start" : 1716272621599,
"stop" : 1716272621780,
"duration" : 181
},
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"statusTrace" : "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "a6c92586b9cefbbf",
"name" : "log",
"source" : "a6c92586b9cefbbf.txt",
"type" : "text/plain",
"size" : 2387
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : true
},
"afterStages" : [ ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM系统-demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_demo"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "8968-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_demo.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_level",
"value" : "'高'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ {
"uid" : "9d2f1604d71ec7a6",
"status" : "failed",
"statusDetails" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"time" : {
"start" : 1716272619383,
"stop" : 1716272619564,
"duration" : 181
}
}, {
"uid" : "f63c130e44479e2f",
"status" : "failed",
"statusDetails" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"time" : {
"start" : 1716272617174,
"stop" : 1716272617355,
"duration" : 181
}
}, {
"uid" : "209ce81276c337a6",
"status" : "failed",
"statusDetails" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"time" : {
"start" : 1716272614968,
"stop" : 1716272615147,
"duration" : 179
}
}, {
"uid" : "47066bd5655ab306",
"status" : "failed",
"statusDetails" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"time" : {
"start" : 1716272612750,
"stop" : 1716272612931,
"duration" : 181
}
}, {
"uid" : "682b7b7636aca843",
"status" : "failed",
"statusDetails" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"time" : {
"start" : 1716272610542,
"stop" : 1716272610722,
"duration" : 180
}
} ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "f7e90e36deb68600.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "ab17fc5a4eb3bca4b216b548c7f9fcbc",
"name" : "timeline",
"children" : [ {
"name" : "LAPTOP-O09782E1",
"children" : [ {
"name" : "8968-MainThread",
"children" : [ {
"name" : "test用例函数-依赖登录成功和添加维度成功",
"uid" : "7efd9dd32f98b518",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272633097,
"stop" : 1716272633098,
"duration" : 1
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "正向用例",
"uid" : "10e8cf966692af2d",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272621795,
"stop" : 1716272621848,
"duration" : 53
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'组织加入用户'", "{'orgCode': 'test_add_org', 'accounts': 'admin'}", "'高'", "'正向用例'", "{'state': True, 'message': '加入成功', 'value': ''}", "'POST'", "'query'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'" ]
}, {
"name" : "正向用例",
"uid" : "682b7b7636aca843",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272610542,
"stop" : 1716272610722,
"duration" : 180
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "139913cc61e34bb9",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272610326,
"stop" : 1716272610382,
"duration" : 56
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}, {
"name" : "正向用例",
"uid" : "7af172a2303b627d",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272610398,
"stop" : 1716272610534,
"duration" : 136
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}", "'高'", "'正向用例'", "{'message': '添加维度成功!'}", "'pOst'", "'json'", "'维度管理'", "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'delete'", "None", "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'" ]
}, {
"name" : "反向用例-用户名正确,密码为特殊字符",
"uid" : "d093b8587a3ab4f3",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272599103,
"stop" : 1716272599203,
"duration" : 100
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '☯㍿卍卐'}", "'中'", "'反向用例-用户名正确,密码为特殊字符'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "正向用例",
"uid" : "adb4666aed6ea6fd",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272644756,
"stop" : 1716272644809,
"duration" : 53
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'组织加入用户'", "{'orgCode': 'test_add_org', 'accounts': 'admin'}", "'高'", "'正向用例'", "{'state': True, 'message': '加入成功', 'value': ''}", "'POST'", "'query'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'" ]
}, {
"name" : "添加维度-依赖登录",
"uid" : "dd7fa74e2935b20a",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272632942,
"stop" : 1716272633094,
"duration" : 152
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "正向用例",
"uid" : "76ee0be7403e029e",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272644818,
"stop" : 1716272644873,
"duration" : 55
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}", "'中'", "'正向用例'", "{'state': True, 'message': '保存组织参数成功!', 'value': ''}", "'post'", "'query|json'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'" ]
}, {
"name" : "正向用例",
"uid" : "b6d10bbf3ce5a604",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272644883,
"stop" : 1716272644938,
"duration" : 55
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_add_org'", "'高'", "'正向用例'", "{'state': True, 'message': '删除组织成功!', 'value': ''}", "'POST'", "'text/plain'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'" ]
}, {
"name" : "反向用例-密码正确,用户名过长",
"uid" : "8142d41860b04b15",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272599315,
"stop" : 1716272599407,
"duration" : 92
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名过长'", "{'message': '账号或密码错误'}", "'POST'", "'json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "正向用例",
"uid" : "209ce81276c337a6",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272614968,
"stop" : 1716272615147,
"duration" : 179
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例-正确输入用户名和密码",
"uid" : "80142e22de024a60",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272598748,
"stop" : 1716272598811,
"duration" : 63
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'MTIzNDU2'}", "'高'", "'正向用例-正确输入用户名和密码'", "{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "正向用例",
"uid" : "cc6c15cf3215c8cc",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272632686,
"stop" : 1716272632817,
"duration" : 131
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "正向用例",
"uid" : "34d4a7d4229ac13b",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272644958,
"stop" : 1716272645054,
"duration" : 96
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "正向用例",
"uid" : "f7e90e36deb68600",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272621599,
"stop" : 1716272621780,
"duration" : 181
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "12eaadd487a58cd",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272649197,
"stop" : 1716272649328,
"duration" : 131
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "正向用例",
"uid" : "c2d850dec3954142",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272604095,
"stop" : 1716272604145,
"duration" : 50
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}, {
"name" : "正向用例",
"uid" : "18d9dd9447f5bd7b",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272599755,
"stop" : 1716272599845,
"duration" : 90
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}, {
"name" : "正向用例",
"uid" : "6bce7862e8bf2a3f",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272655685,
"stop" : 1716272655817,
"duration" : 132
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "正向用例",
"uid" : "272c438f0bed80b",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272608243,
"stop" : 1716272608294,
"duration" : 51
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}, {
"name" : "正向用例",
"uid" : "63fd0603d3fc3e68",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272647081,
"stop" : 1716272647173,
"duration" : 92
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "正向用例",
"uid" : "d86d7ab21b67c470",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272635752,
"stop" : 1716272635930,
"duration" : 178
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "bab371eff6794f2b",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272637956,
"stop" : 1716272638139,
"duration" : 183
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "反向用例-密码正确,用户名错误",
"uid" : "a0b87df8f50dc316",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272599640,
"stop" : 1716272599737,
"duration" : 97
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin123', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名错误'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-用户名正确,密码过短",
"uid" : "e425d3e0108cef57",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272598998,
"stop" : 1716272599093,
"duration" : 95
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'm'}", "'中'", "'反向用例-用户名正确,密码过短'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "正向用例",
"uid" : "5dd7bd33a0896cb1",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272653523,
"stop" : 1716272653661,
"duration" : 138
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "正向用例",
"uid" : "15e35cc79ee68b8c",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272621856,
"stop" : 1716272621912,
"duration" : 56
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}", "'中'", "'正向用例'", "{'state': True, 'message': '保存组织参数成功!', 'value': ''}", "'post'", "'query|json'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'" ]
}, {
"name" : "正向用例",
"uid" : "510c89b87f6352b8",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272633398,
"stop" : 1716272633535,
"duration" : 137
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}", "'高'", "'正向用例'", "{'message': '添加维度成功!'}", "'pOst'", "'json'", "'维度管理'", "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'delete'", "None", "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'" ]
}, {
"name" : "正向用例",
"uid" : "64c7a0a97adde6d1",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272630526,
"stop" : 1716272630660,
"duration" : 134
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "正向用例",
"uid" : "d386a81c173e63a4",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272633544,
"stop" : 1716272633720,
"duration" : 176
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "f63c130e44479e2f",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272617174,
"stop" : 1716272617355,
"duration" : 181
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "643ca7629b09152b",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272644557,
"stop" : 1716272644742,
"duration" : 185
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "反向用例-用户名正确,密码为空",
"uid" : "1bd3c031f056ab2e",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272598829,
"stop" : 1716272598886,
"duration" : 57
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "'中'", "'反向用例-用户名正确,密码为空'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "正向用例",
"uid" : "4cf6104851f97da",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272602024,
"stop" : 1716272602074,
"duration" : 50
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}, {
"name" : "正向用例",
"uid" : "9a2316575f97b91e",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272621920,
"stop" : 1716272621978,
"duration" : 58
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_add_org'", "'高'", "'正向用例'", "{'state': True, 'message': '删除组织成功!', 'value': ''}", "'POST'", "'text/plain'", "'组织管理'", "None", "None", "None", "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'" ]
}, {
"name" : "反向用例-密码正确,用户名为空",
"uid" : "5532c9175fb2354e",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272599213,
"stop" : 1716272599306,
"duration" : 93
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名为空'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "反向用例-密码正确,用户名为特殊字符",
"uid" : "5b0b595f880fe013",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272599527,
"stop" : 1716272599627,
"duration" : 100
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名为特殊字符'", "{'message': '账号或密码错误'}", "'POST'", "'json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "正向用例",
"uid" : "4f1ef4a5b7fd035f",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272606164,
"stop" : 1716272606215,
"duration" : 51
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'中'", "'正向用例'", "{'message': '刷新token成功'}", "'GET'", "None", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/refresh'" ]
}, {
"name" : "正向用例",
"uid" : "88e60d865858edc2",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272624099,
"stop" : 1716272624187,
"duration" : 88
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "正向用例",
"uid" : "f0b29a97131b512d",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272642365,
"stop" : 1716272642541,
"duration" : 176
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "3015128a124f9ae6",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272640167,
"stop" : 1716272640342,
"duration" : 175
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "9d2f1604d71ec7a6",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272619383,
"stop" : 1716272619564,
"duration" : 181
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "b477169fbff4410e",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272621987,
"stop" : 1716272622080,
"duration" : 93
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "正向用例",
"uid" : "d1e0d7501f9ea60",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272628366,
"stop" : 1716272628501,
"duration" : 135
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "反向用例-用户名正确,密码过长",
"uid" : "c26c17d72f28aa7f",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272598895,
"stop" : 1716272598989,
"duration" : 94
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}", "'中'", "'反向用例-用户名正确,密码过长'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
}, {
"name" : "正向用例",
"uid" : "1ad3f99f8aec3b78",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272651358,
"stop" : 1716272651491,
"duration" : 133
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803475629817856'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "正向用例",
"uid" : "47066bd5655ab306",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272612750,
"stop" : 1716272612931,
"duration" : 181
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'高'", "'正向用例'", "{'message': '添加组织成功'}", "'POST'", "'json'", "'组织管理'", "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}", "'select|delete'", "'demId'", "'http://120.46.172.186:8080/api/org/v1/org/addOrg'" ]
}, {
"name" : "登录--前置",
"uid" : "ce412b2b5e44b608",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272632845,
"stop" : 1716272632940,
"duration" : 95
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "正向用例",
"uid" : "a011264732c293ec",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "failed",
"time" : {
"start" : 1716272626207,
"stop" : 1716272626341,
"duration" : 134
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '1792803379156631552'}", "'中'", "'正向用例'", "{'message': '删除维度成功'}", "'DELETE'", "'query'", "'维度管理'", "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'", "'select'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "反向用例-密码正确,用户名过短",
"uid" : "96596e0fab9d3415",
"parentUid" : "e4a707af5684e391a4553cf4ade23b8f",
"status" : "passed",
"time" : {
"start" : 1716272599418,
"stop" : 1716272599517,
"duration" : 99
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'MTIzNDU2'}", "'中'", "'反向用例-密码正确,用户名过短'", "{'message': '账号或密码错误'}", "'POST'", "'application/json'", "'认证接口'", "None", "None", "None", "'http://120.46.172.186:8080/auth'" ]
} ],
"uid" : "e4a707af5684e391a4553cf4ade23b8f"
} ],
"uid" : "7e33cee26d6ca920df2dc9409741f061"
} ]
}
\ No newline at end of file
launch_status failed=5 1716272796000000000
launch_status broken=0 1716272796000000000
launch_status passed=21 1716272796000000000
launch_status skipped=0 1716272796000000000
launch_status unknown=0 1716272796000000000
launch_time duration=57069 1716272796000000000
launch_time min_duration=1 1716272796000000000
launch_time max_duration=185 1716272796000000000
launch_time sum_duration=2426 1716272796000000000
launch_problems product_defects=5 1716272796000000000
launch_retries retries=25 1716272796000000000
launch_retries run=26 1716272796000000000
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Allure Report summary mail</title>
</head>
<body>
Mail body
</body>
</html>
launch_status_failed 5
launch_status_broken 0
launch_status_passed 21
launch_status_skipped 0
launch_status_unknown 0
launch_time_duration 57069
launch_time_min_duration 1
launch_time_max_duration 185
launch_time_sum_duration 2426
launch_problems_product_defects 5
launch_retries_retries 25
launch_retries_run 26
module.exports = __webpack_public_path__ + "favicon.ico";
\ No newline at end of file
[ {
"data" : {
"Product defects" : 5
}
} ]
\ No newline at end of file
[ {
"data" : {
"duration" : 57069
}
} ]
\ No newline at end of file
[ {
"data" : {
"failed" : 5,
"broken" : 0,
"skipped" : 0,
"passed" : 21,
"unknown" : 0,
"total" : 26
}
} ]
\ No newline at end of file
{
"83d67cdc5550a580709b5379b214757d" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "a0b87df8f50dc316",
"status" : "passed",
"time" : {
"start" : 1716272599640,
"stop" : 1716272599737,
"duration" : 97
}
} ]
},
"45fbe766301d5f34f2314154dd48ad7c" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "d093b8587a3ab4f3",
"status" : "passed",
"time" : {
"start" : 1716272599103,
"stop" : 1716272599203,
"duration" : 100
}
} ]
},
"526f1fd519b78b4955668d6cfd277048" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "643ca7629b09152b",
"status" : "failed",
"statusDetails" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"time" : {
"start" : 1716272644557,
"stop" : 1716272644742,
"duration" : 185
}
} ]
},
"2d767e403ea75ccb1f14fcd976c25353" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "adb4666aed6ea6fd",
"status" : "passed",
"time" : {
"start" : 1716272644756,
"stop" : 1716272644809,
"duration" : 53
}
} ]
},
"1dcae5f805bddffd6ce19e14c8b3458b" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "139913cc61e34bb9",
"status" : "failed",
"statusDetails" : "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191C40C0>('message')\n + where <built-in method get of dict object at 0x0000014F191C40C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json",
"time" : {
"start" : 1716272610326,
"stop" : 1716272610382,
"duration" : 56
}
} ]
},
"385bda31fe152e15cd1fc6b7817225aa" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "10e8cf966692af2d",
"status" : "passed",
"time" : {
"start" : 1716272621795,
"stop" : 1716272621848,
"duration" : 53
}
} ]
},
"435ba53246b35b4af7286c32ad75fe23" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "7af172a2303b627d",
"status" : "passed",
"time" : {
"start" : 1716272610398,
"stop" : 1716272610534,
"duration" : 136
}
} ]
},
"f7417fae3641334c555177156c21126d" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "80142e22de024a60",
"status" : "passed",
"time" : {
"start" : 1716272598748,
"stop" : 1716272598811,
"duration" : 63
}
} ]
},
"aab084bf6a05ec45b335f51ecc264b7e" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "510c89b87f6352b8",
"status" : "passed",
"time" : {
"start" : 1716272633398,
"stop" : 1716272633535,
"duration" : 137
}
} ]
},
"f5ad8b2871fbe9131e812a7e7fd4507e" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "e425d3e0108cef57",
"status" : "passed",
"time" : {
"start" : 1716272598998,
"stop" : 1716272599093,
"duration" : 95
}
} ]
},
"db26a6f22fbc123482ea90d3e77fa9fd" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "9a2316575f97b91e",
"status" : "passed",
"time" : {
"start" : 1716272621920,
"stop" : 1716272621978,
"duration" : 58
}
} ]
},
"487ae598a2b30a5ea2489bb3e5fa08a4" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "f7e90e36deb68600",
"status" : "failed",
"statusDetails" : "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功",
"time" : {
"start" : 1716272621599,
"stop" : 1716272621780,
"duration" : 181
}
} ]
},
"4164dfc118ea6cc8eeb9ce3984609436" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "1bd3c031f056ab2e",
"status" : "passed",
"time" : {
"start" : 1716272598829,
"stop" : 1716272598886,
"duration" : 57
}
} ]
},
"347d2f73ed73495ba7ba72dbf723f253" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "cc6c15cf3215c8cc",
"status" : "failed",
"statusDetails" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"time" : {
"start" : 1716272632686,
"stop" : 1716272632817,
"duration" : 131
}
} ]
},
"fa305c7b3d900250c6115572baa5540a" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "5b0b595f880fe013",
"status" : "passed",
"time" : {
"start" : 1716272599527,
"stop" : 1716272599627,
"duration" : 100
}
} ]
},
"968bf5f1bc5266807075e84dfd49d322" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "8142d41860b04b15",
"status" : "passed",
"time" : {
"start" : 1716272599315,
"stop" : 1716272599407,
"duration" : 92
}
} ]
},
"ca39ba3d830745ef2c54de45a0fd94de" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "5532c9175fb2354e",
"status" : "passed",
"time" : {
"start" : 1716272599213,
"stop" : 1716272599306,
"duration" : 93
}
} ]
},
"2c19ea97cbbe4cb31079c2ee05828120" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "dd7fa74e2935b20a",
"status" : "passed",
"time" : {
"start" : 1716272632942,
"stop" : 1716272633094,
"duration" : 152
}
} ]
},
"f0f670cbfec7a9680aec241c756307a6" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "6bce7862e8bf2a3f",
"status" : "failed",
"statusDetails" : "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功",
"time" : {
"start" : 1716272655685,
"stop" : 1716272655817,
"duration" : 132
}
} ]
},
"5ee7a985530eff8db65cbc3fbd8fd151" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "b6d10bbf3ce5a604",
"status" : "passed",
"time" : {
"start" : 1716272644883,
"stop" : 1716272644938,
"duration" : 55
}
} ]
},
"e133082949e07d38e4a8587843153535" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "15e35cc79ee68b8c",
"status" : "passed",
"time" : {
"start" : 1716272621856,
"stop" : 1716272621912,
"duration" : 56
}
} ]
},
"112831bd8b103ba5270ea46bde2822af" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "7efd9dd32f98b518",
"status" : "passed",
"time" : {
"start" : 1716272633097,
"stop" : 1716272633098,
"duration" : 1
}
} ]
},
"37bde76add67e3f73e804e1ff293bbd9" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "c26c17d72f28aa7f",
"status" : "passed",
"time" : {
"start" : 1716272598895,
"stop" : 1716272598989,
"duration" : 94
}
} ]
},
"b3ea99bce5fbf89dc61e67ffc74d2796" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "ce412b2b5e44b608",
"status" : "passed",
"time" : {
"start" : 1716272632845,
"stop" : 1716272632940,
"duration" : 95
}
} ]
},
"f523c6add46569d79b9a33cc763be891" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "76ee0be7403e029e",
"status" : "passed",
"time" : {
"start" : 1716272644818,
"stop" : 1716272644873,
"duration" : 55
}
} ]
},
"1a3971dd942170d7f7bcf2c1f2eecd8f" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "96596e0fab9d3415",
"status" : "passed",
"time" : {
"start" : 1716272599418,
"stop" : 1716272599517,
"duration" : 99
}
} ]
}
}
\ No newline at end of file
[ {
"data" : {
"run" : 26,
"retry" : 25
}
} ]
\ No newline at end of file
<!DOCTYPE html>
<html dir="ltr">
<head>
<meta charset="utf-8">
<title>Allure Report</title>
<link rel="favicon" href="favicon.ico?v=2">
<link rel="stylesheet" href="styles.css">
<link rel="stylesheet" href="plugins/screen-diff/styles.css">
</head>
<body>
<div id="alert"></div>
<div id="content">
<span class="spinner">
<span class="spinner__circle"></span>
</span>
</div>
<div id="popup"></div>
<script src="app.js"></script>
<script src="plugins/behaviors/index.js"></script>
<script src="plugins/packages/index.js"></script>
<script src="plugins/screen-diff/index.js"></script>
</body>
</html>
'use strict';
allure.api.addTranslation('en', {
tab: {
behaviors: {
name: 'Behaviors'
}
},
widget: {
behaviors: {
name: 'Features by stories',
showAll: 'show all'
}
}
});
allure.api.addTranslation('ru', {
tab: {
behaviors: {
name: 'Функциональность'
}
},
widget: {
behaviors: {
name: 'Функциональность',
showAll: 'показать все'
}
}
});
allure.api.addTranslation('zh', {
tab: {
behaviors: {
name: '功能'
}
},
widget: {
behaviors: {
name: '特性场景',
showAll: '显示所有'
}
}
});
allure.api.addTranslation('de', {
tab: {
behaviors: {
name: 'Verhalten'
}
},
widget: {
behaviors: {
name: 'Features nach Stories',
showAll: 'Zeige alle'
}
}
});
allure.api.addTranslation('nl', {
tab: {
behaviors: {
name: 'Functionaliteit'
}
},
widget: {
behaviors: {
name: 'Features en story’s',
showAll: 'Toon alle'
}
}
});
allure.api.addTranslation('he', {
tab: {
behaviors: {
name: 'התנהגויות'
}
},
widget: {
behaviors: {
name: 'תכונות לפי סיפורי משתמש',
showAll: 'הצג הכול'
}
}
});
allure.api.addTranslation('br', {
tab: {
behaviors: {
name: 'Comportamentos'
}
},
widget: {
behaviors: {
name: 'Funcionalidades por história',
showAll: 'Mostrar tudo'
}
}
});
allure.api.addTranslation('ja', {
tab: {
behaviors: {
name: '振る舞い'
}
},
widget: {
behaviors: {
name: 'ストーリー別の機能',
showAll: '全て表示'
}
}
});
allure.api.addTranslation('es', {
tab: {
behaviors: {
name: 'Funcionalidades'
}
},
widget: {
behaviors: {
name: 'Funcionalidades por Historias de Usuario',
showAll: 'mostrar todo'
}
}
});
allure.api.addTranslation('kr', {
tab: {
behaviors: {
name: '동작'
}
},
widget: {
behaviors: {
name: '스토리별 기능',
showAll: '전체 보기'
}
}
});
allure.api.addTranslation('fr', {
tab: {
behaviors: {
name: 'Comportements'
}
},
widget: {
behaviors: {
name: 'Thèmes par histoires',
showAll: 'Montrer tout'
}
}
});
allure.api.addTab('behaviors', {
title: 'tab.behaviors.name', icon: 'fa fa-list',
route: 'behaviors(/)(:testGroup)(/)(:testResult)(/)(:testResultTab)(/)',
onEnter: (function (testGroup, testResult, testResultTab) {
return new allure.components.TreeLayout({
testGroup: testGroup,
testResult: testResult,
testResultTab: testResultTab,
tabName: 'tab.behaviors.name',
baseUrl: 'behaviors',
url: 'data/behaviors.json',
csvUrl: 'data/behaviors.csv'
});
})
});
allure.api.addWidget('widgets', 'behaviors', allure.components.WidgetStatusView.extend({
rowTag: 'a',
title: 'widget.behaviors.name',
baseUrl: 'behaviors',
showLinks: true
}));
'use strict';
allure.api.addTranslation('en', {
tab: {
packages: {
name: 'Packages'
}
}
});
allure.api.addTranslation('ru', {
tab: {
packages: {
name: 'Пакеты'
}
}
});
allure.api.addTranslation('zh', {
tab: {
packages: {
name: '包'
}
}
});
allure.api.addTranslation('de', {
tab: {
packages: {
name: 'Pakete'
}
}
});
allure.api.addTranslation('nl', {
tab: {
packages: {
name: 'Packages'
}
}
});
allure.api.addTranslation('he', {
tab: {
packages: {
name: 'חבילות'
}
}
});
allure.api.addTranslation('br', {
tab: {
packages: {
name: 'Pacotes'
}
}
});
allure.api.addTranslation('ja', {
tab: {
packages: {
name: 'パッケージ'
}
}
});
allure.api.addTranslation('es', {
tab: {
packages: {
name: 'Paquetes'
}
}
});
allure.api.addTranslation('kr', {
tab: {
packages: {
name: '패키지'
}
}
});
allure.api.addTranslation('fr', {
tab: {
packages: {
name: 'Paquets'
}
}
});
allure.api.addTab('packages', {
title: 'tab.packages.name', icon: 'fa fa-align-left',
route: 'packages(/)(:testGroup)(/)(:testResult)(/)(:testResultTab)(/)',
onEnter: (function (testGroup, testResult, testResultTab) {
return new allure.components.TreeLayout({
testGroup: testGroup,
testResult: testResult,
testResultTab: testResultTab,
tabName: 'tab.packages.name',
baseUrl: 'packages',
url: 'data/packages.json'
});
})
});
(function () {
var settings = allure.getPluginSettings('screen-diff', { diffType: 'diff' });
function renderImage(src) {
return (
'<div class="screen-diff__container">' +
'<img class="screen-diff__image" src="' +
src +
'">' +
'</div>'
);
}
function findImage(data, name) {
if (data.testStage && data.testStage.attachments) {
var matchedImage = data.testStage.attachments.filter(function (attachment) {
return attachment.name === name;
})[0];
if (matchedImage) {
return 'data/attachments/' + matchedImage.source;
}
}
return null;
}
function renderDiffContent(type, diffImage, actualImage, expectedImage) {
if (type === 'diff') {
if (diffImage) {
return renderImage(diffImage);
}
}
if (type === 'overlay' && expectedImage) {
return (
'<div class="screen-diff__overlay screen-diff__container">' +
'<img class="screen-diff__image" src="' +
expectedImage +
'">' +
'<div class="screen-diff__image-over">' +
'<img class="screen-diff__image" src="' +
actualImage +
'">' +
'</div>' +
'</div>'
);
}
if (actualImage) {
return renderImage(actualImage);
}
return 'No diff data provided';
}
var TestResultView = Backbone.Marionette.View.extend({
regions: {
subView: '.screen-diff-view',
},
template: function () {
return '<div class="screen-diff-view"></div>';
},
onRender: function () {
var data = this.model.toJSON();
var testType = data.labels.filter(function (label) {
return label.name === 'testType';
})[0];
var diffImage = findImage(data, 'diff');
var actualImage = findImage(data, 'actual');
var expectedImage = findImage(data, 'expected');
if (!testType || testType.value !== 'screenshotDiff') {
return;
}
this.showChildView(
'subView',
new ScreenDiffView({
diffImage: diffImage,
actualImage: actualImage,
expectedImage: expectedImage,
}),
);
},
});
var ErrorView = Backbone.Marionette.View.extend({
templateContext: function () {
return this.options;
},
template: function (data) {
return '<pre class="screen-diff-error">' + data.error + '</pre>';
},
});
var AttachmentView = Backbone.Marionette.View.extend({
regions: {
subView: '.screen-diff-view',
},
template: function () {
return '<div class="screen-diff-view"></div>';
},
onRender: function () {
jQuery
.getJSON(this.options.sourceUrl)
.then(this.renderScreenDiffView.bind(this), this.renderErrorView.bind(this));
},
renderErrorView: function (error) {
console.log(error);
this.showChildView(
'subView',
new ErrorView({
error: error.statusText,
}),
);
},
renderScreenDiffView: function (data) {
this.showChildView(
'subView',
new ScreenDiffView({
diffImage: data.diff,
actualImage: data.actual,
expectedImage: data.expected,
}),
);
},
});
var ScreenDiffView = Backbone.Marionette.View.extend({
className: 'pane__section',
events: function () {
return {
['click [name="screen-diff-type-' + this.cid + '"]']: 'onDiffTypeChange',
'mousemove .screen-diff__overlay': 'onOverlayMove',
};
},
initialize: function (options) {
this.diffImage = options.diffImage;
this.actualImage = options.actualImage;
this.expectedImage = options.expectedImage;
this.radioName = 'screen-diff-type-' + this.cid;
},
templateContext: function () {
return {
diffType: settings.get('diffType'),
diffImage: this.diffImage,
actualImage: this.actualImage,
expectedImage: this.expectedImage,
radioName: this.radioName,
};
},
template: function (data) {
if (!data.diffImage && !data.actualImage && !data.expectedImage) {
return '';
}
return (
'<h3 class="pane__section-title">Screen Diff</h3>' +
'<div class="screen-diff__content">' +
'<div class="screen-diff__switchers">' +
'<label><input type="radio" name="' +
data.radioName +
'" value="diff"> Show diff</label>' +
'<label><input type="radio" name="' +
data.radioName +
'" value="overlay"> Show overlay</label>' +
'</div>' +
renderDiffContent(
data.diffType,
data.diffImage,
data.actualImage,
data.expectedImage,
) +
'</div>'
);
},
adjustImageSize: function (event) {
var overImage = this.$(event.target);
overImage.width(overImage.width());
},
onRender: function () {
const diffType = settings.get('diffType');
this.$('[name="' + this.radioName + '"][value="' + diffType + '"]').prop(
'checked',
true,
);
if (diffType === 'overlay') {
this.$('.screen-diff__image-over img').on('load', this.adjustImageSize.bind(this));
}
},
onOverlayMove: function (event) {
var pageX = event.pageX;
var containerScroll = this.$('.screen-diff__container').scrollLeft();
var elementX = event.currentTarget.getBoundingClientRect().left;
var delta = pageX - elementX + containerScroll;
this.$('.screen-diff__image-over').width(delta);
},
onDiffTypeChange: function (event) {
settings.save('diffType', event.target.value);
this.render();
},
});
allure.api.addTestResultBlock(TestResultView, { position: 'before' });
allure.api.addAttachmentViewer('application/vnd.allure.image.diff', {
View: AttachmentView,
icon: 'fa fa-exchange',
});
})();
.screen-diff__switchers {
margin-bottom: 1em;
}
.screen-diff__switchers label + label {
margin-left: 1em;
}
.screen-diff__overlay {
position: relative;
cursor: col-resize;
}
.screen-diff__container {
overflow-x: auto;
}
.screen-diff__image-over {
top: 0;
left: 0;
bottom: 0;
background: #fff;
position: absolute;
overflow: hidden;
box-shadow: 2px 0 1px -1px #aaa;
}
.screen-diff-error {
color: #fd5a3e;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"total" : 3,
"items" : [ {
"uid" : "66550695002566ec8b65b624a9b94173",
"name" : "BPM系统-demo",
"statistic" : {
"failed" : 3,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 3
}
}, {
"uid" : "6e01d6d59ee91e3571e91df05295436f",
"name" : "BPM系统-老张",
"statistic" : {
"failed" : 2,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 2
}
}, {
"uid" : "94f1553abd732a71c34e7dce06118ae5",
"name" : "BPM-场景测试",
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 3,
"unknown" : 0,
"total" : 3
}
} ]
}
\ No newline at end of file
[ {
"data" : {
"Product defects" : 5
}
} ]
\ No newline at end of file
{
"total" : 1,
"items" : [ {
"uid" : "8fb3a91ba5aaf9de24cc8a92edc82b5d",
"name" : "Product defects",
"statistic" : {
"failed" : 5,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 5
}
} ]
}
\ No newline at end of file
[ {
"data" : {
"duration" : 57069
}
} ]
\ No newline at end of file
[ {
"uid" : "8142d41860b04b15",
"name" : "反向用例-密码正确,用户名过长",
"time" : {
"start" : 1716272599315,
"stop" : 1716272599407,
"duration" : 92
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "139913cc61e34bb9",
"name" : "正向用例",
"time" : {
"start" : 1716272610326,
"stop" : 1716272610382,
"duration" : 56
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "80142e22de024a60",
"name" : "正向用例-正确输入用户名和密码",
"time" : {
"start" : 1716272598748,
"stop" : 1716272598811,
"duration" : 63
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "cc6c15cf3215c8cc",
"name" : "正向用例",
"time" : {
"start" : 1716272632686,
"stop" : 1716272632817,
"duration" : 131
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "1bd3c031f056ab2e",
"name" : "反向用例-用户名正确,密码为空",
"time" : {
"start" : 1716272598829,
"stop" : 1716272598886,
"duration" : 57
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "5b0b595f880fe013",
"name" : "反向用例-密码正确,用户名为特殊字符",
"time" : {
"start" : 1716272599527,
"stop" : 1716272599627,
"duration" : 100
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "9a2316575f97b91e",
"name" : "正向用例",
"time" : {
"start" : 1716272621920,
"stop" : 1716272621978,
"duration" : 58
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "b6d10bbf3ce5a604",
"name" : "正向用例",
"time" : {
"start" : 1716272644883,
"stop" : 1716272644938,
"duration" : 55
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "5532c9175fb2354e",
"name" : "反向用例-密码正确,用户名为空",
"time" : {
"start" : 1716272599213,
"stop" : 1716272599306,
"duration" : 93
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "76ee0be7403e029e",
"name" : "正向用例",
"time" : {
"start" : 1716272644818,
"stop" : 1716272644873,
"duration" : 55
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "adb4666aed6ea6fd",
"name" : "正向用例",
"time" : {
"start" : 1716272644756,
"stop" : 1716272644809,
"duration" : 53
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "7af172a2303b627d",
"name" : "正向用例",
"time" : {
"start" : 1716272610398,
"stop" : 1716272610534,
"duration" : 136
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "f7e90e36deb68600",
"name" : "正向用例",
"time" : {
"start" : 1716272621599,
"stop" : 1716272621780,
"duration" : 181
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "10e8cf966692af2d",
"name" : "正向用例",
"time" : {
"start" : 1716272621795,
"stop" : 1716272621848,
"duration" : 53
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "15e35cc79ee68b8c",
"name" : "正向用例",
"time" : {
"start" : 1716272621856,
"stop" : 1716272621912,
"duration" : 56
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "ce412b2b5e44b608",
"name" : "登录--前置",
"time" : {
"start" : 1716272632845,
"stop" : 1716272632940,
"duration" : 95
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "510c89b87f6352b8",
"name" : "正向用例",
"time" : {
"start" : 1716272633398,
"stop" : 1716272633535,
"duration" : 137
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "6bce7862e8bf2a3f",
"name" : "正向用例",
"time" : {
"start" : 1716272655685,
"stop" : 1716272655817,
"duration" : 132
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "a0b87df8f50dc316",
"name" : "反向用例-密码正确,用户名错误",
"time" : {
"start" : 1716272599640,
"stop" : 1716272599737,
"duration" : 97
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "c26c17d72f28aa7f",
"name" : "反向用例-用户名正确,密码过长",
"time" : {
"start" : 1716272598895,
"stop" : 1716272598989,
"duration" : 94
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "d093b8587a3ab4f3",
"name" : "反向用例-用户名正确,密码为特殊字符",
"time" : {
"start" : 1716272599103,
"stop" : 1716272599203,
"duration" : 100
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "dd7fa74e2935b20a",
"name" : "添加维度-依赖登录",
"time" : {
"start" : 1716272632942,
"stop" : 1716272633094,
"duration" : 152
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "643ca7629b09152b",
"name" : "正向用例",
"time" : {
"start" : 1716272644557,
"stop" : 1716272644742,
"duration" : 185
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "e425d3e0108cef57",
"name" : "反向用例-用户名正确,密码过短",
"time" : {
"start" : 1716272598998,
"stop" : 1716272599093,
"duration" : 95
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "7efd9dd32f98b518",
"name" : "test用例函数-依赖登录成功和添加维度成功",
"time" : {
"start" : 1716272633097,
"stop" : 1716272633098,
"duration" : 1
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "96596e0fab9d3415",
"name" : "反向用例-密码正确,用户名过短",
"time" : {
"start" : 1716272599418,
"stop" : 1716272599517,
"duration" : 99
},
"status" : "passed",
"severity" : "normal"
} ]
\ No newline at end of file
[ {
"data" : {
"failed" : 5,
"broken" : 0,
"skipped" : 0,
"passed" : 21,
"unknown" : 0,
"total" : 26
}
} ]
\ No newline at end of file
[ {
"data" : {
"run" : 26,
"retry" : 25
}
} ]
\ No newline at end of file
[ {
"uid" : "7efd9dd32f98b518",
"name" : "test用例函数-依赖登录成功和添加维度成功",
"time" : {
"start" : 1716272633097,
"stop" : 1716272633098,
"duration" : 1
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "d093b8587a3ab4f3",
"name" : "反向用例-用户名正确,密码为特殊字符",
"time" : {
"start" : 1716272599103,
"stop" : 1716272599203,
"duration" : 100
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "b6d10bbf3ce5a604",
"name" : "正向用例",
"time" : {
"start" : 1716272644883,
"stop" : 1716272644938,
"duration" : 55
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "6bce7862e8bf2a3f",
"name" : "正向用例",
"time" : {
"start" : 1716272655685,
"stop" : 1716272655817,
"duration" : 132
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "c26c17d72f28aa7f",
"name" : "反向用例-用户名正确,密码过长",
"time" : {
"start" : 1716272598895,
"stop" : 1716272598989,
"duration" : 94
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "f7e90e36deb68600",
"name" : "正向用例",
"time" : {
"start" : 1716272621599,
"stop" : 1716272621780,
"duration" : 181
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "510c89b87f6352b8",
"name" : "正向用例",
"time" : {
"start" : 1716272633398,
"stop" : 1716272633535,
"duration" : 137
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "7af172a2303b627d",
"name" : "正向用例",
"time" : {
"start" : 1716272610398,
"stop" : 1716272610534,
"duration" : 136
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "e425d3e0108cef57",
"name" : "反向用例-用户名正确,密码过短",
"time" : {
"start" : 1716272598998,
"stop" : 1716272599093,
"duration" : 95
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "139913cc61e34bb9",
"name" : "正向用例",
"time" : {
"start" : 1716272610326,
"stop" : 1716272610382,
"duration" : 56
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "15e35cc79ee68b8c",
"name" : "正向用例",
"time" : {
"start" : 1716272621856,
"stop" : 1716272621912,
"duration" : 56
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "dd7fa74e2935b20a",
"name" : "添加维度-依赖登录",
"time" : {
"start" : 1716272632942,
"stop" : 1716272633094,
"duration" : 152
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "96596e0fab9d3415",
"name" : "反向用例-密码正确,用户名过短",
"time" : {
"start" : 1716272599418,
"stop" : 1716272599517,
"duration" : 99
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "adb4666aed6ea6fd",
"name" : "正向用例",
"time" : {
"start" : 1716272644756,
"stop" : 1716272644809,
"duration" : 53
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "9a2316575f97b91e",
"name" : "正向用例",
"time" : {
"start" : 1716272621920,
"stop" : 1716272621978,
"duration" : 58
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "76ee0be7403e029e",
"name" : "正向用例",
"time" : {
"start" : 1716272644818,
"stop" : 1716272644873,
"duration" : 55
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "643ca7629b09152b",
"name" : "正向用例",
"time" : {
"start" : 1716272644557,
"stop" : 1716272644742,
"duration" : 185
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "1bd3c031f056ab2e",
"name" : "反向用例-用户名正确,密码为空",
"time" : {
"start" : 1716272598829,
"stop" : 1716272598886,
"duration" : 57
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "cc6c15cf3215c8cc",
"name" : "正向用例",
"time" : {
"start" : 1716272632686,
"stop" : 1716272632817,
"duration" : 131
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "ce412b2b5e44b608",
"name" : "登录--前置",
"time" : {
"start" : 1716272632845,
"stop" : 1716272632940,
"duration" : 95
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "a0b87df8f50dc316",
"name" : "反向用例-密码正确,用户名错误",
"time" : {
"start" : 1716272599640,
"stop" : 1716272599737,
"duration" : 97
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "10e8cf966692af2d",
"name" : "正向用例",
"time" : {
"start" : 1716272621795,
"stop" : 1716272621848,
"duration" : 53
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "80142e22de024a60",
"name" : "正向用例-正确输入用户名和密码",
"time" : {
"start" : 1716272598748,
"stop" : 1716272598811,
"duration" : 63
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "8142d41860b04b15",
"name" : "反向用例-密码正确,用户名过长",
"time" : {
"start" : 1716272599315,
"stop" : 1716272599407,
"duration" : 92
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "5532c9175fb2354e",
"name" : "反向用例-密码正确,用户名为空",
"time" : {
"start" : 1716272599213,
"stop" : 1716272599306,
"duration" : 93
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "5b0b595f880fe013",
"name" : "反向用例-密码正确,用户名为特殊字符",
"time" : {
"start" : 1716272599527,
"stop" : 1716272599627,
"duration" : 100
},
"status" : "passed",
"severity" : "normal"
} ]
\ No newline at end of file
[ {
"uid" : "8142d41860b04b15",
"name" : "反向用例-密码正确,用户名过长",
"time" : {
"start" : 1716272599315,
"stop" : 1716272599407,
"duration" : 92
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "139913cc61e34bb9",
"name" : "正向用例",
"time" : {
"start" : 1716272610326,
"stop" : 1716272610382,
"duration" : 56
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "80142e22de024a60",
"name" : "正向用例-正确输入用户名和密码",
"time" : {
"start" : 1716272598748,
"stop" : 1716272598811,
"duration" : 63
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "cc6c15cf3215c8cc",
"name" : "正向用例",
"time" : {
"start" : 1716272632686,
"stop" : 1716272632817,
"duration" : 131
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "1bd3c031f056ab2e",
"name" : "反向用例-用户名正确,密码为空",
"time" : {
"start" : 1716272598829,
"stop" : 1716272598886,
"duration" : 57
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "5b0b595f880fe013",
"name" : "反向用例-密码正确,用户名为特殊字符",
"time" : {
"start" : 1716272599527,
"stop" : 1716272599627,
"duration" : 100
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "9a2316575f97b91e",
"name" : "正向用例",
"time" : {
"start" : 1716272621920,
"stop" : 1716272621978,
"duration" : 58
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "b6d10bbf3ce5a604",
"name" : "正向用例",
"time" : {
"start" : 1716272644883,
"stop" : 1716272644938,
"duration" : 55
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "5532c9175fb2354e",
"name" : "反向用例-密码正确,用户名为空",
"time" : {
"start" : 1716272599213,
"stop" : 1716272599306,
"duration" : 93
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "76ee0be7403e029e",
"name" : "正向用例",
"time" : {
"start" : 1716272644818,
"stop" : 1716272644873,
"duration" : 55
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "adb4666aed6ea6fd",
"name" : "正向用例",
"time" : {
"start" : 1716272644756,
"stop" : 1716272644809,
"duration" : 53
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "7af172a2303b627d",
"name" : "正向用例",
"time" : {
"start" : 1716272610398,
"stop" : 1716272610534,
"duration" : 136
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "f7e90e36deb68600",
"name" : "正向用例",
"time" : {
"start" : 1716272621599,
"stop" : 1716272621780,
"duration" : 181
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "10e8cf966692af2d",
"name" : "正向用例",
"time" : {
"start" : 1716272621795,
"stop" : 1716272621848,
"duration" : 53
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "15e35cc79ee68b8c",
"name" : "正向用例",
"time" : {
"start" : 1716272621856,
"stop" : 1716272621912,
"duration" : 56
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "ce412b2b5e44b608",
"name" : "登录--前置",
"time" : {
"start" : 1716272632845,
"stop" : 1716272632940,
"duration" : 95
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "510c89b87f6352b8",
"name" : "正向用例",
"time" : {
"start" : 1716272633398,
"stop" : 1716272633535,
"duration" : 137
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "6bce7862e8bf2a3f",
"name" : "正向用例",
"time" : {
"start" : 1716272655685,
"stop" : 1716272655817,
"duration" : 132
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "a0b87df8f50dc316",
"name" : "反向用例-密码正确,用户名错误",
"time" : {
"start" : 1716272599640,
"stop" : 1716272599737,
"duration" : 97
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "c26c17d72f28aa7f",
"name" : "反向用例-用户名正确,密码过长",
"time" : {
"start" : 1716272598895,
"stop" : 1716272598989,
"duration" : 94
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "d093b8587a3ab4f3",
"name" : "反向用例-用户名正确,密码为特殊字符",
"time" : {
"start" : 1716272599103,
"stop" : 1716272599203,
"duration" : 100
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "dd7fa74e2935b20a",
"name" : "添加维度-依赖登录",
"time" : {
"start" : 1716272632942,
"stop" : 1716272633094,
"duration" : 152
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "643ca7629b09152b",
"name" : "正向用例",
"time" : {
"start" : 1716272644557,
"stop" : 1716272644742,
"duration" : 185
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "e425d3e0108cef57",
"name" : "反向用例-用户名正确,密码过短",
"time" : {
"start" : 1716272598998,
"stop" : 1716272599093,
"duration" : 95
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "7efd9dd32f98b518",
"name" : "test用例函数-依赖登录成功和添加维度成功",
"time" : {
"start" : 1716272633097,
"stop" : 1716272633098,
"duration" : 1
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "96596e0fab9d3415",
"name" : "反向用例-密码正确,用户名过短",
"time" : {
"start" : 1716272599418,
"stop" : 1716272599517,
"duration" : 99
},
"status" : "passed",
"severity" : "normal"
} ]
\ No newline at end of file
{
"total" : 3,
"items" : [ {
"uid" : "7a8b7e46177bbd4d1efa8551fea4a38d",
"name" : "test_case.test_demo",
"statistic" : {
"failed" : 3,
"broken" : 0,
"skipped" : 0,
"passed" : 14,
"unknown" : 0,
"total" : 17
}
}, {
"uid" : "663b5eac116b5bc6651b8e1e82719203",
"name" : "test_case.test_mirZhang",
"statistic" : {
"failed" : 2,
"broken" : 0,
"skipped" : 0,
"passed" : 4,
"unknown" : 0,
"total" : 6
}
}, {
"uid" : "5fa37ee52138cac4807b87b482b5d721",
"name" : "test_case.test_dependency",
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 3,
"unknown" : 0,
"total" : 3
}
} ]
}
\ No newline at end of file
{
"reportName" : "Allure Report",
"testRuns" : [ ],
"statistic" : {
"failed" : 5,
"broken" : 0,
"skipped" : 0,
"passed" : 21,
"unknown" : 0,
"total" : 26
},
"time" : {
"start" : 1716272598748,
"stop" : 1716272655817,
"duration" : 57069,
"minDuration" : 1,
"maxDuration" : 185,
"sumDuration" : 2426
}
}
\ No newline at end of file
{"uuid": "0bf15b3d-f4ad-454c-9864-e0252ea4c961", "befores": [{"name": "case_level", "status": "passed", "start": 1716272651357, "stop": 1716272651357}], "start": 1716272651357, "stop": 1716272651502}
\ No newline at end of file
{"uuid": "685ee612-58df-46f3-b4f5-794a2042ea3a", "befores": [{"name": "case_level", "status": "passed", "start": 1716272632685, "stop": 1716272632685}], "start": 1716272632685, "stop": 1716272632840}
\ No newline at end of file
{"uuid": "c047281a-89b2-4a9f-9671-d94e1a630b04", "befores": [{"name": "method", "status": "passed", "start": 1716272610397, "stop": 1716272610397}], "start": 1716272610397, "stop": 1716272610536}
\ No newline at end of file
{"uuid": "37901bbe-6b86-41ac-a2eb-b0b6fccaf39b", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272633396, "stop": 1716272633397}], "start": 1716272633396, "stop": 1716272633536}
\ No newline at end of file
{"uuid": "74957ac1-b488-44b6-ae15-f8d7296e25de", "befores": [{"name": "api_name", "status": "passed", "start": 1716272640166, "stop": 1716272640166}], "start": 1716272640166, "stop": 1716272640352}
\ No newline at end of file
{"uuid": "2f26fdbb-b6ba-45ae-aa61-fa2ff4128c02", "befores": [{"name": "module_name", "status": "passed", "start": 1716272599102, "stop": 1716272599102}], "start": 1716272599102, "stop": 1716272599208}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803532844318720"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803541883043840"}
\ No newline at end of file
{"uuid": "c08da0ca-507e-448e-9c7a-1202a490de13", "befores": [{"name": "module_name", "status": "passed", "start": 1716272637955, "stop": 1716272637955}], "start": 1716272637955, "stop": 1716272638149}
\ No newline at end of file
{"uuid": "21b2a738-d780-4e5b-b82a-d15a302ed34a", "befores": [{"name": "module_name", "status": "passed", "start": 1716272599212, "stop": 1716272599212}], "start": 1716272599212, "stop": 1716272599312}
\ No newline at end of file
{"uuid": "dddd8ab5-c61e-4771-9401-58a9c328961d", "befores": [{"name": "mime", "status": "passed", "start": 1716272647081, "stop": 1716272647081}], "start": 1716272647081, "stop": 1716272647181}
\ No newline at end of file
{"uuid": "8cf06171-fde2-48dd-9cef-326d59e3d055", "befores": [{"name": "mime", "status": "passed", "start": 1716272626206, "stop": 1716272626206}], "start": 1716272626206, "stop": 1716272626351}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
{"uuid": "d4e0c411-9956-42f8-918c-a683946dd5be", "befores": [{"name": "update_key", "status": "passed", "start": 1716272599527, "stop": 1716272599527}], "start": 1716272599527, "stop": 1716272599627}
\ No newline at end of file
{"uuid": "6a2b4bd9-f74d-4896-9dab-23e3561fe97a", "befores": [{"name": "update_key", "status": "passed", "start": 1716272619383, "stop": 1716272619383}], "start": 1716272619383, "stop": 1716272619573}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDAsImlhdCI6MTcxNjI3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
\ No newline at end of file
{"uuid": "226e0fa2-2ee1-42d7-bec9-aca2cb096233", "befores": [{"name": "api_name", "status": "passed", "start": 1716272608243, "stop": 1716272608243}], "start": 1716272608243, "stop": 1716272608307}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
{"uuid": "96543332-39f5-42aa-b859-24cce9f5245a", "befores": [{"name": "module_name", "status": "passed", "start": 1716272642364, "stop": 1716272642364}], "start": 1716272642364, "stop": 1716272642552}
\ No newline at end of file
{"uuid": "c3c49881-d63a-4311-b288-4bd1560f9d01", "befores": [{"name": "case_level", "status": "passed", "start": 1716272599754, "stop": 1716272599754}], "start": 1716272599754, "stop": 1716272600009}
\ No newline at end of file
{"uuid": "e24798ef-808f-49e3-8fb0-d48a47a0aec7", "befores": [{"name": "update_key", "status": "passed", "start": 1716272644883, "stop": 1716272644883}], "start": 1716272644883, "stop": 1716272644938}
\ No newline at end of file
{"uuid": "e8f6a2b7-9e01-47e8-9775-8b44f2a4e474", "befores": [{"name": "update_key", "status": "passed", "start": 1716272612749, "stop": 1716272612749}], "start": 1716272612749, "stop": 1716272612938}
\ No newline at end of file
{"uuid": "69d01c4e-06de-4f80-88a9-3d9f0cff3f89", "befores": [{"name": "case_level", "status": "passed", "start": 1716272598997, "stop": 1716272598997}], "start": 1716272598997, "stop": 1716272599097}
\ No newline at end of file
{"uuid": "d48e8221-7f31-4bc1-bfc3-a054fbb76afc", "befores": [{"name": "mime", "status": "passed", "start": 1716272617174, "stop": 1716272617174}], "start": 1716272617174, "stop": 1716272617363}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
{"uuid": "46371412-faee-451b-86c3-90e0bb2d8ccb", "befores": [{"name": "module_name", "status": "passed", "start": 1716272598747, "stop": 1716272598747}], "start": 1716272598747, "stop": 1716272598824}
\ No newline at end of file
{"uuid": "e136c064-5ff8-46cc-9c68-b26df94b1a66", "befores": [{"name": "module_name", "status": "passed", "start": 1716272598827, "stop": 1716272598828}], "start": 1716272598827, "stop": 1716272598890}
\ No newline at end of file
{"uuid": "c249e50b-1675-4389-a910-e9d842d3e24f", "befores": [{"name": "api_name", "status": "passed", "start": 1716272610541, "stop": 1716272610541}], "start": 1716272610541, "stop": 1716272610736}
\ No newline at end of file
{"uuid": "4f16e11b-188c-4072-9e70-892f0b6f7875", "befores": [{"name": "update_key", "status": "passed", "start": 1716272640167, "stop": 1716272640167}], "start": 1716272640167, "stop": 1716272640348}
\ No newline at end of file
{"uuid": "32880bc8-53ea-4b0b-95f2-7c7713f30b74", "befores": [{"name": "api_name", "status": "passed", "start": 1716272644958, "stop": 1716272644958}], "start": 1716272644958, "stop": 1716272645065}
\ No newline at end of file
{"uuid": "7b62ef0b-8fe4-4a0d-bc6c-cbe4b949e223", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272624098, "stop": 1716272624098}], "start": 1716272624098, "stop": 1716272624193}
\ No newline at end of file
{"uuid": "da850ac7-dec9-4f1b-901b-89de8f3f7ee9", "befores": [{"name": "case_level", "status": "passed", "start": 1716272599102, "stop": 1716272599102}], "start": 1716272599102, "stop": 1716272599207}
\ No newline at end of file
{"uuid": "a575da8f-9b28-4a37-ab30-21c5db9e3e5b", "befores": [{"name": "mime", "status": "passed", "start": 1716272610397, "stop": 1716272610397}], "start": 1716272610397, "stop": 1716272610536}
\ No newline at end of file
{"uuid": "4bddc20b-93f9-41d5-956b-e7fdf3d157ab", "befores": [{"name": "update_key", "status": "passed", "start": 1716272599212, "stop": 1716272599212}], "start": 1716272599212, "stop": 1716272599306}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功", "trace": "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "18203871-00d2-484a-8825-b23713f6f03e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_add_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功'}"}, {"name": "sql_data", "value": "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "update_key", "value": "'demId'"}], "start": 1716272633544, "stop": 1716272633720, "uuid": "dc48b39d-111b-4056-9500-807350a26c70", "historyId": "526f1fd519b78b4955668d6cfd277048", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "511132eb-602b-4e01-8e3f-ccee474db0b7", "befores": [{"name": "case_title", "status": "passed", "start": 1716272626206, "stop": 1716272626206}], "start": 1716272626206, "stop": 1716272626352}
\ No newline at end of file
{"uuid": "2bad23d3-14b8-474c-85a4-5ce7cbf7ca44", "befores": [{"name": "case_data", "status": "passed", "start": 1716272644756, "stop": 1716272644756}], "start": 1716272644756, "stop": 1716272644811}
\ No newline at end of file
{"uuid": "37f1fe0d-4345-4f46-98c5-f6f642603aac", "befores": [{"name": "api_name", "status": "passed", "start": 1716272630525, "stop": 1716272630525}], "start": 1716272630525, "stop": 1716272630671}
\ No newline at end of file
{"uuid": "ec0a09b8-c2e3-40be-80e8-323fb60a2bc1", "befores": [{"name": "url", "status": "passed", "start": 1716272653520, "stop": 1716272653520}], "start": 1716272653520, "stop": 1716272653671}
\ No newline at end of file
{"uuid": "bd1258e3-de59-4ead-aaf2-47b00893216b", "befores": [{"name": "update_key", "status": "passed", "start": 1716272608243, "stop": 1716272608243}], "start": 1716272608243, "stop": 1716272608302}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
\ No newline at end of file
{"uuid": "c56792ee-0133-4789-8253-d1f23bf3ae73", "befores": [{"name": "case_data", "status": "passed", "start": 1716272633543, "stop": 1716272633543}], "start": 1716272633543, "stop": 1716272633730}
\ No newline at end of file
{"uuid": "dbfc7df8-7efa-45a2-8dae-f5a5a2cbae3d", "befores": [{"name": "case_title", "status": "passed", "start": 1716272599639, "stop": 1716272599639}], "start": 1716272599639, "stop": 1716272599740}
\ No newline at end of file
{"uuid": "81441cd6-ead2-4adc-9e9e-30e8959e0511", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272599102, "stop": 1716272599102}], "start": 1716272599102, "stop": 1716272599206}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
{"uuid": "ffc90896-8c4a-409c-879e-2147917405fd", "befores": [{"name": "api_name", "status": "passed", "start": 1716272637955, "stop": 1716272637955}], "start": 1716272637955, "stop": 1716272638149}
\ No newline at end of file
{"uuid": "e4151cbb-4548-415d-8725-d431cda89ac6", "befores": [{"name": "url", "status": "passed", "start": 1716272599639, "stop": 1716272599639}], "start": 1716272599639, "stop": 1716272599740}
\ No newline at end of file
{"uuid": "6142d282-6366-4baa-b723-27ea2da94b4a", "befores": [{"name": "mime", "status": "passed", "start": 1716272604094, "stop": 1716272604094}], "start": 1716272604094, "stop": 1716272604154}
\ No newline at end of file
{"name": "反向用例-密码正确,用户名为空", "status": "passed", "attachments": [{"name": "log", "source": "4bcb6226-c1aa-4031-bbd9-a0fb2c8c397a-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "ff1b7ef5-5c75-4e56-9781-3197149c28b8-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "case_title", "value": "'反向用例-密码正确,用户名为空'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': '', 'password': 'MTIzNDU2'}"}, {"name": "expect_data", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272599213, "stop": 1716272599306, "uuid": "f710be2f-06ac-4f7b-9de8-4e5de112e5b7", "historyId": "ca39ba3d830745ef2c54de45a0fd94de", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "2fbc64fb-f67f-4171-937d-553da4255c5a", "befores": [{"name": "case_data", "status": "passed", "start": 1716272621920, "stop": 1716272621920}], "start": 1716272621920, "stop": 1716272621980}
\ No newline at end of file
{"uuid": "02cf4629-73cf-4166-8f91-bb9a35a199f5", "befores": [{"name": "case_title", "status": "passed", "start": 1716272630525, "stop": 1716272630525}], "start": 1716272630525, "stop": 1716272630670}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
\ No newline at end of file
{"uuid": "91f03356-92de-4a90-b4b4-ad9bd2bb9a37", "befores": [{"name": "api_name", "status": "passed", "start": 1716272621794, "stop": 1716272621794}], "start": 1716272621794, "stop": 1716272621851}
\ No newline at end of file
{"uuid": "9720b981-ba89-4170-89e2-40e8b1256cef", "befores": [{"name": "case_level", "status": "passed", "start": 1716272599315, "stop": 1716272599315}], "start": 1716272599315, "stop": 1716272599412}
\ No newline at end of file
{"uuid": "b735b220-3783-4b7f-994f-aa0d2d0cf7f3", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272599315, "stop": 1716272599315}], "start": 1716272599315, "stop": 1716272599410}
\ No newline at end of file
{"uuid": "32d8b096-a51d-4f9b-890f-2225aeabe060", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272644817, "stop": 1716272644817}], "start": 1716272644817, "stop": 1716272644874}
\ No newline at end of file
{"uuid": "1defcf87-0a92-4f53-8287-b70f13f384ce", "befores": [{"name": "update_key", "status": "passed", "start": 1716272655685, "stop": 1716272655685}], "start": 1716272655685, "stop": 1716272655825}
\ No newline at end of file
{"uuid": "61460a6a-21b4-4627-aa5b-38596ce55735", "befores": [{"name": "update_key", "status": "passed", "start": 1716272621920, "stop": 1716272621920}], "start": 1716272621920, "stop": 1716272621978}
\ No newline at end of file
{"uuid": "78efe232-dc59-40dd-a7a4-0c326a89c13c", "befores": [{"name": "method", "status": "passed", "start": 1716272619383, "stop": 1716272619383}], "start": 1716272619383, "stop": 1716272619577}
\ No newline at end of file
{"uuid": "806d3174-b17b-405b-b3e3-2c48f50d0420", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272608243, "stop": 1716272608243}], "start": 1716272608243, "stop": 1716272608303}
\ No newline at end of file
{"uuid": "d805b7bf-09ea-4959-a185-e62b52022508", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272617174, "stop": 1716272617174}], "start": 1716272617174, "stop": 1716272617362}
\ No newline at end of file
{"uuid": "7395258f-5158-4def-b518-cf2cac74af73", "befores": [{"name": "update_key", "status": "passed", "start": 1716272644817, "stop": 1716272644817}], "start": 1716272644817, "stop": 1716272644873}
\ No newline at end of file
{"uuid": "0abf3798-b631-404d-b8ab-245edb4ce2f3", "befores": [{"name": "case_title", "status": "passed", "start": 1716272598828, "stop": 1716272598828}], "start": 1716272598828, "stop": 1716272598889}
\ No newline at end of file
{"uuid": "047dd5fa-4e36-4c55-b77f-d969da2032e9", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272640167, "stop": 1716272640167}], "start": 1716272640167, "stop": 1716272640349}
\ No newline at end of file
{"uuid": "2145dfcd-bc1e-44eb-9489-e8ebc6610eaf", "befores": [{"name": "update_key", "status": "passed", "start": 1716272598748, "stop": 1716272598748}], "start": 1716272598748, "stop": 1716272598811}
\ No newline at end of file
{"uuid": "692f4ef3-26cf-4dd8-ac29-210ee8bde137", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272644557, "stop": 1716272644557}], "start": 1716272644557, "stop": 1716272644749}
\ No newline at end of file
{"uuid": "50332d9a-d46d-4d71-b2bc-5cc7a19d8b01", "befores": [{"name": "api_name", "status": "passed", "start": 1716272633543, "stop": 1716272633543}], "start": 1716272633543, "stop": 1716272633732}
\ No newline at end of file
{"uuid": "2bd51c4f-835d-42e4-bf40-642646eebaf9", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272644756, "stop": 1716272644756}], "start": 1716272644756, "stop": 1716272644810}
\ No newline at end of file
{"uuid": "e5ac9538-10cc-43ee-96a6-8d1a8f3edb64", "befores": [{"name": "case_level", "status": "passed", "start": 1716272606163, "stop": 1716272606163}], "start": 1716272606163, "stop": 1716272606226}
\ No newline at end of file
{"uuid": "06a7d040-4fe6-48b9-89a5-e526ff632e81", "befores": [{"name": "case_level", "status": "passed", "start": 1716272604094, "stop": 1716272604094}], "start": 1716272604094, "stop": 1716272604155}
\ No newline at end of file
{"uuid": "0a431f21-d676-46b7-ab3c-a4c650c58545", "befores": [{"name": "case_title", "status": "passed", "start": 1716272599314, "stop": 1716272599315}], "start": 1716272599314, "stop": 1716272599412}
\ No newline at end of file
{"uuid": "d716d82b-b7f7-4373-b05d-e09caf8b16e5", "befores": [{"name": "method", "status": "passed", "start": 1716272599754, "stop": 1716272599754}], "start": 1716272599754, "stop": 1716272600009}
\ No newline at end of file
{"uuid": "03e4d1bb-62f5-4e3b-bd18-add6a164fbd2", "befores": [{"name": "method", "status": "passed", "start": 1716272602023, "stop": 1716272602023}], "start": 1716272602023, "stop": 1716272602083}
\ No newline at end of file
{"uuid": "4e6fea3b-f57d-47da-9615-3a82a65ed7f9", "befores": [{"name": "module_name", "status": "passed", "start": 1716272653520, "stop": 1716272653520}], "start": 1716272653520, "stop": 1716272653674}
\ No newline at end of file
{"uuid": "b6f27304-52e7-49dd-be86-e3ffa393b6fc", "befores": [{"name": "mime", "status": "passed", "start": 1716272630525, "stop": 1716272630525}], "start": 1716272630525, "stop": 1716272630669}
\ No newline at end of file
{"uuid": "4fb0731a-8835-49ee-83a4-a5abed5a1b3c", "befores": [{"name": "case_level", "status": "passed", "start": 1716272621855, "stop": 1716272621855}], "start": 1716272621855, "stop": 1716272621916}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
{"uuid": "07111704-3daa-49b0-931c-0bfc1c2e3d05", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272614968, "stop": 1716272614968}], "start": 1716272614968, "stop": 1716272615155}
\ No newline at end of file
{"uuid": "c9af3f8d-4140-41d0-81a9-aa65b1a348be", "befores": [{"name": "update_key", "status": "passed", "start": 1716272610325, "stop": 1716272610325}], "start": 1716272610325, "stop": 1716272610390}
\ No newline at end of file
{"uuid": "9b0e3c6c-7e5f-42bf-96bc-67e7e68d8669", "befores": [{"name": "case_title", "status": "passed", "start": 1716272644756, "stop": 1716272644756}], "start": 1716272644756, "stop": 1716272644812}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191C40C0>('message')\n + where <built-in method get of dict object at 0x0000014F191C40C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F191C40C0>('message')\nE + where <built-in method get of dict object at 0x0000014F191C40C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "abf84792-f2ec-441a-a2b2-2d91eac46968-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'刷新token'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'GET'"}, {"name": "url", "value": "'http://120.46.172.186:8080/refresh'"}, {"name": "mime", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新token成功'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272610326, "stop": 1716272610382, "uuid": "fd70df5f-0b98-4362-bc4d-e73ff8bff407", "historyId": "1dcae5f805bddffd6ce19e14c8b3458b", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "1e686db6-9bc7-4c17-a6e3-d57c9fde3231", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272632685, "stop": 1716272632685}], "start": 1716272632685, "stop": 1716272632829}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
\ No newline at end of file
{"uuid": "38e5fd55-c430-4a23-b30b-f7d81e3b3774", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272651357, "stop": 1716272651357}], "start": 1716272651357, "stop": 1716272651499}
\ No newline at end of file
{"uuid": "651494ab-7d6b-4009-9a53-08303f0ccc17", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272651357, "stop": 1716272651357}], "start": 1716272651357, "stop": 1716272651500}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDAsImlhdCI6MTcxNjI3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDIsImlhdCI6MTcxNjI3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDQsImlhdCI6MTcxNjI3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDYsImlhdCI6MTcxNjI3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
\ No newline at end of file
{"uuid": "d6a4ec55-bfa6-4553-ac67-8ed32d82284c", "befores": [{"name": "api_name", "status": "passed", "start": 1716272599212, "stop": 1716272599212}], "start": 1716272599212, "stop": 1716272599311}
\ No newline at end of file
{"uuid": "02e49788-c50d-45ff-8b58-f37b8d514bd9", "befores": [{"name": "module_name", "status": "passed", "start": 1716272649195, "stop": 1716272649196}], "start": 1716272649195, "stop": 1716272649340}
\ No newline at end of file
{"uuid": "df2ae797-e025-4bbd-b55c-65612db9cc86", "befores": [{"name": "mime", "status": "passed", "start": 1716272598997, "stop": 1716272598997}], "start": 1716272598997, "stop": 1716272599095}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "edb607af-88bd-4b64-8430-591655c94b18-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功'}"}, {"name": "sql_data", "value": "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "update_key", "value": "'demId'"}], "start": 1716272619383, "stop": 1716272619564, "uuid": "4eabc962-48e4-4ab7-96fe-86e283352683", "historyId": "487ae598a2b30a5ea2489bb3e5fa08a4", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "43d0d50f-6b48-44dd-95ce-8c64c8ec6892", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272608243, "stop": 1716272608243}], "start": 1716272608243, "stop": 1716272608303}
\ No newline at end of file
{"uuid": "83b6c36e-48e4-4007-89ce-f655c2f43a46", "befores": [{"name": "method", "status": "passed", "start": 1716272626206, "stop": 1716272626206}], "start": 1716272626206, "stop": 1716272626351}
\ No newline at end of file
{"uuid": "aeb1deb0-fb7e-4ca1-9cb5-3d8ce63f10e6", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272644883, "stop": 1716272644883}], "start": 1716272644883, "stop": 1716272644949}
\ No newline at end of file
{"name": "登录--前置", "status": "passed", "attachments": [{"name": "stdout", "source": "d0f3b779-e73a-48a3-a0ef-788faec5fd6d-attachment.txt", "type": "text/plain"}], "start": 1716272632845, "stop": 1716272632940, "uuid": "758954b0-7299-4d44-a8e8-14d4f046ae08", "historyId": "b3ea99bce5fbf89dc61e67ffc74d2796", "testCaseId": "b3ea99bce5fbf89dc61e67ffc74d2796", "fullName": "test_case.test_dependency.test_dependency#test_login", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "epic", "value": "BPM-场景测试"}, {"name": "tag", "value": "dependency"}, {"name": "parentSuite", "value": "test_case.test_dependency"}, {"name": "suite", "value": "test_dependency"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_dependency.test_dependency"}]}
\ No newline at end of file
{"uuid": "0c14fc95-352c-4cda-9ae1-c3dfaf8f1f48", "befores": [{"name": "method", "status": "passed", "start": 1716272614966, "stop": 1716272614966}], "start": 1716272614966, "stop": 1716272615156}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803436442435584"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803445468577792"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803454528274432"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803463587971072"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803472635084800"}
\ No newline at end of file
{"uuid": "928d2948-188c-4ff1-9a87-c4476d59c300", "befores": [{"name": "method", "status": "passed", "start": 1716272598747, "stop": 1716272598747}], "start": 1716272598747, "stop": 1716272598823}
\ No newline at end of file
{"uuid": "deeb0243-abfb-427c-992a-957dd0683068", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272606163, "stop": 1716272606163}], "start": 1716272606163, "stop": 1716272606224}
\ No newline at end of file
{"uuid": "78956eff-10d0-464b-a6de-273e52e9d820", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272621920, "stop": 1716272621920}], "start": 1716272621920, "stop": 1716272621980}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803333887508480"}
\ No newline at end of file
{"uuid": "6a9e38d2-fb2c-49fe-ae0e-ef9f81bc8ba5", "befores": [{"name": "case_level", "status": "passed", "start": 1716272621920, "stop": 1716272621920}], "start": 1716272621920, "stop": 1716272621983}
\ No newline at end of file
{"uuid": "494d4667-ab0f-4191-9475-dbadbbdcee0b", "befores": [{"name": "case_level", "status": "passed", "start": 1716272608243, "stop": 1716272608243}], "start": 1716272608243, "stop": 1716272608305}
\ No newline at end of file
{"uuid": "348e18fe-b5d2-470c-adb8-d5692c205707", "befores": [{"name": "mime", "status": "passed", "start": 1716272598893, "stop": 1716272598893}], "start": 1716272598893, "stop": 1716272598991}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "7913ad36-b9cd-4366-80a1-12524ce769be-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1792803379156631552'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_data", "value": "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1716272630526, "stop": 1716272630660, "uuid": "4e3d7a99-f37b-41d9-b955-4f01dbd839f8", "historyId": "347d2f73ed73495ba7ba72dbf723f253", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "d79834ec-17a8-4b74-aecb-5e2256224b3b", "befores": [{"name": "url", "status": "passed", "start": 1716272621599, "stop": 1716272621599}], "start": 1716272621599, "stop": 1716272621789}
\ No newline at end of file
{"uuid": "6591e899-8f87-45c7-9035-b1a15cf180a0", "befores": [{"name": "method", "status": "passed", "start": 1716272599527, "stop": 1716272599527}], "start": 1716272599527, "stop": 1716272599632}
\ No newline at end of file
{"uuid": "a3672f34-511a-4e39-b8ec-217574ea5ccb", "befores": [{"name": "module_name", "status": "passed", "start": 1716272621855, "stop": 1716272621855}], "start": 1716272621855, "stop": 1716272621917}
\ No newline at end of file
{"uuid": "2d4fbde6-7508-4697-bbd8-518b8a668399", "befores": [{"name": "case_title", "status": "passed", "start": 1716272599527, "stop": 1716272599527}], "start": 1716272599527, "stop": 1716272599633}
\ No newline at end of file
{"uuid": "6ff50d3d-afc3-4edf-b569-29241b481b8f", "befores": [{"name": "mime", "status": "passed", "start": 1716272633396, "stop": 1716272633396}], "start": 1716272633396, "stop": 1716272633538}
\ No newline at end of file
{"uuid": "0bd87547-0eb6-4325-a8b1-bef6cabfacd4", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272599212, "stop": 1716272599212}], "start": 1716272599212, "stop": 1716272599309}
\ No newline at end of file
{"uuid": "449f8a8c-12b3-49e0-a53a-37b58adae944", "befores": [{"name": "mime", "status": "passed", "start": 1716272644756, "stop": 1716272644756}], "start": 1716272644756, "stop": 1716272644811}
\ No newline at end of file
{"uuid": "057f1f46-b6ec-47d1-9bc9-f75dc4d1fb8d", "befores": [{"name": "update_key", "status": "passed", "start": 1716272633543, "stop": 1716272633543}], "start": 1716272633543, "stop": 1716272633728}
\ No newline at end of file
{"uuid": "401c7238-6c1a-43f1-bb8f-86171d961024", "befores": [{"name": "url", "status": "passed", "start": 1716272637955, "stop": 1716272637955}], "start": 1716272637955, "stop": 1716272638147}
\ No newline at end of file
{"uuid": "c4f50723-dd3b-4063-b918-fa95d064e25c", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272655685, "stop": 1716272655685}], "start": 1716272655685, "stop": 1716272655835}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803331643555840"}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "ae159987-41f0-4a11-8956-233831fcf803-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "ffdc0bff-bded-4602-93d4-6abd42d0eda1-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'保存组织参数'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'"}, {"name": "mime", "value": "'query|json'"}, {"name": "case_data", "value": "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}"}, {"name": "expect_data", "value": "{'state': True, 'message': '保存组织参数成功!', 'value': ''}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272621856, "stop": 1716272621912, "uuid": "843ddd4c-84f3-4889-af3a-e343c0cf7c83", "historyId": "e133082949e07d38e4a8587843153535", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "保存组织参数"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "abb0fb64-16fa-4c28-9c95-51dfb05adbe3", "befores": [{"name": "url", "status": "passed", "start": 1716272633543, "stop": 1716272633543}], "start": 1716272633543, "stop": 1716272633730}
\ No newline at end of file
{"uuid": "075604ab-fd87-4b74-b1ba-afc7166276cd", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272604094, "stop": 1716272604095}], "start": 1716272604094, "stop": 1716272604154}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
{"uuid": "21fa9c6e-d29c-4553-bf46-d067d06e4b2c", "befores": [{"name": "url", "status": "passed", "start": 1716272598893, "stop": 1716272598893}], "start": 1716272598893, "stop": 1716272598992}
\ No newline at end of file
{"uuid": "19cdbc52-c790-429e-b99d-dfba44a0a83b", "befores": [{"name": "case_level", "status": "passed", "start": 1716272642364, "stop": 1716272642364}], "start": 1716272642364, "stop": 1716272642551}
\ No newline at end of file
{"uuid": "b13bd107-33d1-474a-93c2-663ceb03b98f", "befores": [{"name": "url", "status": "passed", "start": 1716272619383, "stop": 1716272619383}], "start": 1716272619383, "stop": 1716272619576}
\ No newline at end of file
{"uuid": "006385f0-2b6c-46fe-95ef-adf15f5ec026", "befores": [{"name": "case_title", "status": "passed", "start": 1716272633396, "stop": 1716272633396}], "start": 1716272633396, "stop": 1716272633540}
\ No newline at end of file
{"uuid": "d5849693-5e10-443b-b24f-0f220be401c9", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272637956, "stop": 1716272637956}], "start": 1716272637956, "stop": 1716272638146}
\ No newline at end of file
{"uuid": "f57bca08-c7fd-40e4-96b7-2829643f9252", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272635751, "stop": 1716272635751}], "start": 1716272635751, "stop": 1716272635937}
\ No newline at end of file
{"uuid": "dabff3ab-acbc-465c-a6d3-736e927051c1", "befores": [{"name": "module_name", "status": "passed", "start": 1716272633543, "stop": 1716272633543}], "start": 1716272633543, "stop": 1716272633732}
\ No newline at end of file
{"uuid": "22900768-e273-4013-b17c-9226272238c4", "befores": [{"name": "case_data", "status": "passed", "start": 1716272642365, "stop": 1716272642365}], "start": 1716272642365, "stop": 1716272642550}
\ No newline at end of file
{"uuid": "f501e5e8-d869-4583-95db-e345225c5d5b", "befores": [{"name": "url", "status": "passed", "start": 1716272647081, "stop": 1716272647081}], "start": 1716272647081, "stop": 1716272647182}
\ No newline at end of file
{"uuid": "895051e0-ed51-4c18-aa0e-2e20bb7317d7", "befores": [{"name": "case_level", "status": "passed", "start": 1716272599639, "stop": 1716272599639}], "start": 1716272599639, "stop": 1716272599740}
\ No newline at end of file
{"uuid": "7d2f6bee-f4db-4aa1-adc3-889ac918542a", "befores": [{"name": "method", "status": "passed", "start": 1716272599212, "stop": 1716272599212}], "start": 1716272599212, "stop": 1716272599310}
\ No newline at end of file
{"uuid": "5c1b07dd-35f5-4f92-be04-4e2777a7d267", "befores": [{"name": "method", "status": "passed", "start": 1716272599639, "stop": 1716272599639}], "start": 1716272599639, "stop": 1716272599740}
\ No newline at end of file
{"uuid": "55fb07cb-04c6-4725-bc3f-02b1d9000b56", "befores": [{"name": "module_name", "status": "passed", "start": 1716272655684, "stop": 1716272655684}], "start": 1716272655684, "stop": 1716272655838}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "0ebcfa66-695f-4394-bd2a-ae39856c3caf-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "b1dcb8af-0503-40fc-addc-95dbd31061fc-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'组织加入用户'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'orgCode': 'test_add_org', 'accounts': 'admin'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '加入成功', 'value': ''}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272644756, "stop": 1716272644809, "uuid": "6a08f138-3af3-4851-8b40-0b3a2ace8c44", "historyId": "2d767e403ea75ccb1f14fcd976c25353", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "组织加入用户"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "585a3495-5f5b-47a2-b2ec-4fd1ff24eeac", "befores": [{"name": "case_level", "status": "passed", "start": 1716272614966, "stop": 1716272614966}], "start": 1716272614966, "stop": 1716272615157}
\ No newline at end of file
{"uuid": "c1a5732b-2a1b-4d53-8215-b82e35149580", "befores": [{"name": "url", "status": "passed", "start": 1716272644882, "stop": 1716272644882}], "start": 1716272644882, "stop": 1716272644951}
\ No newline at end of file
{"uuid": "5bae39ac-7529-433f-ac5f-f0c8dcfaa84c", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272642365, "stop": 1716272642365}], "start": 1716272642365, "stop": 1716272642549}
\ No newline at end of file
{"uuid": "3074bea0-24de-41e0-8d37-32652fdcd29a", "befores": [{"name": "method", "status": "passed", "start": 1716272633396, "stop": 1716272633396}], "start": 1716272633396, "stop": 1716272633538}
\ No newline at end of file
{"uuid": "0ed9b467-d95b-4f13-a694-cb7042121599", "befores": [{"name": "case_title", "status": "passed", "start": 1716272632685, "stop": 1716272632685}], "start": 1716272632685, "stop": 1716272632840}
\ No newline at end of file
{"uuid": "7b0d6025-d774-4870-a016-e026bf170a96", "befores": [{"name": "case_data", "status": "passed", "start": 1716272614966, "stop": 1716272614966}], "start": 1716272614966, "stop": 1716272615155}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803330313961472"}
\ No newline at end of file
{"uuid": "1c4cfc78-c4b4-43fe-b177-0268d61c29cd", "befores": [{"name": "module_name", "status": "passed", "start": 1716272606163, "stop": 1716272606163}], "start": 1716272606163, "stop": 1716272606227}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803436442435584"}
\ No newline at end of file
{"uuid": "ca22649b-d7bf-4720-8396-81a9dee2e2d2", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272602023, "stop": 1716272602023}], "start": 1716272602023, "stop": 1716272602082}
\ No newline at end of file
{"uuid": "27a0e0f5-cc36-4afe-ac28-b62bd58593c4", "befores": [{"name": "api_name", "status": "passed", "start": 1716272655684, "stop": 1716272655684}], "start": 1716272655684, "stop": 1716272655838}
\ No newline at end of file
{"uuid": "c8f9f680-2ba7-4798-96d0-a944d9b03ca0", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272599639, "stop": 1716272599639}], "start": 1716272599639, "stop": 1716272599739}
\ No newline at end of file
{"uuid": "382bfaa6-8652-45f5-bceb-e02cbeea2bb8", "befores": [{"name": "case_title", "status": "passed", "start": 1716272608243, "stop": 1716272608243}], "start": 1716272608243, "stop": 1716272608305}
\ No newline at end of file
{"uuid": "e12fc571-6162-4934-ae1c-b223c706458f", "befores": [{"name": "case_data", "status": "passed", "start": 1716272632685, "stop": 1716272632685}], "start": 1716272632685, "stop": 1716272632838}
\ No newline at end of file
{"uuid": "003e348a-795e-492f-9f89-8af413e7e93e", "befores": [{"name": "case_title", "status": "passed", "start": 1716272610397, "stop": 1716272610397}], "start": 1716272610397, "stop": 1716272610538}
\ No newline at end of file
{"uuid": "66995f5b-ff0b-4e95-aaa6-ef7b38141ebd", "befores": [{"name": "case_level", "status": "passed", "start": 1716272640166, "stop": 1716272640166}], "start": 1716272640166, "stop": 1716272640351}
\ No newline at end of file
{"uuid": "32ccc90c-766b-4f70-b270-349f40a2e00c", "befores": [{"name": "case_level", "status": "passed", "start": 1716272621986, "stop": 1716272621986}], "start": 1716272621986, "stop": 1716272622090}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "bc3acc63-8a54-424f-81a9-90333648739d-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "fcf0e269-4266-4588-b63b-82148ec22cd8-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'保存组织参数'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'post'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'"}, {"name": "mime", "value": "'query|json'"}, {"name": "case_data", "value": "{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}"}, {"name": "expect_data", "value": "{'state': True, 'message': '保存组织参数成功!', 'value': ''}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272644818, "stop": 1716272644873, "uuid": "1a247420-9d19-4e3a-8d64-cfd40d37c623", "historyId": "f523c6add46569d79b9a33cc763be891", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "保存组织参数"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "f30fcc8e-d327-4201-9cae-818c1562de14", "befores": [{"name": "module_name", "status": "passed", "start": 1716272619382, "stop": 1716272619382}], "start": 1716272619382, "stop": 1716272619577}
\ No newline at end of file
{"uuid": "0c560d5a-43eb-4711-9317-29f086428205", "befores": [{"name": "module_name", "status": "passed", "start": 1716272635750, "stop": 1716272635751}], "start": 1716272635750, "stop": 1716272635940}
\ No newline at end of file
{"uuid": "83399664-5cbc-44e0-86ff-877a536e99f5", "befores": [{"name": "url", "status": "passed", "start": 1716272635751, "stop": 1716272635751}], "start": 1716272635751, "stop": 1716272635938}
\ No newline at end of file
{"uuid": "d0fa569a-ad2d-4a5c-b59c-4ba7513c5a1c", "befores": [{"name": "api_name", "status": "passed", "start": 1716272606163, "stop": 1716272606163}], "start": 1716272606163, "stop": 1716272606227}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "b8419b7a-abb7-4191-8966-fb43f086596d-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "db394d98-cdaa-42a6-bd10-49adba7739a5-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'删除组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'"}, {"name": "mime", "value": "'text/plain'"}, {"name": "case_data", "value": "'test_add_org'"}, {"name": "expect_data", "value": "{'state': True, 'message': '删除组织成功!', 'value': ''}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272621920, "stop": 1716272621978, "uuid": "0915e949-e043-45d1-9ca3-6935cdc3d192", "historyId": "db26a6f22fbc123482ea90d3e77fa9fd", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "删除组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "cbc9e70d-ff4e-4d08-b12b-eaa451a5fded", "befores": [{"name": "case_level", "status": "passed", "start": 1716272626206, "stop": 1716272626206}], "start": 1716272626206, "stop": 1716272626352}
\ No newline at end of file
{"uuid": "28072bd9-2002-4929-95ab-82b1327e5ffe", "befores": [{"name": "case_data", "status": "passed", "start": 1716272621795, "stop": 1716272621795}], "start": 1716272621795, "stop": 1716272621849}
\ No newline at end of file
{"uuid": "3c8852db-97dd-4c72-bd0c-1af4c3bbb4ea", "befores": [{"name": "mime", "status": "passed", "start": 1716272653520, "stop": 1716272653520}], "start": 1716272653520, "stop": 1716272653671}
\ No newline at end of file
{"uuid": "bc537dc9-fced-4e6b-ae6f-8b73efa7fe03", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272644557, "stop": 1716272644557}], "start": 1716272644557, "stop": 1716272644749}
\ No newline at end of file
{"uuid": "8b5807db-249a-4c82-8271-1f01070d604a", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272598747, "stop": 1716272598747}], "start": 1716272598747, "stop": 1716272598822}
\ No newline at end of file
{"uuid": "1077ac41-4b43-48d9-97b3-2256be3b1189", "befores": [{"name": "api_name", "status": "passed", "start": 1716272628365, "stop": 1716272628365}], "start": 1716272628365, "stop": 1716272628513}
\ No newline at end of file
{"uuid": "e5295bc7-54eb-4467-bea3-aec13d40da36", "befores": [{"name": "url", "status": "passed", "start": 1716272644958, "stop": 1716272644958}], "start": 1716272644958, "stop": 1716272645064}
\ No newline at end of file
{"uuid": "a4402991-19d3-4fbc-bff1-e53350791df5", "befores": [{"name": "case_level", "status": "passed", "start": 1716272644557, "stop": 1716272644557}], "start": 1716272644557, "stop": 1716272644751}
\ No newline at end of file
{"uuid": "654ca142-d61f-442c-b33b-93f28d6bc51c", "befores": [{"name": "update_key", "status": "passed", "start": 1716272606163, "stop": 1716272606163}], "start": 1716272606163, "stop": 1716272606223}
\ No newline at end of file
{"name": "反向用例-密码正确,用户名为特殊字符", "status": "passed", "attachments": [{"name": "log", "source": "bcc2e3b2-a522-4515-87b3-73e3ac8c7b3d-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "4fb9e02a-f4dd-4509-b0bf-c6e1ffb3332e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "case_title", "value": "'反向用例-密码正确,用户名为特殊字符'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}"}, {"name": "expect_data", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272599527, "stop": 1716272599627, "uuid": "817d0d0b-74b8-4790-b30a-5b191bfb34b5", "historyId": "fa305c7b3d900250c6115572baa5540a", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "fe30cb30-283a-4756-bad3-66f16f9905d7-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功'}"}, {"name": "sql_data", "value": "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "update_key", "value": "'demId'"}], "start": 1716272617174, "stop": 1716272617355, "uuid": "381f3194-e48e-497d-b373-b9ef2687c022", "historyId": "487ae598a2b30a5ea2489bb3e5fa08a4", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191B6B40>('message')\n + where <built-in method get of dict object at 0x0000014F191B6B40> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F191B6B40>('message')\nE + where <built-in method get of dict object at 0x0000014F191B6B40> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "d993550e-3284-4071-9240-5f178c323d76-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'刷新token'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'GET'"}, {"name": "url", "value": "'http://120.46.172.186:8080/refresh'"}, {"name": "mime", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新token成功'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272606164, "stop": 1716272606215, "uuid": "f2e2b9d9-5e33-490f-abbc-6e66baca6bd7", "historyId": "1dcae5f805bddffd6ce19e14c8b3458b", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "e21840ec-210e-48b6-9c79-b99232b7984c", "befores": [{"name": "method", "status": "passed", "start": 1716272621598, "stop": 1716272621598}], "start": 1716272621598, "stop": 1716272621789}
\ No newline at end of file
{"uuid": "a2ba43f4-8407-4e73-88e9-9924e405a364", "befores": [{"name": "case_title", "status": "passed", "start": 1716272598997, "stop": 1716272598997}], "start": 1716272598997, "stop": 1716272599098}
\ No newline at end of file
{"uuid": "e4e2be24-bd50-411f-882f-e37d4133736d", "befores": [{"name": "case_data", "status": "passed", "start": 1716272644557, "stop": 1716272644557}], "start": 1716272644557, "stop": 1716272644749}
\ No newline at end of file
{"uuid": "5183bf3f-2fb8-4156-b251-64c159396825", "befores": [{"name": "url", "status": "passed", "start": 1716272599315, "stop": 1716272599315}], "start": 1716272599315, "stop": 1716272599411}
\ No newline at end of file
{"uuid": "d36729dc-c93f-41c1-9289-10e4bed07cc0", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272599527, "stop": 1716272599527}], "start": 1716272599527, "stop": 1716272599630}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDAsImlhdCI6MTcxNjI3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDIsImlhdCI6MTcxNjI3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
\ No newline at end of file
{"uuid": "cd64653a-7ed6-4e1a-babb-437b8f0a2231", "befores": [{"name": "method", "status": "passed", "start": 1716272644817, "stop": 1716272644817}], "start": 1716272644817, "stop": 1716272644877}
\ No newline at end of file
{"uuid": "4ba1c4c4-31fb-49f0-81af-aab4c6d1453a", "befores": [{"name": "api_name", "status": "passed", "start": 1716272621920, "stop": 1716272621920}], "start": 1716272621920, "stop": 1716272621983}
\ No newline at end of file
{"uuid": "178ec5ca-bc0e-4f5b-a5e9-a11490339fa8", "befores": [{"name": "case_level", "status": "passed", "start": 1716272619383, "stop": 1716272619383}], "start": 1716272619383, "stop": 1716272619577}
\ No newline at end of file
{"uuid": "ccfa4553-7bef-4946-aa23-452a0037e1e8", "befores": [{"name": "case_data", "status": "passed", "start": 1716272604094, "stop": 1716272604094}], "start": 1716272604094, "stop": 1716272604154}
\ No newline at end of file
{"uuid": "66faac36-79fe-4200-8856-0bc8b260728d", "befores": [{"name": "update_key", "status": "passed", "start": 1716272628365, "stop": 1716272628365}], "start": 1716272628365, "stop": 1716272628508}
\ No newline at end of file
{"uuid": "b8349119-e1a9-43fb-b474-b85e42717670", "befores": [{"name": "module_name", "status": "passed", "start": 1716272651356, "stop": 1716272651356}], "start": 1716272651356, "stop": 1716272651504}
\ No newline at end of file
{"uuid": "e44ae17f-53e3-4eeb-bb1e-901d645dcf7f", "befores": [{"name": "module_name", "status": "passed", "start": 1716272632685, "stop": 1716272632685}], "start": 1716272632685, "stop": 1716272632841}
\ No newline at end of file
{"uuid": "ef992a95-c78f-40cf-ba61-f438f58a0166", "befores": [{"name": "method", "status": "passed", "start": 1716272612749, "stop": 1716272612749}], "start": 1716272612749, "stop": 1716272612949}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803532844318720"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803541883043840"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803550955323392"}
\ No newline at end of file
{"uuid": "423cfde0-acd4-429a-bb37-f43d2d8b121b", "befores": [{"name": "method", "status": "passed", "start": 1716272599102, "stop": 1716272599102}], "start": 1716272599102, "stop": 1716272599207}
\ No newline at end of file
{"uuid": "e641d3dc-2e68-4113-8173-3de563a6e953", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272604095, "stop": 1716272604095}], "start": 1716272604095, "stop": 1716272604154}
\ No newline at end of file
{"uuid": "e817c012-e377-4407-afe6-81a21fee697f", "befores": [{"name": "mime", "status": "passed", "start": 1716272606163, "stop": 1716272606163}], "start": 1716272606163, "stop": 1716272606225}
\ No newline at end of file
{"uuid": "ab7849fb-32f3-4ced-9ce0-0e1f99141100", "befores": [{"name": "mime", "status": "passed", "start": 1716272644958, "stop": 1716272644958}], "start": 1716272644958, "stop": 1716272645063}
\ No newline at end of file
{"uuid": "b14b25ed-1117-4a8f-89a4-38a1c3380f63", "befores": [{"name": "module_name", "status": "passed", "start": 1716272610325, "stop": 1716272610325}], "start": 1716272610324, "stop": 1716272610394}
\ No newline at end of file
{"uuid": "cd68733f-6d5c-480d-89a1-5c2a278e3bfd", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272621855, "stop": 1716272621856}], "start": 1716272621855, "stop": 1716272621913}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "05510126-4185-4429-ade2-1f1e848033c5-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功'}"}, {"name": "sql_data", "value": "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "update_key", "value": "'demId'"}], "start": 1716272614968, "stop": 1716272615147, "uuid": "4acfa501-2cbd-4297-a954-977a5c0e666c", "historyId": "487ae598a2b30a5ea2489bb3e5fa08a4", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "21b0a644-b7ae-4c36-8076-079cc4044af7", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272599103, "stop": 1716272599103}], "start": 1716272599103, "stop": 1716272599205}
\ No newline at end of file
{"uuid": "d8200888-f778-42ef-91d8-3bd7078edd9b", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272598893, "stop": 1716272598893}], "start": 1716272598893, "stop": 1716272598990}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功", "trace": "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "e62cc822-0620-41c7-8bb5-0b63878d429c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功'}"}, {"name": "sql_data", "value": "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "update_key", "value": "'demId'"}], "start": 1716272644557, "stop": 1716272644742, "uuid": "301a3d4e-adda-4839-a59e-f832c89915e5", "historyId": "526f1fd519b78b4955668d6cfd277048", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "595229c1-ac68-4893-abf7-26b78a3d7c16", "befores": [{"name": "method", "status": "passed", "start": 1716272624098, "stop": 1716272624098}], "start": 1716272624098, "stop": 1716272624196}
\ No newline at end of file
{"uuid": "197eefb6-d3c6-4cd9-a705-778473c2b5a7", "befores": [{"name": "api_name", "status": "passed", "start": 1716272633396, "stop": 1716272633396}], "start": 1716272633396, "stop": 1716272633540}
\ No newline at end of file
{"uuid": "e689a4f6-9881-4c85-bd24-61cb571737f6", "befores": [{"name": "module_name", "status": "passed", "start": 1716272644557, "stop": 1716272644557}], "start": 1716272644557, "stop": 1716272644752}
\ No newline at end of file
{"uuid": "58287a3d-2406-4e03-b0fd-eea8395c04fd", "befores": [{"name": "case_data", "status": "passed", "start": 1716272619383, "stop": 1716272619383}], "start": 1716272619383, "stop": 1716272619576}
\ No newline at end of file
{"uuid": "eaf8aee2-770f-413b-b3d4-0e24d3eade28", "befores": [{"name": "module_name", "status": "passed", "start": 1716272630525, "stop": 1716272630525}], "start": 1716272630525, "stop": 1716272630671}
\ No newline at end of file
{"uuid": "1b397646-ce33-49b8-aef8-a309fa27be53", "befores": [{"name": "case_data", "status": "passed", "start": 1716272647081, "stop": 1716272647081}], "start": 1716272647081, "stop": 1716272647181}
\ No newline at end of file
{"name": "反向用例-密码正确,用户名错误", "status": "passed", "attachments": [{"name": "log", "source": "210b12cf-948c-46d4-821a-7932288435ae-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "ff716806-b915-4865-a3fd-98f53bde6547-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "case_title", "value": "'反向用例-密码正确,用户名错误'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin123', 'password': 'MTIzNDU2'}"}, {"name": "expect_data", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272599640, "stop": 1716272599737, "uuid": "f77df4b9-85f7-4608-a188-2bf4343d4a14", "historyId": "83d67cdc5550a580709b5379b214757d", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "2b7f0238-0114-4875-bbd3-57c1aeac40e2", "befores": [{"name": "mime", "status": "passed", "start": 1716272651357, "stop": 1716272651357}], "start": 1716272651357, "stop": 1716272651501}
\ No newline at end of file
{"uuid": "8d6c6bdb-55bd-49b9-b997-4845d1779fb0", "befores": [{"name": "api_name", "status": "passed", "start": 1716272604094, "stop": 1716272604094}], "start": 1716272604094, "stop": 1716272604156}
\ No newline at end of file
{"uuid": "37f9f6a7-ad29-493c-8e02-c7afc5b8e0d9", "befores": [{"name": "api_name", "status": "passed", "start": 1716272610325, "stop": 1716272610325}], "start": 1716272610325, "stop": 1716272610394}
\ No newline at end of file
{"uuid": "14e3f9ba-33f6-4b1d-bb6a-49e33c7d59ac", "befores": [{"name": "url", "status": "passed", "start": 1716272642364, "stop": 1716272642365}], "start": 1716272642364, "stop": 1716272642550}
\ No newline at end of file
{"uuid": "9b3c025c-897f-4738-bed7-2353ca13f8e5", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272619383, "stop": 1716272619383}], "start": 1716272619383, "stop": 1716272619574}
\ No newline at end of file
{"uuid": "0426e7bb-5ce1-443f-bb21-ac398eb28df8", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272624098, "stop": 1716272624098}], "start": 1716272624098, "stop": 1716272624193}
\ No newline at end of file
{"uuid": "54b93657-eb8f-4029-acda-6823d7826df1", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272610325, "stop": 1716272610325}], "start": 1716272610325, "stop": 1716272610391}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803332075569152"}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803332507582464"}
\ No newline at end of file
{"uuid": "5c241130-dce7-4d9a-87e2-6573f864bba4", "befores": [{"name": "case_data", "status": "passed", "start": 1716272649196, "stop": 1716272649196}], "start": 1716272649196, "stop": 1716272649336}
\ No newline at end of file
{"uuid": "0c1cac1d-56dd-4779-be63-d84cab44f7cb", "befores": [{"name": "update_key", "status": "passed", "start": 1716272644557, "stop": 1716272644557}], "start": 1716272644557, "stop": 1716272644748}
\ No newline at end of file
{"uuid": "5cf23044-d2f0-4677-b25f-ff622474a2ad", "befores": [{"name": "url", "status": "passed", "start": 1716272632685, "stop": 1716272632685}], "start": 1716272632685, "stop": 1716272632839}
\ No newline at end of file
{"uuid": "5da97f00-bdf6-490b-bbf7-3956e833e9d6", "befores": [{"name": "case_title", "status": "passed", "start": 1716272621986, "stop": 1716272621986}], "start": 1716272621986, "stop": 1716272622090}
\ No newline at end of file
{"uuid": "4368da7c-d47d-41dc-9437-b077e7a3ab24", "befores": [{"name": "method", "status": "passed", "start": 1716272599417, "stop": 1716272599418}], "start": 1716272599417, "stop": 1716272599522}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803532844318720"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803541883043840"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803550955323392"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803560044380160"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803569104076800"}
\ No newline at end of file
{"uuid": "4e379f8e-f135-4535-a401-448b03983558", "befores": [{"name": "update_key", "status": "passed", "start": 1716272632685, "stop": 1716272632685}], "start": 1716272632685, "stop": 1716272632827}
\ No newline at end of file
{"uuid": "80766b16-93f2-4bd1-8621-f368a16cdc94", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272644958, "stop": 1716272644958}], "start": 1716272644958, "stop": 1716272645061}
\ No newline at end of file
{"uuid": "fb923434-d664-4867-af21-2498005e86e6", "befores": [{"name": "module_name", "status": "passed", "start": 1716272608242, "stop": 1716272608243}], "start": 1716272608242, "stop": 1716272608307}
\ No newline at end of file
{"uuid": "31d1db9d-6fd5-40d4-a433-81bea31b1b64", "befores": [{"name": "case_title", "status": "passed", "start": 1716272617172, "stop": 1716272617172}], "start": 1716272617172, "stop": 1716272617364}
\ No newline at end of file
{"uuid": "975cf4b0-4375-4670-97e7-ad34a04a1b93", "befores": [{"name": "case_data", "status": "passed", "start": 1716272635751, "stop": 1716272635751}], "start": 1716272635751, "stop": 1716272635937}
\ No newline at end of file
{"uuid": "41566d67-7ffb-4509-beed-b9a7a3ea3c93", "befores": [{"name": "case_level", "status": "passed", "start": 1716272621794, "stop": 1716272621794}], "start": 1716272621794, "stop": 1716272621851}
\ No newline at end of file
{"uuid": "c2fb2b6b-bc24-4c81-84d1-59578bde4abc", "befores": [{"name": "update_key", "status": "passed", "start": 1716272653522, "stop": 1716272653522}], "start": 1716272653522, "stop": 1716272653667}
\ No newline at end of file
{"uuid": "4f57e710-83cb-4ff5-8336-0780cdccbb06", "befores": [{"name": "case_data", "status": "passed", "start": 1716272644958, "stop": 1716272644958}], "start": 1716272644958, "stop": 1716272645063}
\ No newline at end of file
{"uuid": "642b7d09-554f-49f9-84dd-964c48065753", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272598828, "stop": 1716272598828}], "start": 1716272598828, "stop": 1716272598887}
\ No newline at end of file
{"uuid": "a1f95261-4f04-4816-8705-65be185cd2c4", "befores": [{"name": "case_level", "status": "passed", "start": 1716272599212, "stop": 1716272599212}], "start": 1716272599212, "stop": 1716272599310}
\ No newline at end of file
{"uuid": "39ab2baa-324f-4552-b8e0-30b16d2e1546", "befores": [{"name": "module_name", "status": "passed", "start": 1716272599526, "stop": 1716272599526}], "start": 1716272599526, "stop": 1716272599634}
\ No newline at end of file
{"name": "反向用例-用户名正确,密码为特殊字符", "status": "passed", "attachments": [{"name": "log", "source": "26060cd5-287d-410f-ab2e-8814868b5d88-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "5955ba8e-11d9-4edb-aa40-14fd224d434f-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "case_title", "value": "'反向用例-用户名正确,密码为特殊字符'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': '☯㍿卍卐'}"}, {"name": "expect_data", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272599103, "stop": 1716272599203, "uuid": "f65700d8-3d1e-41a8-a793-c4ce8afbf632", "historyId": "45fbe766301d5f34f2314154dd48ad7c", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "db53b751-0d2a-4652-9a42-2dc65fad4bf1", "befores": [{"name": "url", "status": "passed", "start": 1716272606163, "stop": 1716272606163}], "start": 1716272606163, "stop": 1716272606225}
\ No newline at end of file
{"uuid": "e4b16d18-56a7-492c-bc8b-9d5761ebd47f", "befores": [{"name": "mime", "status": "passed", "start": 1716272637955, "stop": 1716272637955}], "start": 1716272637955, "stop": 1716272638147}
\ No newline at end of file
{"uuid": "50fccad0-08c9-416f-92b3-846e71ab3006", "befores": [{"name": "url", "status": "passed", "start": 1716272602023, "stop": 1716272602023}], "start": 1716272602023, "stop": 1716272602082}
\ No newline at end of file
{"uuid": "f58b7a46-28bf-43bf-a226-b0cf9835a726", "befores": [{"name": "module_name", "status": "passed", "start": 1716272617172, "stop": 1716272617172}], "start": 1716272617172, "stop": 1716272617365}
\ No newline at end of file
{"uuid": "bd5c757a-3c90-41ea-a63e-72cc2d42fa00", "befores": [{"name": "mime", "status": "passed", "start": 1716272621920, "stop": 1716272621920}], "start": 1716272621920, "stop": 1716272621982}
\ No newline at end of file
{"uuid": "82d16806-b5a8-42e7-97d4-81e889338395", "befores": [{"name": "mime", "status": "passed", "start": 1716272610541, "stop": 1716272610541}], "start": 1716272610541, "stop": 1716272610735}
\ No newline at end of file
{"uuid": "0e0b42f9-66af-4389-8e3e-e2f295c1c3e0", "befores": [{"name": "case_title", "status": "passed", "start": 1716272621855, "stop": 1716272621855}], "start": 1716272621855, "stop": 1716272621916}
\ No newline at end of file
{"uuid": "72351db0-2597-4a6b-82a9-cfe8b1140031", "befores": [{"name": "case_level", "status": "passed", "start": 1716272633543, "stop": 1716272633543}], "start": 1716272633543, "stop": 1716272633730}
\ No newline at end of file
{"uuid": "be7119ff-ac72-428f-9612-35e7103ad8fe", "befores": [{"name": "case_data", "status": "passed", "start": 1716272653522, "stop": 1716272653522}], "start": 1716272653520, "stop": 1716272653670}
\ No newline at end of file
{"uuid": "d067337f-82f8-49ca-942b-96627d92ccf0", "befores": [{"name": "update_key", "status": "passed", "start": 1716272617174, "stop": 1716272617174}], "start": 1716272617174, "stop": 1716272617361}
\ No newline at end of file
{"uuid": "c677cf0b-3b84-49a7-a199-cf77b2c06b47", "befores": [{"name": "url", "status": "passed", "start": 1716272644817, "stop": 1716272644817}], "start": 1716272644817, "stop": 1716272644877}
\ No newline at end of file
{"uuid": "aa6ef870-2ca1-44d8-be7a-7b866feb038b", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272635751, "stop": 1716272635751}], "start": 1716272635751, "stop": 1716272635937}
\ No newline at end of file
{"uuid": "31413685-a894-47ce-ab55-6eccfa3d541b", "befores": [{"name": "case_title", "status": "passed", "start": 1716272655684, "stop": 1716272655684}], "start": 1716272655684, "stop": 1716272655837}
\ No newline at end of file
{"uuid": "3708e63d-1549-442e-9e8b-1279a33eb902", "befores": [{"name": "case_level", "status": "passed", "start": 1716272644958, "stop": 1716272644958}], "start": 1716272644958, "stop": 1716272645065}
\ No newline at end of file
{"uuid": "2311c69f-83c9-44e0-a96a-6798f43e0801", "befores": [{"name": "update_key", "status": "passed", "start": 1716272610398, "stop": 1716272610398}], "start": 1716272610398, "stop": 1716272610534}
\ No newline at end of file
{"uuid": "6a1b5e3b-8922-4a5a-bc67-fd2b1f7be158", "befores": [{"name": "case_level", "status": "passed", "start": 1716272633396, "stop": 1716272633396}], "start": 1716272633396, "stop": 1716272633538}
\ No newline at end of file
{"uuid": "4a2d9e2c-d481-4eb7-8271-1c1be0b7f110", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272599639, "stop": 1716272599639}], "start": 1716272599639, "stop": 1716272599739}
\ No newline at end of file
{"uuid": "345d57b4-53bc-4ca5-a5cc-ce4c36e62b4a", "befores": [{"name": "method", "status": "passed", "start": 1716272598997, "stop": 1716272598997}], "start": 1716272598997, "stop": 1716272599096}
\ No newline at end of file
{"uuid": "e0bb7d67-8ffe-4431-a1da-494a11c6b487", "befores": [{"name": "url", "status": "passed", "start": 1716272608243, "stop": 1716272608243}], "start": 1716272608243, "stop": 1716272608304}
\ No newline at end of file
{"uuid": "3115a590-2081-4090-a8ad-dd0000829a20", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272610542, "stop": 1716272610542}], "start": 1716272610542, "stop": 1716272610733}
\ No newline at end of file
{"uuid": "96703d11-9387-4703-9792-99a45d1fd90c", "befores": [{"name": "mime", "status": "passed", "start": 1716272635751, "stop": 1716272635751}], "start": 1716272635751, "stop": 1716272635938}
\ No newline at end of file
{"uuid": "107db1e4-d45e-4db1-b8f3-9aa2920b0f4e", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272630526, "stop": 1716272630526}], "start": 1716272630526, "stop": 1716272630667}
\ No newline at end of file
{"uuid": "a19ebe92-cb2d-4f4c-911f-0482a22b7e54", "befores": [{"name": "update_key", "status": "passed", "start": 1716272651357, "stop": 1716272651357}], "start": 1716272651357, "stop": 1716272651498}
\ No newline at end of file
{"uuid": "f5a35020-a7b5-4f17-a4cf-1cb87cab3fe7", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272630526, "stop": 1716272630526}], "start": 1716272630526, "stop": 1716272630668}
\ No newline at end of file
{"uuid": "779e6ee8-f8ab-433c-99b5-33e3a7a51358", "befores": [{"name": "method", "status": "passed", "start": 1716272598893, "stop": 1716272598893}], "start": 1716272598893, "stop": 1716272598992}
\ No newline at end of file
{"uuid": "ebca5792-a76f-4c68-829e-413fb9a4ab6f", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272644557, "stop": 1716272644557}], "start": 1716272644557, "stop": 1716272644749}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功", "trace": "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "91d7907c-e255-4493-98f9-72ed7b720ce3-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功'}"}, {"name": "sql_data", "value": "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "update_key", "value": "'demId'"}], "start": 1716272637956, "stop": 1716272638139, "uuid": "f34de71f-c617-47af-a35d-71c3f084dd08", "historyId": "526f1fd519b78b4955668d6cfd277048", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "038029ab-1914-411a-adb3-1c9a043df212", "befores": [{"name": "api_name", "status": "passed", "start": 1716272644756, "stop": 1716272644756}], "start": 1716272644756, "stop": 1716272644812}
\ No newline at end of file
{"uuid": "de98d0b2-cb33-4029-87c5-0d2ee4947018", "befores": [{"name": "case_data", "status": "passed", "start": 1716272610397, "stop": 1716272610397}], "start": 1716272610397, "stop": 1716272610535}
\ No newline at end of file
{"uuid": "ad841ebd-3200-4f67-8c65-7ce9bd91faf5", "befores": [{"name": "module_name", "status": "passed", "start": 1716272644882, "stop": 1716272644882}], "start": 1716272644882, "stop": 1716272644954}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "207026aa-9909-4cbf-98c9-22cc531445cc-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1792803379156631552'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_data", "value": "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1716272632686, "stop": 1716272632817, "uuid": "0b751273-6918-4218-a296-0fb512c07b05", "historyId": "347d2f73ed73495ba7ba72dbf723f253", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "4eb8fc10-7c04-4d8e-a4c9-60a80d77a592", "befores": [{"name": "mime", "status": "passed", "start": 1716272644882, "stop": 1716272644882}], "start": 1716272644882, "stop": 1716272644951}
\ No newline at end of file
{"uuid": "d3552944-039e-4212-9e3b-487562a3b1ef", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272599103, "stop": 1716272599103}], "start": 1716272599103, "stop": 1716272599205}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功", "trace": "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "4141671e-3bbe-434d-847a-8ed3780c884f-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1792803475629817856'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_data", "value": "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1716272651358, "stop": 1716272651491, "uuid": "0c4ebf73-afc6-4ef9-8a2c-74c55cd751c9", "historyId": "f0f670cbfec7a9680aec241c756307a6", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "0a1a9b62-ec2f-4ffa-87d2-2574c2a1a12a", "befores": [{"name": "case_data", "status": "passed", "start": 1716272640166, "stop": 1716272640166}], "start": 1716272640166, "stop": 1716272640350}
\ No newline at end of file
{"uuid": "41d4d1bc-ebfd-4e31-b2e3-87e0324c6774", "befores": [{"name": "case_data", "status": "passed", "start": 1716272598747, "stop": 1716272598747}], "start": 1716272598747, "stop": 1716272598822}
\ No newline at end of file
{"uuid": "19ac99dd-f2bc-4cee-9a1d-e4fd700bb63c", "befores": [{"name": "api_name", "status": "passed", "start": 1716272599314, "stop": 1716272599314}], "start": 1716272599314, "stop": 1716272599412}
\ No newline at end of file
{"uuid": "2b40c083-cabc-4e4f-adfb-e5adf758272f", "befores": [{"name": "case_title", "status": "passed", "start": 1716272649196, "stop": 1716272649196}], "start": 1716272649196, "stop": 1716272649338}
\ No newline at end of file
{"name": "添加维度-依赖登录", "status": "passed", "attachments": [{"name": "stdout", "source": "c76b71f1-72e8-4c61-b89a-9f691d8dbaa4-attachment.txt", "type": "text/plain"}], "start": 1716272632942, "stop": 1716272633094, "uuid": "b13de872-1e83-4039-bac4-c003649c8243", "historyId": "2c19ea97cbbe4cb31079c2ee05828120", "testCaseId": "2c19ea97cbbe4cb31079c2ee05828120", "fullName": "test_case.test_dependency.test_dependency#test_add_dem", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "epic", "value": "BPM-场景测试"}, {"name": "tag", "value": "dependency(depends=['test_login'])"}, {"name": "parentSuite", "value": "test_case.test_dependency"}, {"name": "suite", "value": "test_dependency"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_dependency.test_dependency"}]}
\ No newline at end of file
{"uuid": "c17589df-28c1-477d-865d-048632b54684", "befores": [{"name": "url", "status": "passed", "start": 1716272599754, "stop": 1716272599754}], "start": 1716272599754, "stop": 1716272600008}
\ No newline at end of file
{"uuid": "d4c589f1-1596-401e-9fcc-1ef1d151f894", "befores": [{"name": "method", "status": "passed", "start": 1716272604094, "stop": 1716272604094}], "start": 1716272604094, "stop": 1716272604155}
\ No newline at end of file
{"uuid": "6846daf8-3329-47e7-8ce9-1e3698fe50e7", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272599418, "stop": 1716272599418}], "start": 1716272599418, "stop": 1716272599519}
\ No newline at end of file
{"uuid": "f66ac96b-b5bf-4ee5-b751-7367acef0f33", "befores": [{"name": "update_key", "status": "passed", "start": 1716272614968, "stop": 1716272614968}], "start": 1716272614968, "stop": 1716272615154}
\ No newline at end of file
{"uuid": "fc2fb9af-f294-417d-baa4-9287c57c0465", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272610325, "stop": 1716272610325}], "start": 1716272610325, "stop": 1716272610391}
\ No newline at end of file
{"uuid": "52388996-c93e-4e4b-b59d-ae500009ee8d", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272644817, "stop": 1716272644817}], "start": 1716272644817, "stop": 1716272644875}
\ No newline at end of file
{"uuid": "b3e67c6a-8b57-464e-bcc8-4f45cb27e184", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272610325, "stop": 1716272610325}], "start": 1716272610325, "stop": 1716272610391}
\ No newline at end of file
{"uuid": "09f60a5d-3c60-4f22-ade0-3ea2ba1fec32", "befores": [{"name": "module_name", "status": "passed", "start": 1716272604094, "stop": 1716272604094}], "start": 1716272604094, "stop": 1716272604157}
\ No newline at end of file
{"uuid": "b92ae42a-5a60-4120-9199-da23455427a2", "befores": [{"name": "api_name", "status": "passed", "start": 1716272599417, "stop": 1716272599417}], "start": 1716272599417, "stop": 1716272599523}
\ No newline at end of file
{"uuid": "b5fea50c-9851-45b4-a470-c1e8d21a463e", "befores": [{"name": "mime", "status": "passed", "start": 1716272649196, "stop": 1716272649196}], "start": 1716272649196, "stop": 1716272649337}
\ No newline at end of file
{"uuid": "0f13a881-8d30-469e-90cf-796564aac5f9", "befores": [{"name": "case_data", "status": "passed", "start": 1716272617174, "stop": 1716272617174}], "start": 1716272617174, "stop": 1716272617363}
\ No newline at end of file
{"uuid": "4466df56-666d-4b60-ae45-e378fc250eba", "befores": [{"name": "case_level", "status": "passed", "start": 1716272599417, "stop": 1716272599417}], "start": 1716272599417, "stop": 1716272599522}
\ No newline at end of file
{"uuid": "d4d60d9f-642b-4dd2-b598-937b86e421a6", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272598893, "stop": 1716272598893}], "start": 1716272598893, "stop": 1716272598990}
\ No newline at end of file
{"uuid": "a88aa9a6-20b5-41e0-ba2e-81159a1961cf", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272644958, "stop": 1716272644958}], "start": 1716272644958, "stop": 1716272645062}
\ No newline at end of file
{"uuid": "bc240ab8-e43f-4d75-81b8-6355378fc7d3", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272606163, "stop": 1716272606163}], "start": 1716272606163, "stop": 1716272606223}
\ No newline at end of file
{"uuid": "1a0144fa-4300-4aa8-8a32-920a4e79af09", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272647081, "stop": 1716272647081}], "start": 1716272647081, "stop": 1716272647180}
\ No newline at end of file
{"uuid": "49098221-64f9-4c29-be3a-224c043dfd9d", "befores": [{"name": "api_name", "status": "passed", "start": 1716272621598, "stop": 1716272621598}], "start": 1716272621598, "stop": 1716272621791}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803331177988096"}
\ No newline at end of file
{"uuid": "c192d36b-68e3-4a87-a04b-7f18e9589763", "befores": [{"name": "url", "status": "passed", "start": 1716272610541, "stop": 1716272610541}], "start": 1716272610541, "stop": 1716272610735}
\ No newline at end of file
{"uuid": "5fb162f3-74f8-4a2f-9ac7-6ca2cc6a54f7", "befores": [{"name": "case_data", "status": "passed", "start": 1716272626206, "stop": 1716272626206}], "start": 1716272626206, "stop": 1716272626350}
\ No newline at end of file
{"uuid": "ab6e2307-c7b9-42d7-ade2-f9b9b522747a", "befores": [{"name": "case_data", "status": "passed", "start": 1716272599754, "stop": 1716272599754}], "start": 1716272599754, "stop": 1716272600008}
\ No newline at end of file
{"uuid": "65fe9779-6c66-4b6c-8eb2-2ec9c65c534f", "befores": [{"name": "case_title", "status": "passed", "start": 1716272633543, "stop": 1716272633543}], "start": 1716272633543, "stop": 1716272633732}
\ No newline at end of file
{"uuid": "b151b397-1cf6-4623-9770-dffb0fb9cdf9", "befores": [{"name": "update_key", "status": "passed", "start": 1716272621856, "stop": 1716272621856}], "start": 1716272621856, "stop": 1716272621912}
\ No newline at end of file
{"uuid": "3d7e74d1-7566-4cb7-8824-c68f126ea272", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272598893, "stop": 1716272598893}], "start": 1716272598893, "stop": 1716272598991}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F19157400>('message')\n + where <built-in method get of dict object at 0x0000014F19157400> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F19157400>('message')\nE + where <built-in method get of dict object at 0x0000014F19157400> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "3d13a08f-69e0-411e-b723-af91e303d5f3-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'刷新token'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'GET'"}, {"name": "url", "value": "'http://120.46.172.186:8080/refresh'"}, {"name": "mime", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新token成功'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272604095, "stop": 1716272604145, "uuid": "b0499f8b-a6d3-4f48-8305-789adf041ea8", "historyId": "1dcae5f805bddffd6ce19e14c8b3458b", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
{"uuid": "3e6f45c9-c644-40ff-87a3-c1d7d9f45a11", "befores": [{"name": "case_title", "status": "passed", "start": 1716272647081, "stop": 1716272647081}], "start": 1716272647081, "stop": 1716272647183}
\ No newline at end of file
{"uuid": "0bfde6fe-5198-49ef-858d-06e8d32e2863", "befores": [{"name": "case_data", "status": "passed", "start": 1716272621855, "stop": 1716272621855}], "start": 1716272621855, "stop": 1716272621914}
\ No newline at end of file
{"uuid": "39ddefed-a017-4c0c-ac37-328430736872", "befores": [{"name": "method", "status": "passed", "start": 1716272598828, "stop": 1716272598828}], "start": 1716272598828, "stop": 1716272598888}
\ No newline at end of file
{"uuid": "063e11d5-ef8f-4fe1-af6e-ff548f5fb6b0", "befores": [{"name": "case_data", "status": "passed", "start": 1716272633396, "stop": 1716272633396}], "start": 1716272633396, "stop": 1716272633537}
\ No newline at end of file
{"uuid": "e8fe2978-1e40-414a-905b-763f199707ba", "befores": [{"name": "case_title", "status": "passed", "start": 1716272644816, "stop": 1716272644816}], "start": 1716272644816, "stop": 1716272644877}
\ No newline at end of file
{"uuid": "c5a95bdd-e796-4de1-a376-cd7d733475b9", "befores": [{"name": "url", "status": "passed", "start": 1716272599102, "stop": 1716272599102}], "start": 1716272599102, "stop": 1716272599206}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803436442435584"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803445468577792"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803454528274432"}
\ No newline at end of file
{"uuid": "e9c5314f-6edd-46ac-a492-19a21d1952be", "befores": [{"name": "case_level", "status": "passed", "start": 1716272644756, "stop": 1716272644756}], "start": 1716272644756, "stop": 1716272644812}
\ No newline at end of file
{"uuid": "2ce74f30-2bfd-4bb1-bf0b-1bae3ae998af", "befores": [{"name": "url", "status": "passed", "start": 1716272598747, "stop": 1716272598747}], "start": 1716272598747, "stop": 1716272598823}
\ No newline at end of file
{"uuid": "8b5f4d40-12b8-4847-a620-980f05dc4087", "befores": [{"name": "method", "status": "passed", "start": 1716272621920, "stop": 1716272621920}], "start": 1716272621920, "stop": 1716272621982}
\ No newline at end of file
{"uuid": "1180f47f-03b7-431c-83bb-f52e115d93c4", "befores": [{"name": "module_name", "status": "passed", "start": 1716272647080, "stop": 1716272647080}], "start": 1716272647080, "stop": 1716272647184}
\ No newline at end of file
{"uuid": "f3ea9e89-0238-4b33-89ee-e63a25c30b65", "befores": [{"name": "case_title", "status": "passed", "start": 1716272610541, "stop": 1716272610541}], "start": 1716272610541, "stop": 1716272610736}
\ No newline at end of file
{"uuid": "bcd19cfb-6f86-4edd-b048-d0d670e6a71d", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272649196, "stop": 1716272649196}], "start": 1716272649196, "stop": 1716272649336}
\ No newline at end of file
{"uuid": "81edbe95-51af-4c30-9c40-208c6816c1bd", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272598998, "stop": 1716272598998}], "start": 1716272598998, "stop": 1716272599093}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "0ed32c3a-71a9-464b-9d1c-89acbbf9a760-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "6884eebd-a67c-487e-97b8-3d848f96ebef-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'组织加入用户'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/orgUsers/addUsersForOrg'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'orgCode': 'test_add_org', 'accounts': 'admin'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '加入成功', 'value': ''}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272621795, "stop": 1716272621848, "uuid": "777d31fa-9e70-42f8-88ba-22c7c65a88c7", "historyId": "385bda31fe152e15cd1fc6b7817225aa", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "组织加入用户"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "e6c0878e-3bf4-4375-86dc-520b2f4a38b1", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272619383, "stop": 1716272619383}], "start": 1716272619383, "stop": 1716272619574}
\ No newline at end of file
{"uuid": "bbc02eb7-05fa-4e18-b3d0-a7095151eb20", "befores": [{"name": "api_name", "status": "passed", "start": 1716272598893, "stop": 1716272598893}], "start": 1716272598893, "stop": 1716272598993}
\ No newline at end of file
{"uuid": "4a97f53c-6bb1-4a83-a4ea-06b775525ff7", "befores": [{"name": "url", "status": "passed", "start": 1716272598828, "stop": 1716272598828}], "start": 1716272598828, "stop": 1716272598888}
\ No newline at end of file
{"uuid": "a5f44804-0097-4ae2-b8d1-3c0ef8d706dd", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272649196, "stop": 1716272649196}], "start": 1716272649196, "stop": 1716272649335}
\ No newline at end of file
{"uuid": "434f825c-ce7e-4325-86be-1971c3338e3e", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272653522, "stop": 1716272653522}], "start": 1716272653522, "stop": 1716272653669}
\ No newline at end of file
{"uuid": "55164136-cdab-451a-931d-b3a68f4eee2c", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272655685, "stop": 1716272655685}], "start": 1716272655685, "stop": 1716272655825}
\ No newline at end of file
{"uuid": "c680498f-c375-45f1-ad7a-a4090b8acb45", "befores": [{"name": "case_title", "status": "passed", "start": 1716272614966, "stop": 1716272614966}], "start": 1716272614966, "stop": 1716272615157}
\ No newline at end of file
{"uuid": "230f49ea-f5e1-4134-a020-3dd07d980e6f", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272637955, "stop": 1716272637956}], "start": 1716272637955, "stop": 1716272638146}
\ No newline at end of file
{"uuid": "52e11053-fab6-4b4d-bb80-50f335050008", "befores": [{"name": "update_key", "status": "passed", "start": 1716272624098, "stop": 1716272624098}], "start": 1716272624098, "stop": 1716272624193}
\ No newline at end of file
{"uuid": "ef393156-4ca5-4d34-96b9-65edd0520e0c", "befores": [{"name": "mime", "status": "passed", "start": 1716272628365, "stop": 1716272628365}], "start": 1716272628365, "stop": 1716272628511}
\ No newline at end of file
{"uuid": "faf1462c-a2dc-4edf-9802-2749e39187bc", "befores": [{"name": "case_data", "status": "passed", "start": 1716272651357, "stop": 1716272651357}], "start": 1716272651357, "stop": 1716272651501}
\ No newline at end of file
{"uuid": "87e61d6d-7d53-446c-8d16-2f5ec5da2356", "befores": [{"name": "case_title", "status": "passed", "start": 1716272619383, "stop": 1716272619383}], "start": 1716272619383, "stop": 1716272619577}
\ No newline at end of file
{"uuid": "dbcb8b50-7e43-42d6-a66c-4db1ebf6f970", "befores": [{"name": "module_name", "status": "passed", "start": 1716272598997, "stop": 1716272598997}], "start": 1716272598997, "stop": 1716272599099}
\ No newline at end of file
{"uuid": "442584cb-8258-4108-b262-a0f1494c648e", "befores": [{"name": "case_title", "status": "passed", "start": 1716272604094, "stop": 1716272604094}], "start": 1716272604094, "stop": 1716272604156}
\ No newline at end of file
{"uuid": "915b1e40-9473-4bab-96e8-6c0977b786d9", "befores": [{"name": "mime", "status": "passed", "start": 1716272619383, "stop": 1716272619383}], "start": 1716272619383, "stop": 1716272619576}
\ No newline at end of file
{"uuid": "af499a0a-c8af-4e30-a629-d1ecd9c7dbee", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272644817, "stop": 1716272644817}], "start": 1716272644817, "stop": 1716272644874}
\ No newline at end of file
{"uuid": "6fb2a2be-0138-4c54-8358-8b96276b98b1", "befores": [{"name": "mime", "status": "passed", "start": 1716272608243, "stop": 1716272608243}], "start": 1716272608243, "stop": 1716272608304}
\ No newline at end of file
{"uuid": "a5eba656-4867-42e9-b946-ab43199a1909", "befores": [{"name": "url", "status": "passed", "start": 1716272626206, "stop": 1716272626206}], "start": 1716272626206, "stop": 1716272626351}
\ No newline at end of file
{"uuid": "24e46087-f153-468a-88b8-16374e55bbec", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272610542, "stop": 1716272610542}], "start": 1716272610542, "stop": 1716272610733}
\ No newline at end of file
{"uuid": "be9bc24b-0acd-46c6-8e43-dcfd9bef9c35", "befores": [{"name": "update_key", "status": "passed", "start": 1716272649196, "stop": 1716272649196}], "start": 1716272649196, "stop": 1716272649334}
\ No newline at end of file
{"uuid": "eef6df20-b6e5-4cd1-b243-2d2f641a8fb6", "befores": [{"name": "case_level", "status": "passed", "start": 1716272647081, "stop": 1716272647081}], "start": 1716272647081, "stop": 1716272647183}
\ No newline at end of file
{"uuid": "edb01ef1-87ce-4b79-94a2-ba18f5355b20", "befores": [{"name": "update_key", "status": "passed", "start": 1716272633397, "stop": 1716272633397}], "start": 1716272633397, "stop": 1716272633536}
\ No newline at end of file
{"uuid": "5cd32568-6c17-46d3-8994-a70baf9197dc", "befores": [{"name": "case_data", "status": "passed", "start": 1716272637955, "stop": 1716272637955}], "start": 1716272637955, "stop": 1716272638147}
\ No newline at end of file
{"uuid": "2b5753b9-5a1b-4504-b8df-d70b58e28d62", "befores": [{"name": "case_level", "status": "passed", "start": 1716272598747, "stop": 1716272598747}], "start": 1716272598747, "stop": 1716272598824}
\ No newline at end of file
{"uuid": "227e9154-fe3c-421b-b94b-47a652afb756", "befores": [{"name": "case_level", "status": "passed", "start": 1716272630525, "stop": 1716272630525}], "start": 1716272630525, "stop": 1716272630670}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTcsImlhdCI6MTcxNjI3MjU5N30.sY4lvg3FdRhPw7aTY0jx3ZeN03MQbTx1bARhQIZP2H41KaUr83P2Q4MTt-AKuPxQxYsVlEOH9rPkM0X7HhxEJA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
{"uuid": "26469d65-54bd-4500-b94c-b4ecb462d9be", "befores": [{"name": "module_name", "status": "passed", "start": 1716272599314, "stop": 1716272599314}], "start": 1716272599314, "stop": 1716272599413}
\ No newline at end of file
{"uuid": "f7fed399-0df7-45b9-b542-eea5d72cf9fe", "befores": [{"name": "api_name", "status": "passed", "start": 1716272635751, "stop": 1716272635751}], "start": 1716272635751, "stop": 1716272635940}
\ No newline at end of file
{"uuid": "7d9c67f8-e08b-466c-a6c1-15034b6614f8", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272653522, "stop": 1716272653522}], "start": 1716272653522, "stop": 1716272653669}
\ No newline at end of file
{"uuid": "b2fba8ce-9a42-4932-bb7d-063cc02fb954", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272637955, "stop": 1716272637955}], "start": 1716272637955, "stop": 1716272638147}
\ No newline at end of file
{"uuid": "559d2457-8c82-436d-bb72-0d4ea6f490c9", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272617174, "stop": 1716272617174}], "start": 1716272617174, "stop": 1716272617362}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803436442435584"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803445468577792"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803454528274432"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803463587971072"}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "6ac5eeb5-3b5a-470a-bdc0-663ff0bc7852-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1792803379156631552'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_data", "value": "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1716272628366, "stop": 1716272628501, "uuid": "b4b9152f-73b8-4913-9126-db6371e9884e", "historyId": "347d2f73ed73495ba7ba72dbf723f253", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "df65ef9e-f7e7-43a3-9d7c-8d6f2ae0ad0d", "befores": [{"name": "case_data", "status": "passed", "start": 1716272608243, "stop": 1716272608243}], "start": 1716272608243, "stop": 1716272608304}
\ No newline at end of file
{"uuid": "6913f9de-1ef0-4e22-a6c5-431a7dd044d6", "befores": [{"name": "method", "status": "passed", "start": 1716272606163, "stop": 1716272606163}], "start": 1716272606163, "stop": 1716272606225}
\ No newline at end of file
{"uuid": "e305cbbf-d6ca-4c32-b7ef-15c0caff8ce2", "befores": [{"name": "url", "status": "passed", "start": 1716272624098, "stop": 1716272624098}], "start": 1716272624098, "stop": 1716272624194}
\ No newline at end of file
{"uuid": "2519b66b-f9a4-45b7-a90c-7b2fed37fda0", "befores": [{"name": "case_title", "status": "passed", "start": 1716272606163, "stop": 1716272606163}], "start": 1716272606163, "stop": 1716272606226}
\ No newline at end of file
{"uuid": "e3c2a1f5-19ac-46ca-95f2-22085f666eb9", "befores": [{"name": "mime", "status": "passed", "start": 1716272598747, "stop": 1716272598747}], "start": 1716272598747, "stop": 1716272598823}
\ No newline at end of file
{"uuid": "3f3039e3-b119-4345-b93e-8ee359939914", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272653522, "stop": 1716272653522}], "start": 1716272653522, "stop": 1716272653669}
\ No newline at end of file
{"uuid": "fc6059c9-119a-424a-aed0-fc7afe37e461", "befores": [{"name": "mime", "status": "passed", "start": 1716272644557, "stop": 1716272644557}], "start": 1716272644557, "stop": 1716272644749}
\ No newline at end of file
{"uuid": "40bb4d65-0a49-4594-bd95-30b28511bf0b", "befores": [{"name": "method", "status": "passed", "start": 1716272649196, "stop": 1716272649196}], "start": 1716272649196, "stop": 1716272649337}
\ No newline at end of file
{"uuid": "b20b3a64-ca59-41c7-ac88-2996ed736574", "befores": [{"name": "case_title", "status": "passed", "start": 1716272644882, "stop": 1716272644882}], "start": 1716272644882, "stop": 1716272644953}
\ No newline at end of file
{"uuid": "ad6b849c-d237-4c9f-84bb-bf0873d77a59", "befores": [{"name": "module_name", "status": "passed", "start": 1716272614966, "stop": 1716272614966}], "start": 1716272614966, "stop": 1716272615157}
\ No newline at end of file
{"uuid": "6fbaaf90-7f63-4131-9590-4f5311107280", "befores": [{"name": "method", "status": "passed", "start": 1716272644756, "stop": 1716272644756}], "start": 1716272644756, "stop": 1716272644812}
\ No newline at end of file
{"uuid": "aa8a0114-759b-4654-80bf-6690f7e16dcf", "befores": [{"name": "case_title", "status": "passed", "start": 1716272621920, "stop": 1716272621920}], "start": 1716272621920, "stop": 1716272621983}
\ No newline at end of file
{"uuid": "9c4afe48-ce64-4a8c-be10-da3799297299", "befores": [{"name": "method", "status": "passed", "start": 1716272651357, "stop": 1716272651357}], "start": 1716272651357, "stop": 1716272651502}
\ No newline at end of file
{"uuid": "8e993414-e390-4730-952f-a6961decefc0", "befores": [{"name": "method", "status": "passed", "start": 1716272628365, "stop": 1716272628365}], "start": 1716272628365, "stop": 1716272628512}
\ No newline at end of file
{"uuid": "c6bed11c-a3f3-4acf-a02f-0d909ac45c55", "befores": [{"name": "method", "status": "passed", "start": 1716272635751, "stop": 1716272635751}], "start": 1716272635751, "stop": 1716272635938}
\ No newline at end of file
{"uuid": "83063096-35e6-471e-964b-b4ca56afa4b6", "befores": [{"name": "url", "status": "passed", "start": 1716272649196, "stop": 1716272649196}], "start": 1716272649196, "stop": 1716272649337}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803532844318720"}
\ No newline at end of file
{"uuid": "4e84d084-fc0c-4a79-af71-dafffa54883a", "befores": [{"name": "case_level", "status": "passed", "start": 1716272617174, "stop": 1716272617174}], "start": 1716272617172, "stop": 1716272617364}
\ No newline at end of file
{"uuid": "bcf0fda5-8ef7-49b2-bbd7-cf755f896a00", "befores": [{"name": "method", "status": "passed", "start": 1716272647081, "stop": 1716272647081}], "start": 1716272647081, "stop": 1716272647182}
\ No newline at end of file
{"uuid": "8344fd6f-e507-4bcd-8071-8a5baf73d0a1", "befores": [{"name": "api_name", "status": "passed", "start": 1716272644816, "stop": 1716272644816}], "start": 1716272644816, "stop": 1716272644879}
\ No newline at end of file
{"uuid": "3176db72-fad5-4430-a9e4-4971cab85243", "befores": [{"name": "mime", "status": "passed", "start": 1716272598828, "stop": 1716272598828}], "start": 1716272598828, "stop": 1716272598888}
\ No newline at end of file
{"uuid": "ede11eb1-294f-4a08-a9ca-61db51f3c2f7", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272599755, "stop": 1716272599755}], "start": 1716272599755, "stop": 1716272600007}
\ No newline at end of file
{"uuid": "4cef4824-a3a8-4b3c-87f4-76f122019eef", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272599418, "stop": 1716272599418}], "start": 1716272599418, "stop": 1716272599518}
\ No newline at end of file
{"uuid": "6ae2b227-c7a7-43b7-98d0-0d4450fc718a", "befores": [{"name": "mime", "status": "passed", "start": 1716272621794, "stop": 1716272621794}], "start": 1716272621794, "stop": 1716272621850}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F19157380>('message')\n + where <built-in method get of dict object at 0x0000014F19157380> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F19157380>('message')\nE + where <built-in method get of dict object at 0x0000014F19157380> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "1c641071-d8b1-4df1-87d7-8ac3fad1dbd6-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'刷新token'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'GET'"}, {"name": "url", "value": "'http://120.46.172.186:8080/refresh'"}, {"name": "mime", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新token成功'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272608243, "stop": 1716272608294, "uuid": "a7d96320-6ab1-4b55-970b-ff86b059ac87", "historyId": "1dcae5f805bddffd6ce19e14c8b3458b", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "0f8f71da-f487-4f7e-a02e-6dc83f9b6988", "befores": [{"name": "method", "status": "passed", "start": 1716272610325, "stop": 1716272610325}], "start": 1716272610325, "stop": 1716272610393}
\ No newline at end of file
{"uuid": "33f5bef3-a7d9-49a1-a035-abab359f9c46", "befores": [{"name": "case_data", "status": "passed", "start": 1716272621599, "stop": 1716272621599}], "start": 1716272621599, "stop": 1716272621788}
\ No newline at end of file
{"uuid": "4a0749f6-b039-415c-85a6-e315c9cf446a", "befores": [{"name": "url", "status": "passed", "start": 1716272621920, "stop": 1716272621920}], "start": 1716272621920, "stop": 1716272621982}
\ No newline at end of file
{"uuid": "f51b9aba-2190-4da3-b51c-cb41389bfa8b", "befores": [{"name": "case_level", "status": "passed", "start": 1716272610397, "stop": 1716272610397}], "start": 1716272610397, "stop": 1716272610536}
\ No newline at end of file
{"uuid": "f702e8d6-8dac-4a6c-98f9-f0cee5fb4e5a", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272642365, "stop": 1716272642365}], "start": 1716272642365, "stop": 1716272642549}
\ No newline at end of file
{"uuid": "53a472fc-a674-4c09-9937-10d01ee6b016", "befores": [{"name": "method", "status": "passed", "start": 1716272621794, "stop": 1716272621794}], "start": 1716272621794, "stop": 1716272621850}
\ No newline at end of file
{"uuid": "473bc97a-309d-4944-870c-9de8bbf53881", "befores": [{"name": "case_data", "status": "passed", "start": 1716272644817, "stop": 1716272644817}], "start": 1716272644817, "stop": 1716272644875}
\ No newline at end of file
{"uuid": "a08aea46-9aa5-4b27-98ae-4af0d053ca9e", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272606163, "stop": 1716272606163}], "start": 1716272606163, "stop": 1716272606224}
\ No newline at end of file
{"uuid": "d603743e-1d6e-4bb2-9103-a198afc3daa3", "befores": [{"name": "case_level", "status": "passed", "start": 1716272610325, "stop": 1716272610325}], "start": 1716272610325, "stop": 1716272610393}
\ No newline at end of file
{"uuid": "cf6f8089-5d9e-465a-a7e6-e6a56199083b", "befores": [{"name": "case_title", "status": "passed", "start": 1716272637955, "stop": 1716272637955}], "start": 1716272637955, "stop": 1716272638149}
\ No newline at end of file
{"uuid": "c637b839-0174-455b-8541-6c11d47812d0", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272599212, "stop": 1716272599212}], "start": 1716272599212, "stop": 1716272599309}
\ No newline at end of file
{"uuid": "248fe819-e881-42cd-a55d-ce31bafa132d", "befores": [{"name": "method", "status": "passed", "start": 1716272621855, "stop": 1716272621855}], "start": 1716272621855, "stop": 1716272621915}
\ No newline at end of file
{"uuid": "e6b8fae7-dc4a-4ce8-bb59-8d899b6dbf37", "befores": [{"name": "update_key", "status": "passed", "start": 1716272630526, "stop": 1716272630526}], "start": 1716272630526, "stop": 1716272630667}
\ No newline at end of file
{"uuid": "e7bb0cb7-41aa-48c4-9c2f-b46b17164059", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272599212, "stop": 1716272599212}], "start": 1716272599212, "stop": 1716272599307}
\ No newline at end of file
{"uuid": "51f5ec3d-359a-4e68-b3f5-596b68524ad9", "befores": [{"name": "api_name", "status": "passed", "start": 1716272621986, "stop": 1716272621986}], "start": 1716272621986, "stop": 1716272622090}
\ No newline at end of file
{"uuid": "bd6cdc29-fba4-4745-80f3-f438ab96f07a", "befores": [{"name": "api_name", "status": "passed", "start": 1716272598828, "stop": 1716272598828}], "start": 1716272598828, "stop": 1716272598889}
\ No newline at end of file
{"uuid": "c95dd28a-a230-435a-8c51-8dfbef5d9f2e", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272614968, "stop": 1716272614968}], "start": 1716272614968, "stop": 1716272615154}
\ No newline at end of file
{"uuid": "23e8df7d-c852-4971-bd4c-4955d136098f", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272599755, "stop": 1716272599755}], "start": 1716272599755, "stop": 1716272600007}
\ No newline at end of file
{"uuid": "24101ad2-f3e4-4715-94d5-cb96eed28b68", "befores": [{"name": "case_level", "status": "passed", "start": 1716272644882, "stop": 1716272644882}], "start": 1716272644882, "stop": 1716272644952}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功", "trace": "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "8047f95d-351d-4a7a-8b9e-f46491a4a819-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1792803475629817856'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_data", "value": "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1716272647081, "stop": 1716272647173, "uuid": "45af3120-fde3-4ed9-942c-cf7d621b2682", "historyId": "f0f670cbfec7a9680aec241c756307a6", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "47816e5f-764d-42fe-bb52-2efff0a9b197", "befores": [{"name": "case_level", "status": "passed", "start": 1716272628365, "stop": 1716272628365}], "start": 1716272628365, "stop": 1716272628512}
\ No newline at end of file
{"uuid": "8b291b1e-acf7-46c6-ba32-f31d55c2e3bf", "befores": [{"name": "mime", "status": "passed", "start": 1716272599754, "stop": 1716272599754}], "start": 1716272599754, "stop": 1716272600008}
\ No newline at end of file
{"uuid": "912df5a5-cdf2-4d24-98ff-98dc568c2ae2", "befores": [{"name": "method", "status": "passed", "start": 1716272653520, "stop": 1716272653520}], "start": 1716272653520, "stop": 1716272653671}
\ No newline at end of file
{"uuid": "6db0633c-ffa3-43f3-9f31-ec39eca07118", "befores": [{"name": "api_name", "status": "passed", "start": 1716272653520, "stop": 1716272653520}], "start": 1716272653520, "stop": 1716272653674}
\ No newline at end of file
{"uuid": "f26d7291-11bc-43d9-ae37-77c32482091f", "befores": [{"name": "mime", "status": "passed", "start": 1716272599639, "stop": 1716272599639}], "start": 1716272599639, "stop": 1716272599739}
\ No newline at end of file
{"uuid": "561d357a-de11-4412-8792-53646e055758", "befores": [{"name": "mime", "status": "passed", "start": 1716272614966, "stop": 1716272614966}], "start": 1716272614966, "stop": 1716272615156}
\ No newline at end of file
{"uuid": "c678ffab-0c3c-4270-9344-fee8962de8dd", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272599418, "stop": 1716272599418}], "start": 1716272599418, "stop": 1716272599519}
\ No newline at end of file
{"uuid": "6c072958-361a-4942-9faa-78f58534ac0b", "befores": [{"name": "case_title", "status": "passed", "start": 1716272644958, "stop": 1716272644958}], "start": 1716272644958, "stop": 1716272645065}
\ No newline at end of file
{"uuid": "0d3cb81f-4464-4bfe-b6c8-083c3a397c1d", "befores": [{"name": "url", "status": "passed", "start": 1716272655685, "stop": 1716272655685}], "start": 1716272655685, "stop": 1716272655836}
\ No newline at end of file
{"uuid": "42349147-8fd1-449d-93c9-171f6e2bd7f0", "befores": [{"name": "case_title", "status": "passed", "start": 1716272651357, "stop": 1716272651357}], "start": 1716272651357, "stop": 1716272651503}
\ No newline at end of file
{"uuid": "01aa6c82-8f63-4993-a558-f030feace7bd", "befores": [{"name": "mime", "status": "passed", "start": 1716272640166, "stop": 1716272640166}], "start": 1716272640166, "stop": 1716272640350}
\ No newline at end of file
{"uuid": "b90a6c45-9558-4361-966c-b45813924f4b", "befores": [{"name": "url", "status": "passed", "start": 1716272621986, "stop": 1716272621986}], "start": 1716272621986, "stop": 1716272622088}
\ No newline at end of file
{"name": "反向用例-密码正确,用户名过短", "status": "passed", "attachments": [{"name": "log", "source": "bc27cb32-c3e4-458d-b4c4-9ba7f5053749-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "b02f83e9-08b2-49f4-897d-5035b2fd60eb-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "case_title", "value": "'反向用例-密码正确,用户名过短'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'a', 'password': 'MTIzNDU2'}"}, {"name": "expect_data", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272599418, "stop": 1716272599517, "uuid": "1724f79b-d0fd-4a26-9d86-b2ceaa7088b2", "historyId": "1a3971dd942170d7f7bcf2c1f2eecd8f", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "7820a67a-65a5-4210-bfbf-231cc9a2b319", "befores": [{"name": "api_name", "status": "passed", "start": 1716272599527, "stop": 1716272599527}], "start": 1716272599527, "stop": 1716272599633}
\ No newline at end of file
{"uuid": "608cae86-d548-4de7-a77e-70dc6e8be8aa", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272621987, "stop": 1716272621987}], "start": 1716272621987, "stop": 1716272622087}
\ No newline at end of file
{"uuid": "f4eb8564-bb90-4a72-b233-6165a61f30ee", "befores": [{"name": "case_level", "status": "passed", "start": 1716272621598, "stop": 1716272621598}], "start": 1716272621598, "stop": 1716272621789}
\ No newline at end of file
{"uuid": "6b109ab6-2eab-4ff0-a198-c52b22439a99", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272598998, "stop": 1716272598998}], "start": 1716272598998, "stop": 1716272599094}
\ No newline at end of file
{"uuid": "2a4449d8-af09-44c7-8ea8-21a97a4dc68b", "befores": [{"name": "case_data", "status": "passed", "start": 1716272599102, "stop": 1716272599102}], "start": 1716272599102, "stop": 1716272599206}
\ No newline at end of file
{"uuid": "2d4fbb94-08f4-404a-86e1-046115786de5", "befores": [{"name": "api_name", "status": "passed", "start": 1716272626206, "stop": 1716272626206}], "start": 1716272626206, "stop": 1716272626352}
\ No newline at end of file
{"uuid": "beeb3e79-b784-40a5-808a-be6da89f7b12", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272624098, "stop": 1716272624098}], "start": 1716272624098, "stop": 1716272624194}
\ No newline at end of file
{"uuid": "2ac929cf-0d6a-41d8-9261-6554a1a93d36", "befores": [{"name": "case_data", "status": "passed", "start": 1716272655685, "stop": 1716272655685}], "start": 1716272655685, "stop": 1716272655835}
\ No newline at end of file
{"uuid": "6c1ba28d-47f1-4268-bcfe-8c9a147ddc0d", "befores": [{"name": "case_level", "status": "passed", "start": 1716272598893, "stop": 1716272598893}], "start": 1716272598893, "stop": 1716272598992}
\ No newline at end of file
{"uuid": "ad63c810-15ef-416a-bb4f-96783a8a78f8", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272633543, "stop": 1716272633543}], "start": 1716272633543, "stop": 1716272633729}
\ No newline at end of file
{"uuid": "de33ac9e-b9a6-4834-90f8-d7296ec9cb20", "befores": [{"name": "case_data", "status": "passed", "start": 1716272628365, "stop": 1716272628365}], "start": 1716272628365, "stop": 1716272628511}
\ No newline at end of file
{"uuid": "fe35cec1-e69c-4101-8445-0f5b60a14932", "befores": [{"name": "update_key", "status": "passed", "start": 1716272610542, "stop": 1716272610542}], "start": 1716272610542, "stop": 1716272610732}
\ No newline at end of file
{"uuid": "48a22310-46a0-4e81-9553-5f559f52f364", "befores": [{"name": "api_name", "status": "passed", "start": 1716272651357, "stop": 1716272651357}], "start": 1716272651357, "stop": 1716272651503}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
{"uuid": "83a73288-205f-4b13-97cb-b8a7c87e0da2", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272612749, "stop": 1716272612749}], "start": 1716272612749, "stop": 1716272612939}
\ No newline at end of file
{"uuid": "bda15e9f-cca8-47fa-a461-9b525c672c18", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272621599, "stop": 1716272621599}], "start": 1716272621599, "stop": 1716272621788}
\ No newline at end of file
{"uuid": "d430e361-38f2-4cf2-98b8-33ed42a8a2e0", "befores": [{"name": "case_title", "status": "passed", "start": 1716272642364, "stop": 1716272642364}], "start": 1716272642364, "stop": 1716272642551}
\ No newline at end of file
{"uuid": "b9b1ed66-1b22-4058-be1d-0b4a0fe15b8a", "befores": [{"name": "module_name", "status": "passed", "start": 1716272628365, "stop": 1716272628365}], "start": 1716272628365, "stop": 1716272628513}
\ No newline at end of file
{"uuid": "14599b8c-a6f1-476f-a18c-9a82ff36fd92", "befores": [{"name": "url", "status": "passed", "start": 1716272604094, "stop": 1716272604094}], "start": 1716272604094, "stop": 1716272604155}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F19124300>('message')\n + where <built-in method get of dict object at 0x0000014F19124300> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F19124300>('message')\nE + where <built-in method get of dict object at 0x0000014F19124300> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "f6710333-f328-4e0d-922b-95e852462df9-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'刷新token'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'GET'"}, {"name": "url", "value": "'http://120.46.172.186:8080/refresh'"}, {"name": "mime", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新token成功'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272599755, "stop": 1716272599845, "uuid": "b34ab8ef-a9f7-49f6-a2f8-0c36533f0b0b", "historyId": "1dcae5f805bddffd6ce19e14c8b3458b", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "7e8059fb-fc93-40ca-bb0d-221dd75d5ac1", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272599755, "stop": 1716272599755}], "start": 1716272599755, "stop": 1716272600007}
\ No newline at end of file
{"uuid": "b943a483-d99a-4eb9-b999-39b086054d2a", "befores": [{"name": "url", "status": "passed", "start": 1716272610397, "stop": 1716272610397}], "start": 1716272610397, "stop": 1716272610536}
\ No newline at end of file
{"uuid": "d109c2f2-94a3-4ac5-b911-4b647c61c2c9", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272610542, "stop": 1716272610542}], "start": 1716272610542, "stop": 1716272610734}
\ No newline at end of file
{"uuid": "9cdf554d-5455-412a-a376-b098f8250453", "befores": [{"name": "api_name", "status": "passed", "start": 1716272602023, "stop": 1716272602023}], "start": 1716272602023, "stop": 1716272602084}
\ No newline at end of file
{"uuid": "35cdd062-e490-45d1-bd5a-939ea82c7bac", "befores": [{"name": "method", "status": "passed", "start": 1716272644557, "stop": 1716272644557}], "start": 1716272644557, "stop": 1716272644750}
\ No newline at end of file
{"uuid": "4b07a220-4c64-4678-b5ed-b81a0b8f95c0", "befores": [{"name": "url", "status": "passed", "start": 1716272598997, "stop": 1716272598997}], "start": 1716272598997, "stop": 1716272599096}
\ No newline at end of file
{"uuid": "d767e6d2-6241-46e6-b207-dcea07133452", "befores": [{"name": "case_title", "status": "passed", "start": 1716272598747, "stop": 1716272598747}], "start": 1716272598747, "stop": 1716272598824}
\ No newline at end of file
{"uuid": "87d8fbcf-4af7-42b2-8732-acc6731e7488", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272621599, "stop": 1716272621599}], "start": 1716272621599, "stop": 1716272621787}
\ No newline at end of file
{"uuid": "917a53b7-d568-47a9-ab66-d110efb44228", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272633396, "stop": 1716272633396}], "start": 1716272633396, "stop": 1716272633537}
\ No newline at end of file
{"uuid": "ec396beb-e065-45de-8ce7-e8fd59aa9c88", "befores": [{"name": "method", "status": "passed", "start": 1716272599315, "stop": 1716272599315}], "start": 1716272599315, "stop": 1716272599412}
\ No newline at end of file
{"uuid": "03cb4f4b-ff60-4cd6-a725-0c89cc38aa73", "befores": [{"name": "url", "status": "passed", "start": 1716272644756, "stop": 1716272644756}], "start": 1716272644756, "stop": 1716272644812}
\ No newline at end of file
{"uuid": "d4a74fa2-6d18-43c6-9d02-e6badc85d332", "befores": [{"name": "case_title", "status": "passed", "start": 1716272612749, "stop": 1716272612749}], "start": 1716272612749, "stop": 1716272612951}
\ No newline at end of file
{"uuid": "497bf6aa-965c-49f6-b794-07e9ddd315df", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272598828, "stop": 1716272598828}], "start": 1716272598828, "stop": 1716272598887}
\ No newline at end of file
{"uuid": "5b2057e8-6bd6-4e79-bea1-d8ade0f2b5c9", "befores": [{"name": "case_level", "status": "passed", "start": 1716272612749, "stop": 1716272612749}], "start": 1716272612749, "stop": 1716272612949}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
{"uuid": "8ce088ac-6efc-4f7d-b0a0-3cbe1442ebff", "befores": [{"name": "update_key", "status": "passed", "start": 1716272598998, "stop": 1716272598998}], "start": 1716272598998, "stop": 1716272599093}
\ No newline at end of file
{"uuid": "e2c565c4-bb65-4c1c-9fc6-666acc26a01a", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272598748, "stop": 1716272598748}], "start": 1716272598748, "stop": 1716272598812}
\ No newline at end of file
{"uuid": "ddacad00-d73a-4205-8600-2deab56b59a8", "befores": [{"name": "case_data", "status": "passed", "start": 1716272606163, "stop": 1716272606163}], "start": 1716272606163, "stop": 1716272606225}
\ No newline at end of file
{"uuid": "6e91dabd-86a4-4279-a9fc-897bbac75167", "befores": [{"name": "api_name", "status": "passed", "start": 1716272619383, "stop": 1716272619383}], "start": 1716272619383, "stop": 1716272619577}
\ No newline at end of file
{"name": "test用例函数-依赖登录成功和添加维度成功", "status": "passed", "attachments": [{"name": "stdout", "source": "3f507870-023d-4574-bb9f-ac551fe2c56d-attachment.txt", "type": "text/plain"}], "start": 1716272633097, "stop": 1716272633098, "uuid": "c8330828-746b-4786-b66f-7407a84ed843", "historyId": "112831bd8b103ba5270ea46bde2822af", "testCaseId": "112831bd8b103ba5270ea46bde2822af", "fullName": "test_case.test_dependency.test_dependency#test1", "labels": [{"name": "story", "value": "test"}, {"name": "feature", "value": "test"}, {"name": "epic", "value": "BPM-场景测试"}, {"name": "tag", "value": "dependency(depends=['test_add_dem', 'test_login'])"}, {"name": "parentSuite", "value": "test_case.test_dependency"}, {"name": "suite", "value": "test_dependency"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_dependency.test_dependency"}]}
\ No newline at end of file
{"uuid": "676e5ddf-33ab-43e0-adf4-0744366fb220", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272599315, "stop": 1716272599315}], "start": 1716272599315, "stop": 1716272599410}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功", "trace": "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "06b7ab20-aa5d-489e-ae13-0a082a4ad043-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功'}"}, {"name": "sql_data", "value": "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "update_key", "value": "'demId'"}], "start": 1716272635752, "stop": 1716272635930, "uuid": "8da1278d-2136-4d8f-b212-edbf7e6e7319", "historyId": "526f1fd519b78b4955668d6cfd277048", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "b494d3d9-a780-4b0e-b765-96f52bc54ba6", "befores": [{"name": "case_data", "status": "passed", "start": 1716272630525, "stop": 1716272630525}], "start": 1716272630525, "stop": 1716272630669}
\ No newline at end of file
{"uuid": "79f9d5e0-b0e9-4aac-b10e-6ad35edf6e69", "befores": [{"name": "mime", "status": "passed", "start": 1716272621986, "stop": 1716272621986}], "start": 1716272621986, "stop": 1716272622088}
\ No newline at end of file
{"uuid": "0e414d24-84af-4a8b-a110-13e461a46d36", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272614968, "stop": 1716272614968}], "start": 1716272614968, "stop": 1716272615155}
\ No newline at end of file
{"uuid": "acafeb99-bf97-4f64-bbf3-d1c2c1b035a7", "befores": [{"name": "update_key", "status": "passed", "start": 1716272626206, "stop": 1716272626206}], "start": 1716272626206, "stop": 1716272626348}
\ No newline at end of file
{"uuid": "23f2ab88-d8f9-49e3-8e8d-78c8b20497da", "befores": [{"name": "case_level", "status": "passed", "start": 1716272653520, "stop": 1716272653520}], "start": 1716272653520, "stop": 1716272653672}
\ No newline at end of file
{"uuid": "1348a45f-911c-4fda-bb13-84e80525b1e6", "befores": [{"name": "mime", "status": "passed", "start": 1716272602023, "stop": 1716272602023}], "start": 1716272602023, "stop": 1716272602082}
\ No newline at end of file
{"uuid": "e8ba7ce5-d640-4c82-aceb-9c3c3219bdec", "befores": [{"name": "module_name", "status": "passed", "start": 1716272610541, "stop": 1716272610541}], "start": 1716272610541, "stop": 1716272610736}
\ No newline at end of file
{"uuid": "eb7edddf-d376-42f0-81c4-af96bf4bdda8", "befores": [{"name": "api_name", "status": "passed", "start": 1716272610397, "stop": 1716272610397}], "start": 1716272610397, "stop": 1716272610538}
\ No newline at end of file
{"uuid": "285d2d8a-a65e-4ef2-983c-438feb756ec8", "befores": [{"name": "update_key", "status": "passed", "start": 1716272599103, "stop": 1716272599103}], "start": 1716272599103, "stop": 1716272599204}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
\ No newline at end of file
{"uuid": "8b962214-53e0-4b5f-84e3-a67b7e8d8ad9", "befores": [{"name": "case_title", "status": "passed", "start": 1716272621794, "stop": 1716272621794}], "start": 1716272621794, "stop": 1716272621851}
\ No newline at end of file
{"uuid": "1399b5db-0077-4415-a292-9ae44af739b0", "befores": [{"name": "update_key", "status": "passed", "start": 1716272635751, "stop": 1716272635751}], "start": 1716272635751, "stop": 1716272635936}
\ No newline at end of file
{"uuid": "b119c779-325d-497a-82ca-9b61d752cf44", "befores": [{"name": "case_title", "status": "passed", "start": 1716272599754, "stop": 1716272599754}], "start": 1716272599754, "stop": 1716272600010}
\ No newline at end of file
{"name": "反向用例-用户名正确,密码过短", "status": "passed", "attachments": [{"name": "log", "source": "64e2a74f-d693-4476-b5d6-d4aec697e75f-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "fc9b3bae-d15e-4686-a396-4bc5a82f4a25-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "case_title", "value": "'反向用例-用户名正确,密码过短'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'm'}"}, {"name": "expect_data", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272598998, "stop": 1716272599093, "uuid": "d70bed7d-bd04-4f16-ac9b-5738ec3bc976", "historyId": "f5ad8b2871fbe9131e812a7e7fd4507e", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "519c7689-7000-47ea-9e35-765a21ef19e0", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272621987, "stop": 1716272621987}], "start": 1716272621987, "stop": 1716272622088}
\ No newline at end of file
{"uuid": "484df2ba-83f7-4659-9ada-17f018476c1a", "befores": [{"name": "api_name", "status": "passed", "start": 1716272649196, "stop": 1716272649196}], "start": 1716272649196, "stop": 1716272649339}
\ No newline at end of file
{"uuid": "c41d337f-3a76-4031-a782-f5f86b28eed4", "befores": [{"name": "api_name", "status": "passed", "start": 1716272621855, "stop": 1716272621855}], "start": 1716272621855, "stop": 1716272621917}
\ No newline at end of file
{"uuid": "5961ba2c-1d58-4d4e-983e-bf4b5f3f64d0", "befores": [{"name": "update_key", "status": "passed", "start": 1716272647081, "stop": 1716272647081}], "start": 1716272647081, "stop": 1716272647179}
\ No newline at end of file
{"uuid": "90869bc4-85ce-428b-9633-bae75355f495", "befores": [{"name": "case_level", "status": "passed", "start": 1716272637955, "stop": 1716272637955}], "start": 1716272637955, "stop": 1716272638149}
\ No newline at end of file
{"uuid": "0c22bb46-51bb-4f2e-9b64-103a63139077", "befores": [{"name": "case_level", "status": "passed", "start": 1716272635751, "stop": 1716272635751}], "start": 1716272635751, "stop": 1716272635940}
\ No newline at end of file
{"uuid": "76f72148-c808-4095-9ed7-d5a9eec7d1eb", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272621920, "stop": 1716272621920}], "start": 1716272621920, "stop": 1716272621980}
\ No newline at end of file
{"uuid": "23ac2f75-06ea-4f5b-ba50-281e30a58949", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272608243, "stop": 1716272608243}], "start": 1716272608243, "stop": 1716272608303}
\ No newline at end of file
{"uuid": "10bca374-e9dd-445c-aa36-bdae2e6c0026", "befores": [{"name": "update_key", "status": "passed", "start": 1716272599755, "stop": 1716272599755}], "start": 1716272599755, "stop": 1716272600006}
\ No newline at end of file
{"uuid": "2ce24935-e578-4b9c-977a-5f7793f0c847", "befores": [{"name": "case_data", "status": "passed", "start": 1716272599639, "stop": 1716272599639}], "start": 1716272599639, "stop": 1716272599739}
\ No newline at end of file
{"uuid": "c1aaa079-ef5a-48dc-8a2f-f83ac183d7ef", "befores": [{"name": "module_name", "status": "passed", "start": 1716272612749, "stop": 1716272612749}], "start": 1716272612749, "stop": 1716272612951}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功", "trace": "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "d09fd688-af1e-4321-8100-e93cccbae6bd-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1792803475629817856'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_data", "value": "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1716272653523, "stop": 1716272653661, "uuid": "5b558a67-19fb-42da-8fdc-d7f0cede5c83", "historyId": "f0f670cbfec7a9680aec241c756307a6", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"name": "反向用例-密码正确,用户名过长", "status": "passed", "attachments": [{"name": "log", "source": "4bee1565-ae76-4818-a667-087d24c27356-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "c66d15bc-24e7-486d-ae88-8e801cb5bf6e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "case_title", "value": "'反向用例-密码正确,用户名过长'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}"}, {"name": "expect_data", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272599315, "stop": 1716272599407, "uuid": "9883f12e-5bed-46f3-90cb-4651c0b34b3d", "historyId": "968bf5f1bc5266807075e84dfd49d322", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "1d472972-fe17-4e5f-b75f-52c9fecb183c", "befores": [{"name": "update_key", "status": "passed", "start": 1716272621795, "stop": 1716272621795}], "start": 1716272621795, "stop": 1716272621848}
\ No newline at end of file
{"uuid": "c2de4163-c43e-4a0f-84c9-3e05b057882f", "befores": [{"name": "url", "status": "passed", "start": 1716272628365, "stop": 1716272628365}], "start": 1716272628365, "stop": 1716272628512}
\ No newline at end of file
{"uuid": "1605b0b6-7c26-4ec3-b327-e61fc9990ffa", "befores": [{"name": "mime", "status": "passed", "start": 1716272624098, "stop": 1716272624098}], "start": 1716272624098, "stop": 1716272624194}
\ No newline at end of file
{"uuid": "710bc5df-1505-4d69-81ef-03e750bc00ad", "befores": [{"name": "case_title", "status": "passed", "start": 1716272602023, "stop": 1716272602023}], "start": 1716272602023, "stop": 1716272602083}
\ No newline at end of file
{"uuid": "4365b4c3-f831-4714-b98d-51140c3b755e", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272649196, "stop": 1716272649196}], "start": 1716272649196, "stop": 1716272649335}
\ No newline at end of file
{"uuid": "8fdb094f-cba2-4cff-bc48-a1301c75bee9", "befores": [{"name": "case_data", "status": "passed", "start": 1716272610541, "stop": 1716272610541}], "start": 1716272610541, "stop": 1716272610734}
\ No newline at end of file
{"uuid": "28991240-2e0d-4450-bebc-0d0dd8a83b79", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272599639, "stop": 1716272599639}], "start": 1716272599639, "stop": 1716272599738}
\ No newline at end of file
{"uuid": "01500b2c-5f66-4bce-9aa8-2625d833e47c", "befores": [{"name": "update_key", "status": "passed", "start": 1716272598828, "stop": 1716272598828}], "start": 1716272598828, "stop": 1716272598886}
\ No newline at end of file
{"uuid": "5d2fc7a8-a503-434c-839c-e9944a8ec5b9", "befores": [{"name": "case_level", "status": "passed", "start": 1716272655684, "stop": 1716272655684}], "start": 1716272655684, "stop": 1716272655837}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDAsImlhdCI6MTcxNjI3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDIsImlhdCI6MTcxNjI3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDQsImlhdCI6MTcxNjI3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDYsImlhdCI6MTcxNjI3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDgsImlhdCI6MTcxNjI3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
\ No newline at end of file
{"uuid": "38b9b125-8481-45b6-ac32-8a296603a74c", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272647081, "stop": 1716272647081}], "start": 1716272647081, "stop": 1716272647180}
\ No newline at end of file
{"uuid": "36c58433-7f92-42aa-8ec9-92d637ab5d05", "befores": [{"name": "case_level", "status": "passed", "start": 1716272649196, "stop": 1716272649196}], "start": 1716272649196, "stop": 1716272649338}
\ No newline at end of file
{"name": "反向用例-用户名正确,密码过长", "status": "passed", "attachments": [{"name": "log", "source": "bec89abd-6bbb-4eca-9fa4-0992902cd615-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "f0d73289-0b63-4cb1-b728-7302fc1acc55-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "case_title", "value": "'反向用例-用户名正确,密码过长'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}"}, {"name": "expect_data", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272598895, "stop": 1716272598989, "uuid": "946a5629-c66f-4fd5-8b98-9bb29349f299", "historyId": "37bde76add67e3f73e804e1ff293bbd9", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "38c2d4d9-4642-486e-ad73-3ab89d47c9e9", "befores": [{"name": "api_name", "status": "passed", "start": 1716272598747, "stop": 1716272598747}], "start": 1716272598747, "stop": 1716272598824}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "0be0f8ba-cd5d-45f6-9c86-b79a73be7457-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "dbda4c3f-ae3e-4116-a81a-6b27471e5e73-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'删除组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'"}, {"name": "mime", "value": "'text/plain'"}, {"name": "case_data", "value": "'test_add_org'"}, {"name": "expect_data", "value": "{'state': True, 'message': '删除组织成功!', 'value': ''}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272644883, "stop": 1716272644938, "uuid": "897bff55-0c89-4809-984e-7d23734dfe86", "historyId": "5ee7a985530eff8db65cbc3fbd8fd151", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "删除组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "4b51e555-c8d8-4308-9b53-8dafa827e16b", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272621920, "stop": 1716272621920}], "start": 1716272621920, "stop": 1716272621979}
\ No newline at end of file
{"uuid": "1c9b3c3d-7370-45b5-b1a9-c26303870947", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272612749, "stop": 1716272612749}], "start": 1716272612749, "stop": 1716272612938}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
\ No newline at end of file
{"uuid": "78586e9a-43ba-43b1-82c8-dac6021f1247", "befores": [{"name": "module_name", "status": "passed", "start": 1716272633396, "stop": 1716272633396}], "start": 1716272633396, "stop": 1716272633540}
\ No newline at end of file
{"uuid": "5de4d0cd-a479-4176-872b-a7f2f91b20f8", "befores": [{"name": "update_key", "status": "passed", "start": 1716272602024, "stop": 1716272602024}], "start": 1716272602024, "stop": 1716272602080}
\ No newline at end of file
{"uuid": "92b4d7ca-f522-43b6-9d65-8466e917bc31", "befores": [{"name": "mime", "status": "passed", "start": 1716272644817, "stop": 1716272644817}], "start": 1716272644817, "stop": 1716272644876}
\ No newline at end of file
{"uuid": "017f1b9f-b257-4e20-9a4a-7b84e1a3e497", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272599315, "stop": 1716272599315}], "start": 1716272599315, "stop": 1716272599410}
\ No newline at end of file
{"uuid": "3a254b55-5b66-446d-a50c-6ab8b31d264a", "befores": [{"name": "mime", "status": "passed", "start": 1716272642365, "stop": 1716272642365}], "start": 1716272642365, "stop": 1716272642550}
\ No newline at end of file
{"uuid": "e5e2219e-8d4a-4632-89e2-eb3d00926a0c", "befores": [{"name": "api_name", "status": "passed", "start": 1716272598997, "stop": 1716272598997}], "start": 1716272598997, "stop": 1716272599098}
\ No newline at end of file
{"uuid": "4b9d95c9-6cfd-4235-a459-f54b0cbaf7b6", "befores": [{"name": "method", "status": "passed", "start": 1716272644958, "stop": 1716272644958}], "start": 1716272644958, "stop": 1716272645064}
\ No newline at end of file
{"uuid": "51ab051c-41d1-48a8-952d-bd4b2eb1008f", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272621856, "stop": 1716272621856}], "start": 1716272621856, "stop": 1716272621912}
\ No newline at end of file
{"uuid": "aa6d2f54-7123-4370-8091-bca9657e5c13", "befores": [{"name": "case_title", "status": "passed", "start": 1716272598893, "stop": 1716272598893}], "start": 1716272598893, "stop": 1716272598993}
\ No newline at end of file
{"uuid": "a43829e6-393e-4301-a4ba-ffa4c4301c78", "befores": [{"name": "case_title", "status": "passed", "start": 1716272635751, "stop": 1716272635751}], "start": 1716272635751, "stop": 1716272635940}
\ No newline at end of file
{"uuid": "c3d1bfd2-61ad-428d-8ed5-08381ad03275", "befores": [{"name": "case_data", "status": "passed", "start": 1716272621987, "stop": 1716272621987}], "start": 1716272621987, "stop": 1716272622088}
\ No newline at end of file
{"uuid": "1aa741f8-bfe2-4e58-8b10-760afa79a99a", "befores": [{"name": "method", "status": "passed", "start": 1716272640166, "stop": 1716272640166}], "start": 1716272640166, "stop": 1716272640350}
\ No newline at end of file
{"uuid": "c6f67c47-20d2-47e4-8d49-2372a79bf8db", "befores": [{"name": "api_name", "status": "passed", "start": 1716272647080, "stop": 1716272647080}], "start": 1716272647080, "stop": 1716272647183}
\ No newline at end of file
{"uuid": "172eb29e-b87a-4692-9494-adf27c0a3554", "befores": [{"name": "case_title", "status": "passed", "start": 1716272628365, "stop": 1716272628365}], "start": 1716272628365, "stop": 1716272628513}
\ No newline at end of file
{"uuid": "3f9ce304-58e9-4235-8d31-32df3bd00eb7", "befores": [{"name": "module_name", "status": "passed", "start": 1716272599754, "stop": 1716272599754}], "start": 1716272599754, "stop": 1716272600010}
\ No newline at end of file
{"uuid": "1aa0154e-9b30-4db9-a8a6-cd24c37ae85a", "befores": [{"name": "url", "status": "passed", "start": 1716272599527, "stop": 1716272599527}], "start": 1716272599527, "stop": 1716272599632}
\ No newline at end of file
{"uuid": "5e487e36-d24b-4e22-83f7-b9647f86f6e8", "befores": [{"name": "api_name", "status": "passed", "start": 1716272632685, "stop": 1716272632685}], "start": 1716272632685, "stop": 1716272632840}
\ No newline at end of file
{"uuid": "912cf656-4db1-427d-93a4-91a98960d7fe", "befores": [{"name": "mime", "status": "passed", "start": 1716272599212, "stop": 1716272599212}], "start": 1716272599212, "stop": 1716272599309}
\ No newline at end of file
{"uuid": "c09f654c-efa4-4b9b-a905-98b01bc25961", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272647081, "stop": 1716272647081}], "start": 1716272647081, "stop": 1716272647180}
\ No newline at end of file
{"uuid": "4706c2e8-8103-4e96-8b80-646d2a2d73ff", "befores": [{"name": "url", "status": "passed", "start": 1716272599212, "stop": 1716272599212}], "start": 1716272599212, "stop": 1716272599310}
\ No newline at end of file
{"uuid": "ad68f5bf-b3dd-4846-bc03-5a3564a41920", "befores": [{"name": "case_level", "status": "passed", "start": 1716272598828, "stop": 1716272598828}], "start": 1716272598828, "stop": 1716272598889}
\ No newline at end of file
{"uuid": "2a4a140b-b5d0-4ec2-bdf0-72e5e7618664", "befores": [{"name": "case_data", "status": "passed", "start": 1716272599418, "stop": 1716272599418}], "start": 1716272599418, "stop": 1716272599520}
\ No newline at end of file
{"uuid": "37fdf4e5-bdd2-4832-9fd2-2da7936bc3b9", "befores": [{"name": "update_key", "status": "passed", "start": 1716272621987, "stop": 1716272621987}], "start": 1716272621987, "stop": 1716272622086}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
\ No newline at end of file
{"uuid": "f1a136d3-e716-4202-946a-600fc7f03450", "befores": [{"name": "url", "status": "passed", "start": 1716272610325, "stop": 1716272610325}], "start": 1716272610325, "stop": 1716272610392}
\ No newline at end of file
{"uuid": "4aa2f166-d781-4eae-beeb-ff29323ff16e", "befores": [{"name": "method", "status": "passed", "start": 1716272617174, "stop": 1716272617174}], "start": 1716272617174, "stop": 1716272617364}
\ No newline at end of file
{"uuid": "3f93f768-1bb3-4bbf-8a1f-749c8c88d71e", "befores": [{"name": "case_title", "status": "passed", "start": 1716272653520, "stop": 1716272653520}], "start": 1716272653520, "stop": 1716272653673}
\ No newline at end of file
{"uuid": "faeb0818-8f97-4937-a485-6ef0afec3a6f", "befores": [{"name": "module_name", "status": "passed", "start": 1716272598893, "stop": 1716272598893}], "start": 1716272598893, "stop": 1716272598993}
\ No newline at end of file
{"uuid": "44f5f624-8694-4935-b63b-b347a83bbda3", "befores": [{"name": "mime", "status": "passed", "start": 1716272633543, "stop": 1716272633543}], "start": 1716272633543, "stop": 1716272633730}
\ No newline at end of file
{"uuid": "bf70cb5a-5a1c-4fb4-a33f-21001816a485", "befores": [{"name": "module_name", "status": "passed", "start": 1716272644816, "stop": 1716272644816}], "start": 1716272644816, "stop": 1716272644879}
\ No newline at end of file
{"uuid": "4cb67617-0d70-4616-a5b3-06116727301c", "befores": [{"name": "mime", "status": "passed", "start": 1716272655685, "stop": 1716272655685}], "start": 1716272655685, "stop": 1716272655836}
\ No newline at end of file
{"uuid": "969a68cd-9c91-454e-9173-ee000003c5ed", "befores": [{"name": "update_key", "status": "passed", "start": 1716272599639, "stop": 1716272599639}], "start": 1716272599639, "stop": 1716272599738}
\ No newline at end of file
{"uuid": "be9dfa4f-c71e-4ffc-82db-14710daa749b", "befores": [{"name": "case_level", "status": "passed", "start": 1716272599527, "stop": 1716272599527}], "start": 1716272599527, "stop": 1716272599632}
\ No newline at end of file
{"uuid": "0295edc7-5053-4778-8480-58ffdaad9f24", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272598748, "stop": 1716272598748}], "start": 1716272598748, "stop": 1716272598812}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803332960567296"}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
\ No newline at end of file
{"uuid": "59eb740d-a9e5-476e-a4bf-d4d1e58705f8", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272640167, "stop": 1716272640167}], "start": 1716272640167, "stop": 1716272640349}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803333417746432"}
\ No newline at end of file
{"uuid": "ffbc9f60-dbcf-4c4a-9edf-f4826805c87f", "befores": [{"name": "mime", "status": "passed", "start": 1716272599418, "stop": 1716272599418}], "start": 1716272599418, "stop": 1716272599520}
\ No newline at end of file
{"uuid": "1c131b73-96c3-4e39-9811-c3838d718412", "befores": [{"name": "case_data", "status": "passed", "start": 1716272599212, "stop": 1716272599212}], "start": 1716272599212, "stop": 1716272599309}
\ No newline at end of file
{"uuid": "5d4c021b-9e49-4ed3-9452-4354c1c36d31", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272617174, "stop": 1716272617174}], "start": 1716272617174, "stop": 1716272617363}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803330750169088"}
\ No newline at end of file
{"uuid": "dd51f2d8-c0e9-4c6b-9cf3-afcd5da0f572", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272642365, "stop": 1716272642365}], "start": 1716272642365, "stop": 1716272642549}
\ No newline at end of file
{"uuid": "56e1deaa-05bb-49cd-a642-ef49bfb0dae4", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272619383, "stop": 1716272619383}], "start": 1716272619383, "stop": 1716272619574}
\ No newline at end of file
{"uuid": "7fa53bed-02d3-40bb-94d7-a77fa3a1a9d1", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272644883, "stop": 1716272644883}], "start": 1716272644883, "stop": 1716272644949}
\ No newline at end of file
{"uuid": "82c27095-f872-44fa-a3d7-8dcb64a1d173", "befores": [{"name": "url", "status": "passed", "start": 1716272621794, "stop": 1716272621794}], "start": 1716272621794, "stop": 1716272621850}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '删除维度成功' == '删除维度成功!'\n \n - 删除维度成功!\n ? -\n + 删除维度成功", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "e78097d6-f262-4f12-9f73-2ac425814e91-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '需要更新'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_data", "value": "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1716272621987, "stop": 1716272622080, "uuid": "28266b7a-99b9-4953-84e1-513ec1ec4e3f", "historyId": "347d2f73ed73495ba7ba72dbf723f253", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "86466924-07fe-456b-abe5-3278437aeb58", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272635751, "stop": 1716272635751}], "start": 1716272635751, "stop": 1716272635937}
\ No newline at end of file
{"uuid": "6f33881b-3ba5-4818-99ba-7887252cc716", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272644756, "stop": 1716272644756}], "start": 1716272644756, "stop": 1716272644810}
\ No newline at end of file
{"uuid": "4b665d89-e011-44a9-8dd0-b6e0c2ce99bf", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272610397, "stop": 1716272610397}], "start": 1716272610397, "stop": 1716272610535}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '刷新token成功' == None\n + where None = <built-in method get of dict object at 0x0000014F191A66C0>('message')\n + where <built-in method get of dict object at 0x0000014F191A66C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...}.get\n + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n + where <bound method Response.json of <Response [200]>> = <Response [200]>.json", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x0000014F191A66C0>('message')\nE + where <built-in method get of dict object at 0x0000014F191A66C0> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...}.get\nE + where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "04d15195-6da2-42ea-8d54-c79fd8fef927-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'刷新token'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'GET'"}, {"name": "url", "value": "'http://120.46.172.186:8080/refresh'"}, {"name": "mime", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新token成功'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272602024, "stop": 1716272602074, "uuid": "21b7eb43-6197-4901-b681-af5d31760ac2", "historyId": "1dcae5f805bddffd6ce19e14c8b3458b", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "5868a3bf-bf37-42d8-8c8a-a36a87357032", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272633543, "stop": 1716272633543}], "start": 1716272633543, "stop": 1716272633729}
\ No newline at end of file
{"uuid": "7de74905-5c37-4dd7-876f-c14063ccd5cf", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272626206, "stop": 1716272626206}], "start": 1716272626206, "stop": 1716272626350}
\ No newline at end of file
{"uuid": "b3452116-edad-43bc-9944-da07e9086885", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272621599, "stop": 1716272621599}], "start": 1716272621599, "stop": 1716272621788}
\ No newline at end of file
{"uuid": "b3c3cb24-ae52-4af3-abf9-defa2b468659", "befores": [{"name": "module_name", "status": "passed", "start": 1716272599639, "stop": 1716272599639}], "start": 1716272599639, "stop": 1716272599741}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803436442435584"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803445468577792"}
\ No newline at end of file
{"uuid": "e2826847-610f-44d6-bd44-164d01239ed8", "befores": [{"name": "module_name", "status": "passed", "start": 1716272626205, "stop": 1716272626206}], "start": 1716272626205, "stop": 1716272626353}
\ No newline at end of file
{"uuid": "68d1e34d-fa79-47f5-bd2b-6940516be03f", "befores": [{"name": "mime", "status": "passed", "start": 1716272599102, "stop": 1716272599102}], "start": 1716272599102, "stop": 1716272599206}
\ No newline at end of file
{"uuid": "57e0f106-9f43-4d7a-abec-7c75d4879b17", "befores": [{"name": "case_data", "status": "passed", "start": 1716272612749, "stop": 1716272612749}], "start": 1716272612749, "stop": 1716272612948}
\ No newline at end of file
{"uuid": "8232be02-1eb4-469e-9622-9809ff17c1ce", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272604095, "stop": 1716272604095}], "start": 1716272604095, "stop": 1716272604153}
\ No newline at end of file
{"uuid": "b36cc034-7a0b-4f19-85e2-1c9dbd65eb4e", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272621795, "stop": 1716272621795}], "start": 1716272621795, "stop": 1716272621848}
\ No newline at end of file
ERROR  root:test_bpm.py:68 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
\ No newline at end of file
{"uuid": "75d6f655-d27d-42c3-a936-82490f1e29b1", "befores": [{"name": "case_data", "status": "passed", "start": 1716272598997, "stop": 1716272598997}], "start": 1716272598997, "stop": 1716272599095}
\ No newline at end of file
{"uuid": "e2c7fd55-bad9-46c2-925a-1e7ae2a2b051", "befores": [{"name": "case_data", "status": "passed", "start": 1716272598893, "stop": 1716272598893}], "start": 1716272598893, "stop": 1716272598991}
\ No newline at end of file
{"uuid": "260803bb-3ab1-41f1-bc1c-06ed2c395ec4", "befores": [{"name": "method", "status": "passed", "start": 1716272632685, "stop": 1716272632685}], "start": 1716272632685, "stop": 1716272632839}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "9b29920b-f532-4d2f-b372-d982f346094b-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功'}"}, {"name": "sql_data", "value": "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "update_key", "value": "'demId'"}], "start": 1716272621599, "stop": 1716272621780, "uuid": "1dfe4690-98d0-4b43-ada0-749b2afe1376", "historyId": "487ae598a2b30a5ea2489bb3e5fa08a4", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "f673e798-8106-46a0-a6f7-2b4903334380", "befores": [{"name": "update_key", "status": "passed", "start": 1716272642365, "stop": 1716272642365}], "start": 1716272642365, "stop": 1716272642547}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '删除维度成功' == '删除维度成功!'\n \n - 删除维度成功!\n ? -\n + 删除维度成功", "trace": "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "a21c4cf1-3cd5-44f4-85d8-69f24a4ea36e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '需要更新'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_data", "value": "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1716272644958, "stop": 1716272645054, "uuid": "25f9cf42-df26-4ca4-b7b5-45802bfb99b1", "historyId": "f0f670cbfec7a9680aec241c756307a6", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "e292c057-1d58-406f-b082-e7b6c6e8c040", "befores": [{"name": "update_key", "status": "passed", "start": 1716272644958, "stop": 1716272644958}], "start": 1716272644958, "stop": 1716272645061}
\ No newline at end of file
{"uuid": "01e81227-4b5a-4d56-a4de-cd4c88eb2e5f", "befores": [{"name": "url", "status": "passed", "start": 1716272633396, "stop": 1716272633396}], "start": 1716272633396, "stop": 1716272633538}
\ No newline at end of file
{"uuid": "759cab96-5da4-4dca-9985-e58347f771e7", "befores": [{"name": "mime", "status": "passed", "start": 1716272621855, "stop": 1716272621855}], "start": 1716272621855, "stop": 1716272621915}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "270697f6-0292-4bff-95fc-8756213876bd-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_add_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功'}"}, {"name": "sql_data", "value": "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "update_key", "value": "'demId'"}], "start": 1716272610542, "stop": 1716272610722, "uuid": "08a93c9f-5e8c-45f4-9231-1a9a3a67d652", "historyId": "487ae598a2b30a5ea2489bb3e5fa08a4", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "6adc9d9d-6d40-4442-b251-26bd8de3f874", "befores": [{"name": "update_key", "status": "passed", "start": 1716272599315, "stop": 1716272599315}], "start": 1716272599315, "stop": 1716272599408}
\ No newline at end of file
{"uuid": "dfbd8b3d-63fd-4ba5-9c84-97a7e0cd914e", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272610397, "stop": 1716272610397}], "start": 1716272610397, "stop": 1716272610534}
\ No newline at end of file
{"uuid": "ce3853c7-088a-42ac-9b46-2a429904bacd", "befores": [{"name": "mime", "status": "passed", "start": 1716272632685, "stop": 1716272632685}], "start": 1716272632685, "stop": 1716272632839}
\ No newline at end of file
{"uuid": "e585d573-2f6d-4d3d-a0f5-f613bebe9c5a", "befores": [{"name": "api_name", "status": "passed", "start": 1716272599754, "stop": 1716272599754}], "start": 1716272599754, "stop": 1716272600010}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803532844318720"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803541883043840"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803550955323392"}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803560044380160"}
\ No newline at end of file
{"uuid": "53fe940d-ae52-48ae-80df-6af8d977e701", "befores": [{"name": "case_level", "status": "passed", "start": 1716272624097, "stop": 1716272624097}], "start": 1716272624097, "stop": 1716272624196}
\ No newline at end of file
{"uuid": "b4025f08-90f6-44d0-af5d-dea86e252a60", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272598828, "stop": 1716272598828}], "start": 1716272598828, "stop": 1716272598887}
\ No newline at end of file
{"uuid": "5a964d5d-bba5-4cba-8137-dfec6de63dad", "befores": [{"name": "method", "status": "passed", "start": 1716272642364, "stop": 1716272642364}], "start": 1716272642364, "stop": 1716272642550}
\ No newline at end of file
{"uuid": "4b45b374-7739-4eab-a483-36f233045d0f", "befores": [{"name": "case_title", "status": "passed", "start": 1716272599212, "stop": 1716272599212}], "start": 1716272599212, "stop": 1716272599311}
\ No newline at end of file
{"uuid": "3ae8e690-cbd0-4885-b444-6aeb24d3dfb0", "befores": [{"name": "url", "status": "passed", "start": 1716272617174, "stop": 1716272617174}], "start": 1716272617174, "stop": 1716272617364}
\ No newline at end of file
{"uuid": "0006bf61-6aad-4a34-ad39-7078ceff6435", "befores": [{"name": "api_name", "status": "passed", "start": 1716272617172, "stop": 1716272617172}], "start": 1716272617172, "stop": 1716272617365}
\ No newline at end of file
{"uuid": "ef1d2f7e-ed30-46c8-aeaa-16ef66892977", "befores": [{"name": "api_name", "status": "passed", "start": 1716272644882, "stop": 1716272644882}], "start": 1716272644882, "stop": 1716272644954}
\ No newline at end of file
{"uuid": "d8572fdb-d140-44bc-9f16-9ab8046f5ec4", "befores": [{"name": "url", "status": "passed", "start": 1716272599418, "stop": 1716272599418}], "start": 1716272599418, "stop": 1716272599521}
\ No newline at end of file
{"uuid": "4fd8b307-8dc1-49e9-9c14-118c8c677e58", "befores": [{"name": "mime", "status": "passed", "start": 1716272599315, "stop": 1716272599315}], "start": 1716272599315, "stop": 1716272599411}
\ No newline at end of file
{"uuid": "04e48809-c502-48e6-a380-56c3a697c9ee", "befores": [{"name": "case_title", "status": "passed", "start": 1716272640166, "stop": 1716272640166}], "start": 1716272640166, "stop": 1716272640352}
\ No newline at end of file
{"uuid": "17eba1a7-b6e7-47fa-8f73-2383643bd2b9", "befores": [{"name": "mime", "status": "passed", "start": 1716272599527, "stop": 1716272599527}], "start": 1716272599527, "stop": 1716272599631}
\ No newline at end of file
{"uuid": "33080d88-8497-4eb2-9487-ce35a236fce6", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272644883, "stop": 1716272644883}], "start": 1716272644883, "stop": 1716272644950}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功", "trace": "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "674782b5-95dd-437b-bbed-deec053e265f-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功'}"}, {"name": "sql_data", "value": "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "update_key", "value": "'demId'"}], "start": 1716272642365, "stop": 1716272642541, "uuid": "02a9a62e-8cd4-4d16-a6ad-5c9ae83ed3d4", "historyId": "526f1fd519b78b4955668d6cfd277048", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "ac0473d8-03ac-40d9-8762-a99f28224867", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272599527, "stop": 1716272599527}], "start": 1716272599527, "stop": 1716272599629}
\ No newline at end of file
{"uuid": "41ab22dc-1841-44c2-ba7f-24c5c195614e", "befores": [{"name": "api_name", "status": "passed", "start": 1716272644557, "stop": 1716272644557}], "start": 1716272644557, "stop": 1716272644751}
\ No newline at end of file
{"uuid": "98bc8393-d1de-4680-8022-e36888927a8a", "befores": [{"name": "case_title", "status": "passed", "start": 1716272621598, "stop": 1716272621598}], "start": 1716272621598, "stop": 1716272621789}
\ No newline at end of file
{"uuid": "ce3f5bd5-30c6-41cc-b780-a09288e9cc93", "befores": [{"name": "module_name", "status": "passed", "start": 1716272644755, "stop": 1716272644755}], "start": 1716272644755, "stop": 1716272644813}
\ No newline at end of file
{"uuid": "7d6a1585-dbef-4a0c-9b14-d264362699ed", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272610397, "stop": 1716272610397}], "start": 1716272610397, "stop": 1716272610535}
\ No newline at end of file
{"uuid": "94fc8ced-5e50-4d41-ba3a-5739d2b00748", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272633396, "stop": 1716272633396}], "start": 1716272633396, "stop": 1716272633537}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDAsImlhdCI6MTcxNjI3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDIsImlhdCI6MTcxNjI3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDQsImlhdCI6MTcxNjI3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
\ No newline at end of file
{"uuid": "7d428463-d5f3-435a-bdf5-d937f4fb1ac4", "befores": [{"name": "api_name", "status": "passed", "start": 1716272614966, "stop": 1716272614966}], "start": 1716272614966, "stop": 1716272615157}
\ No newline at end of file
{"uuid": "9bc1217f-4380-4434-9246-3471d4a3463d", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272612749, "stop": 1716272612749}], "start": 1716272612749, "stop": 1716272612939}
\ No newline at end of file
{"uuid": "ffe62b30-2b2c-4402-8dbc-31c0261256e5", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272602024, "stop": 1716272602024}], "start": 1716272602024, "stop": 1716272602081}
\ No newline at end of file
{"uuid": "5c9be1ae-2f77-474f-8e43-cf68690cb139", "befores": [{"name": "case_data", "status": "passed", "start": 1716272599315, "stop": 1716272599315}], "start": 1716272599315, "stop": 1716272599411}
\ No newline at end of file
{"uuid": "31d5a57f-95a8-456a-b563-0c30f7313942", "befores": [{"name": "case_data", "status": "passed", "start": 1716272598828, "stop": 1716272598828}], "start": 1716272598828, "stop": 1716272598887}
\ No newline at end of file
{"uuid": "c9bc1b4c-cc72-43ca-94bf-53391668f1ca", "befores": [{"name": "case_data", "status": "passed", "start": 1716272602023, "stop": 1716272602023}], "start": 1716272602023, "stop": 1716272602082}
\ No newline at end of file
{"uuid": "e69b4f5a-7273-4523-9d5b-5aa9a4b99ac7", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272628365, "stop": 1716272628365}], "start": 1716272628365, "stop": 1716272628511}
\ No newline at end of file
{"uuid": "02b21273-1bfa-43a2-b725-0706d2f732ef", "befores": [{"name": "method", "status": "passed", "start": 1716272608243, "stop": 1716272608243}], "start": 1716272608243, "stop": 1716272608305}
\ No newline at end of file
{"uuid": "f08a0b40-fccd-40f7-9f23-8b048421ed76", "befores": [{"name": "method", "status": "passed", "start": 1716272621986, "stop": 1716272621986}], "start": 1716272621986, "stop": 1716272622090}
\ No newline at end of file
{"uuid": "7a46243d-89b3-4af4-b62d-9b0db17243ab", "befores": [{"name": "url", "status": "passed", "start": 1716272614966, "stop": 1716272614966}], "start": 1716272614966, "stop": 1716272615156}
\ No newline at end of file
{"uuid": "59d27c2f-0f2c-4681-94a4-a5a2fddaaa62", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272651357, "stop": 1716272651357}], "start": 1716272651357, "stop": 1716272651500}
\ No newline at end of file
{"uuid": "b41b9abb-c69a-4ff5-bff8-c5c29d410c9e", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272628365, "stop": 1716272628365}], "start": 1716272628365, "stop": 1716272628509}
\ No newline at end of file
{"uuid": "f5f97929-7545-426d-adeb-c1512323daee", "befores": [{"name": "mime", "status": "passed", "start": 1716272621599, "stop": 1716272621599}], "start": 1716272621599, "stop": 1716272621788}
\ No newline at end of file
{"uuid": "d49a842e-2cff-4734-a0c4-ebeac6cd39d9", "befores": [{"name": "url", "status": "passed", "start": 1716272621855, "stop": 1716272621855}], "start": 1716272621855, "stop": 1716272621915}
\ No newline at end of file
{"uuid": "a7ce25e5-ce10-4cfe-93a7-04fc7b788e63", "befores": [{"name": "url", "status": "passed", "start": 1716272644557, "stop": 1716272644557}], "start": 1716272644557, "stop": 1716272644750}
\ No newline at end of file
{"uuid": "7cbf4bb9-f4b0-421a-b9c0-22e9f6cfc010", "befores": [{"name": "module_name", "status": "passed", "start": 1716272621986, "stop": 1716272621986}], "start": 1716272621986, "stop": 1716272622090}
\ No newline at end of file
{"uuid": "3936f81b-1554-4f9d-b3a0-d36ab08ceaab", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272632685, "stop": 1716272632685}], "start": 1716272632685, "stop": 1716272632829}
\ No newline at end of file
{"name": "正向用例-正确输入用户名和密码", "status": "passed", "attachments": [{"name": "log", "source": "76cb374f-acab-4726-b9aa-2a71d34cda4f-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "641690dc-554a-4a04-be37-4a9e72b43fbb-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "case_title", "value": "'正向用例-正确输入用户名和密码'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'MTIzNDU2'}"}, {"name": "expect_data", "value": "{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272598748, "stop": 1716272598811, "uuid": "de6e8ca1-3977-41fc-8592-037ad0e4f8ac", "historyId": "f7417fae3641334c555177156c21126d", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"name": "反向用例-用户名正确,密码为空", "status": "passed", "attachments": [{"name": "log", "source": "30644989-5621-4560-aa28-6e80eb68bc49-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "050f736a-4c14-4161-bff8-c02c54307aeb-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "case_title", "value": "'反向用例-用户名正确,密码为空'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': ''}"}, {"name": "expect_data", "value": "{'message': '账号或密码错误'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272598829, "stop": 1716272598886, "uuid": "040bef0e-8054-4a69-ad83-12b8493dc82d", "historyId": "4164dfc118ea6cc8eeb9ce3984609436", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "6a4f5536-cbe0-4339-86b2-0b1420c7d62a", "befores": [{"name": "module_name", "status": "passed", "start": 1716272621919, "stop": 1716272621920}], "start": 1716272621919, "stop": 1716272621984}
\ No newline at end of file
{"uuid": "0aa4ceea-83b3-4186-836e-fb453ff0e1d5", "befores": [{"name": "update_key", "status": "passed", "start": 1716272637956, "stop": 1716272637956}], "start": 1716272637956, "stop": 1716272638145}
\ No newline at end of file
{"uuid": "8fbbcfef-bf4a-49d4-b1ed-fa5328c76859", "befores": [{"name": "case_level", "status": "passed", "start": 1716272610541, "stop": 1716272610541}], "start": 1716272610541, "stop": 1716272610736}
\ No newline at end of file
{"uuid": "6bd58ecb-2dfa-49f3-a6f3-ac9373934bcf", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272626206, "stop": 1716272626206}], "start": 1716272626206, "stop": 1716272626350}
\ No newline at end of file
{"uuid": "ee0e5bfc-0650-4221-a206-42cac0cde588", "befores": [{"name": "case_title", "status": "passed", "start": 1716272599417, "stop": 1716272599417}], "start": 1716272599417, "stop": 1716272599523}
\ No newline at end of file
{"uuid": "ce7f642a-5eba-4af1-ab77-0f61c4bc4770", "befores": [{"name": "method", "status": "passed", "start": 1716272610541, "stop": 1716272610541}], "start": 1716272610541, "stop": 1716272610735}
\ No newline at end of file
{"uuid": "7770c3f2-7735-4c3d-80fa-4959389efe20", "befores": [{"name": "module_name", "status": "passed", "start": 1716272644957, "stop": 1716272644958}], "start": 1716272644957, "stop": 1716272645067}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
{"uuid": "4f59778f-ce0c-4773-9314-e4b04ab6420a", "befores": [{"name": "update_key", "status": "passed", "start": 1716272599418, "stop": 1716272599418}], "start": 1716272599418, "stop": 1716272599518}
\ No newline at end of file
{"uuid": "7b96c188-8c3c-4096-bfdf-9316bfa82752", "befores": [{"name": "case_title", "status": "passed", "start": 1716272599102, "stop": 1716272599102}], "start": 1716272599102, "stop": 1716272599207}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179923A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "0453ac8d-bc38-4c0b-bd86-e5bd9e1535a5-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功'}"}, {"name": "sql_data", "value": "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "update_key", "value": "'demId'"}], "start": 1716272612750, "stop": 1716272612931, "uuid": "9714c1e1-0859-468b-be86-852340c61f79", "historyId": "487ae598a2b30a5ea2489bb3e5fa08a4", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "7be3fc08-8e0a-49f4-bf05-80b1fde18d9b", "befores": [{"name": "api_name", "status": "passed", "start": 1716272624097, "stop": 1716272624097}], "start": 1716272624097, "stop": 1716272624197}
\ No newline at end of file
{"uuid": "b9794b91-e61b-4096-a046-4cf84b69feb3", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272640167, "stop": 1716272640167}], "start": 1716272640167, "stop": 1716272640349}
\ No newline at end of file
{"uuid": "ec8d097f-12a8-46b4-a629-037ccaf2291b", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272598998, "stop": 1716272598998}], "start": 1716272598998, "stop": 1716272599094}
\ No newline at end of file
{"uuid": "22469b1a-e05e-47c6-a819-a6e6382bc48f", "befores": [{"name": "case_data", "status": "passed", "start": 1716272624098, "stop": 1716272624098}], "start": 1716272624098, "stop": 1716272624194}
\ No newline at end of file
{"uuid": "b883cc73-5c67-4822-a813-f7852a97b68f", "befores": [{"name": "method", "status": "passed", "start": 1716272630525, "stop": 1716272630525}], "start": 1716272630525, "stop": 1716272630670}
\ No newline at end of file
{"uuid": "fa6946f5-5904-4bde-8ec3-bed30e92318e", "befores": [{"name": "mime", "status": "passed", "start": 1716272612749, "stop": 1716272612749}], "start": 1716272612749, "stop": 1716272612949}
\ No newline at end of file
{"uuid": "64312298-0f39-48e9-a811-0a24f76d4aab", "befores": [{"name": "module_name", "status": "passed", "start": 1716272602023, "stop": 1716272602023}], "start": 1716272602023, "stop": 1716272602085}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功", "trace": "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "01e18fd9-42f9-4bcd-974a-5d536b223172-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1792803475629817856'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_data", "value": "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1716272649197, "stop": 1716272649328, "uuid": "5bd4b2f2-3756-447e-85d2-f91d79c74336", "historyId": "f0f670cbfec7a9680aec241c756307a6", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "2b6dc004-45ec-4af7-96e2-5c3011631695", "befores": [{"name": "method", "status": "passed", "start": 1716272644882, "stop": 1716272644882}], "start": 1716272644882, "stop": 1716272644952}
\ No newline at end of file
{"uuid": "6d0f11d5-70e3-43df-8253-c35edd0d447b", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272655685, "stop": 1716272655685}], "start": 1716272655685, "stop": 1716272655834}
\ No newline at end of file
{"uuid": "d8602e03-94e8-46de-bb67-d0a59a7c42c4", "befores": [{"name": "api_name", "status": "passed", "start": 1716272599102, "stop": 1716272599102}], "start": 1716272599102, "stop": 1716272599208}
\ No newline at end of file
{"uuid": "be5b1b44-54c5-4b9c-a641-e4936172158d", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272602024, "stop": 1716272602024}], "start": 1716272602024, "stop": 1716272602081}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功", "trace": "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F1903D190>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803475629817856'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "4f123ded-0b4f-415d-961e-3f0c77fa19a2-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1792803475629817856'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_data", "value": "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1716272655685, "stop": 1716272655817, "uuid": "e282fa20-5a3f-4279-9225-bad545b3bb44", "historyId": "f0f670cbfec7a9680aec241c756307a6", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "71126275-c722-46b1-b844-6ad2787ed1f6", "befores": [{"name": "update_key", "status": "passed", "start": 1716272598893, "stop": 1716272598893}], "start": 1716272598893, "stop": 1716272598989}
\ No newline at end of file
{"uuid": "cc1f6160-7dad-410d-8b2d-08c977668641", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272621987, "stop": 1716272621987}], "start": 1716272621987, "stop": 1716272622087}
\ No newline at end of file
{"uuid": "080f2b0c-fac9-408b-9715-2c5ca216cd8a", "befores": [{"name": "method", "status": "passed", "start": 1716272633543, "stop": 1716272633543}], "start": 1716272633543, "stop": 1716272633730}
\ No newline at end of file
{"uuid": "8eb49550-8808-4801-8eba-1f659bec8fc8", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272644958, "stop": 1716272644958}], "start": 1716272644958, "stop": 1716272645062}
\ No newline at end of file
{"uuid": "9baff91a-1ea3-4db8-b36b-81b631bf33cd", "befores": [{"name": "url", "status": "passed", "start": 1716272651357, "stop": 1716272651357}], "start": 1716272651357, "stop": 1716272651502}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "1a5a808f-02c9-421a-8759-a657843dcdd6-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "4fc57b0e-88e2-4150-a1a0-afa2c27af05c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'添加维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'pOst'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}"}, {"name": "expect_data", "value": "{'message': '添加维度成功!'}"}, {"name": "sql_data", "value": "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'delete'"}, {"name": "update_key", "value": "None"}], "start": 1716272610398, "stop": 1716272610534, "uuid": "a2af0d1d-aaf2-479d-85f6-b3a86b65fa84", "historyId": "435ba53246b35b4af7286c32ad75fe23", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "4bb5e7bd-563f-4f23-888a-e6dcbaf98caf", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272633543, "stop": 1716272633543}], "start": 1716272633543, "stop": 1716272633729}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
{"uuid": "fe9eef79-0e64-42ae-b5ae-73ce4cbd32bd", "befores": [{"name": "case_data", "status": "passed", "start": 1716272610325, "stop": 1716272610325}], "start": 1716272610325, "stop": 1716272610392}
\ No newline at end of file
{"uuid": "5b0b5785-4994-4e52-abdc-a0cecb6fb3a7", "befores": [{"name": "case_data", "status": "passed", "start": 1716272599527, "stop": 1716272599527}], "start": 1716272599527, "stop": 1716272599631}
\ No newline at end of file
{"uuid": "24b064d8-574a-4e84-8d81-6dc3d7fc22a2", "befores": [{"name": "module_name", "status": "passed", "start": 1716272599417, "stop": 1716272599417}], "start": 1716272599417, "stop": 1716272599523}
\ No newline at end of file
{"uuid": "fe41d33b-ad9e-4baf-8284-f374778500ee", "befores": [{"name": "api_name", "status": "passed", "start": 1716272612749, "stop": 1716272612749}], "start": 1716272612749, "stop": 1716272612951}
\ No newline at end of file
{"uuid": "50fa53ab-ca33-4d06-9cab-cef764c610b5", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272621856, "stop": 1716272621856}], "start": 1716272621856, "stop": 1716272621913}
\ No newline at end of file
{"uuid": "d55adf90-b637-4d9c-8fb1-35bc68e0f11c", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272628365, "stop": 1716272628365}], "start": 1716272628365, "stop": 1716272628509}
\ No newline at end of file
{"uuid": "362d65da-0de2-4771-9b2f-e227e3a221bb", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272621795, "stop": 1716272621795}], "start": 1716272621795, "stop": 1716272621849}
\ No newline at end of file
{"uuid": "63c3a822-e0aa-4c5c-beea-ca433cb8ae08", "befores": [{"name": "module_name", "status": "passed", "start": 1716272640166, "stop": 1716272640166}], "start": 1716272640166, "stop": 1716272640352}
\ No newline at end of file
{"uuid": "e16a54c7-78bf-44b0-be69-1d3fee75966f", "befores": [{"name": "update_key", "status": "passed", "start": 1716272604095, "stop": 1716272604095}], "start": 1716272604095, "stop": 1716272604153}
\ No newline at end of file
{"uuid": "eb58e06b-b5b0-44dc-bfb0-cedfced18bbf", "befores": [{"name": "case_title", "status": "passed", "start": 1716272644557, "stop": 1716272644557}], "start": 1716272644557, "stop": 1716272644751}
\ No newline at end of file
{"uuid": "10807cfe-c144-4fd5-87ef-4d557f95121f", "befores": [{"name": "module_name", "status": "passed", "start": 1716272624097, "stop": 1716272624097}], "start": 1716272624097, "stop": 1716272624197}
\ No newline at end of file
{"uuid": "42d54d40-0096-4734-b013-02354556fdb4", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272599527, "stop": 1716272599527}], "start": 1716272599527, "stop": 1716272599630}
\ No newline at end of file
{"uuid": "fe853f73-a0a2-43cb-b55d-c48717779436", "befores": [{"name": "api_name", "status": "passed", "start": 1716272642364, "stop": 1716272642364}], "start": 1716272642364, "stop": 1716272642551}
\ No newline at end of file
{"uuid": "1650c420-00ee-4908-b92e-6e37146a8ce8", "befores": [{"name": "method", "status": "passed", "start": 1716272655684, "stop": 1716272655684}], "start": 1716272655684, "stop": 1716272655836}
\ No newline at end of file
{"uuid": "dd9539f0-93b9-45fe-b54f-dfb86ad5bca9", "befores": [{"name": "module_name", "status": "passed", "start": 1716272610397, "stop": 1716272610397}], "start": 1716272610397, "stop": 1716272610538}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "c9eae618-f036-47fc-b558-11e55e37943b-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "63ed9fbf-6772-47c7-bc71-cc7c376a16d9-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'添加维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'pOst'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}"}, {"name": "expect_data", "value": "{'message': '添加维度成功!'}"}, {"name": "sql_data", "value": "'delete FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'delete'"}, {"name": "update_key", "value": "None"}], "start": 1716272633398, "stop": 1716272633535, "uuid": "3a61f8e2-29b1-46e9-99ff-83ea06718f5d", "historyId": "aab084bf6a05ec45b335f51ecc264b7e", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "19f2675a-9b65-49e2-bca8-b6e9ddf43dcd", "befores": [{"name": "case_level", "status": "passed", "start": 1716272644816, "stop": 1716272644816}], "start": 1716272644816, "stop": 1716272644877}
\ No newline at end of file
{"uuid": "018cfdf6-1685-434e-a34f-0fc24c2f6c8a", "befores": [{"name": "module_name", "status": "passed", "start": 1716272621794, "stop": 1716272621794}], "start": 1716272621794, "stop": 1716272621852}
\ No newline at end of file
{"uuid": "082bc456-60db-4aa8-aae1-852e67da81fb", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272644756, "stop": 1716272644756}], "start": 1716272644756, "stop": 1716272644811}
\ No newline at end of file
{"uuid": "c3e4620d-2ee1-4f83-8ec9-cabbc0406cdc", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272630526, "stop": 1716272630526}], "start": 1716272630526, "stop": 1716272630668}
\ No newline at end of file
{"uuid": "df74fb72-f1cc-43cd-904a-5a5e3b8f9a59", "befores": [{"name": "mime", "status": "passed", "start": 1716272610325, "stop": 1716272610325}], "start": 1716272610325, "stop": 1716272610392}
\ No newline at end of file
{"uuid": "502166e1-14e4-4a30-b5d1-5444c14c3e10", "befores": [{"name": "update_key", "status": "passed", "start": 1716272621599, "stop": 1716272621599}], "start": 1716272621599, "stop": 1716272621787}
\ No newline at end of file
{"uuid": "99879375-d4f3-4d66-a1a8-d293f74f5103", "befores": [{"name": "url", "status": "passed", "start": 1716272612749, "stop": 1716272612749}], "start": 1716272612749, "stop": 1716272612949}
\ No newline at end of file
{"uuid": "74c1e657-aea4-4519-b0ce-722e3ce6b7df", "befores": [{"name": "module_name", "status": "passed", "start": 1716272621598, "stop": 1716272621598}], "start": 1716272621598, "stop": 1716272621791}
\ No newline at end of file
{"uuid": "20a04cbe-694e-40b2-9b73-3efb1b5adbd8", "befores": [{"name": "api_name", "status": "passed", "start": 1716272599639, "stop": 1716272599639}], "start": 1716272599639, "stop": 1716272599740}
\ No newline at end of file
{"uuid": "0430f003-fb9d-4a4b-a984-1509dd072829", "befores": [{"name": "case_data", "status": "passed", "start": 1716272644882, "stop": 1716272644882}], "start": 1716272644882, "stop": 1716272644950}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "32307c09-b496-435f-bba5-c2798db7be07-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1792803379156631552'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_data", "value": "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1716272624099, "stop": 1716272624187, "uuid": "47742522-0ccb-41e1-bbc6-814171df56f5", "historyId": "347d2f73ed73495ba7ba72dbf723f253", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
{"uuid": "91c035d7-f6f1-4bd9-b799-c5f904612d77", "befores": [{"name": "expect_data", "status": "passed", "start": 1716272632685, "stop": 1716272632685}], "start": 1716272632685, "stop": 1716272632830}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '添加组织成功' == '添加组织成功!'\n \n - 添加组织成功!\n ? -\n + 添加组织成功", "trace": "self = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_mirZhang\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_mirZhang.test_bpm.TestBPM object at 0x0000014F17992C70>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1923AE50>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1912F2B0>, module_name = '组织管理', api_name = '添加组织', case_title = '正向用例'\ncase_level = '高', method = 'POST', url = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', mime = 'json'\ncase_data = {'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect_data = {'message': '添加组织成功'}\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";', 'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'}\nsql_type = 'select|delete', update_key = 'demId'\n\n @allure.epic(\"BPM系统-老张\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_mirZhang\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "0c5a26e3-db88-4d6e-b01a-857990738541-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'高'"}, {"name": "method", "value": "'POST'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功'}"}, {"name": "sql_data", "value": "{'select': 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_add_org\";'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "update_key", "value": "'demId'"}], "start": 1716272640167, "stop": 1716272640342, "uuid": "894a9818-f702-402c-855f-0eeb3a6d13aa", "historyId": "526f1fd519b78b4955668d6cfd277048", "testCaseId": "8c3ca9784f7a20f46f527b41c7204e5a", "fullName": "test_case.test_mirZhang.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-老张"}, {"name": "parentSuite", "value": "test_case.test_mirZhang"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_mirZhang.test_bpm"}]}
\ No newline at end of file
{"uuid": "1c2171cd-6ca4-4a38-bb0c-e5bfbe1d829e", "befores": [{"name": "case_title", "status": "passed", "start": 1716272610325, "stop": 1716272610325}], "start": 1716272610325, "stop": 1716272610393}
\ No newline at end of file
{"uuid": "ed97ad3d-c51a-429f-9a80-149fb10976fb", "befores": [{"name": "case_title", "status": "passed", "start": 1716272624097, "stop": 1716272624097}], "start": 1716272624097, "stop": 1716272624196}
\ No newline at end of file
{"uuid": "e197eff1-4a8f-40ee-aa65-bf4d88ff01a6", "befores": [{"name": "case_level", "status": "passed", "start": 1716272602023, "stop": 1716272602023}], "start": 1716272602023, "stop": 1716272602083}
\ No newline at end of file
{"uuid": "0af6cbbf-4031-4cce-95e4-6c4d9de2d308", "befores": [{"name": "update_key", "status": "passed", "start": 1716272644756, "stop": 1716272644756}], "start": 1716272644756, "stop": 1716272644809}
\ No newline at end of file
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
ERROR  root:test_bpm.py:65 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
\ No newline at end of file
{"uuid": "b693009b-47d7-4f9d-889e-f744ba4dfcb5", "befores": [{"name": "url", "status": "passed", "start": 1716272630525, "stop": 1716272630525}], "start": 1716272630525, "stop": 1716272630670}
\ No newline at end of file
{"uuid": "293e56bc-d430-49ee-a203-c5b526996962", "befores": [{"name": "method", "status": "passed", "start": 1716272637955, "stop": 1716272637955}], "start": 1716272637955, "stop": 1716272638149}
\ No newline at end of file
{"uuid": "45459205-fc30-4666-8fd7-09dff3ecd489", "befores": [{"name": "sql_data", "status": "passed", "start": 1716272621795, "stop": 1716272621795}], "start": 1716272621795, "stop": 1716272621849}
\ No newline at end of file
{"uuid": "4e945fce-33b8-4941-88a7-d31dc292ff64", "befores": [{"name": "url", "status": "passed", "start": 1716272640166, "stop": 1716272640166}], "start": 1716272640166, "stop": 1716272640350}
\ No newline at end of file
{"uuid": "b9cc96e8-bdb3-41e0-8a4d-dc032a57a66e", "befores": [{"name": "sql_type", "status": "passed", "start": 1716272626206, "stop": 1716272626206}], "start": 1716272626206, "stop": 1716272626349}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '删除维度成功' == ''\n \n + 删除维度成功", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except AssertionError as e:\n logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n> raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F179926A0>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '维度管理', api_name = '根据维度编码删除维度', case_title = '正向用例'\ncase_level = '中', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ncase_data = {'ids': '1792803379156631552'}, expect_data = {'message': '删除维度成功'}\nsql_data = 'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";', sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM系统-demo\") # 测试系统的名称\n # @allure.feature(\"模块名称\") # 模块名称\n # @allure.story(\"接口名称\") # 接口\n # @allure.title(\"标题名称\") # 用例标题\n # @allure.severity(\"用例的等级\") # 用例等级\n @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n # 给allure输出的报告添加内容\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(case_level)\n \n # 判断sql语句类型是否为select\n if sql_type == \"select\":\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 判断sql语句的类型是否为delete\n elif sql_type == \"delete\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data)\n # 将数据库中的数据删除完之后,再发送请求\n \n # 判断sql语句类型是否为select|delete或者为delete|select\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete_func方法执行删除的sql语句\n db_fix.delete_func(sql_data[\"delete\"])\n # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n select_result = db_fix.select_func(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n # 将更新之后的用例数据发送给服务器。\n \n # 使用RequestsMethod对象发送请求\n res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功' == ''\nE \nE + 删除维度成功\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "c555e677-f3d6-401b-a176-e1551e7f9383-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'DELETE'"}, {"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '1792803379156631552'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_data", "value": "'select ID_ FROM uc_demension WHERE `CODE_`=\"api_auto_test_add_dem\";'"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1716272626207, "stop": 1716272626341, "uuid": "9813414c-29d3-4f07-bd19-9d6b147a1c80", "historyId": "347d2f73ed73495ba7ba72dbf723f253", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
2024-05-21 10:30:20,930 - ERROR: 执行的功能为:get_host, 功能的描述为:根据key获取域名, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\common\read_ini.py, 所在行为:47, 错误为:No option 'host' in section: 'host'
2024-05-21 10:30:20,930 - ERROR: 执行的功能为:__init__, 功能的描述为:关联token, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\requests_method\requsts_method.py, 所在行为:19, 错误为:No option 'host' in section: 'host'
2024-05-21 10:30:23,470 - ERROR: 执行的功能为:get_host, 功能的描述为:根据key获取域名, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\common\read_ini.py, 所在行为:47, 错误为:No option 'host' in section: 'host'
2024-05-21 10:30:23,470 - ERROR: 执行的功能为:__init__, 功能的描述为:关联token, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\requests_method\requsts_method.py, 所在行为:19, 错误为:No option 'host' in section: 'host'
2024-05-21 10:31:10,919 - ERROR: 执行的功能为:get_host, 功能的描述为:根据key获取域名, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\common\read_ini.py, 所在行为:47, 错误为:No option 'host' in section: 'host'
2024-05-21 10:31:10,920 - ERROR: 执行的功能为:__init__, 功能的描述为:关联token, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\requests_method\requsts_method.py, 所在行为:19, 错误为:No option 'host' in section: 'host'
2024-05-21 10:32:30,922 - ERROR: 执行的功能为:get_host, 功能的描述为:根据key获取域名, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\common\read_ini.py, 所在行为:47, 错误为:No option 'host' in section: 'host'
2024-05-21 10:32:30,922 - ERROR: 执行的功能为:__init__, 功能的描述为:关联token, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\requests_method\requsts_method.py, 所在行为:19, 错误为:No option 'host' in section: 'host'
2024-05-21 10:33:42,581 - ERROR: 执行的功能为:get_host, 功能的描述为:根据key获取域名, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\common\read_ini.py, 所在行为:47, 错误为:No option 'host' in section: 'host'
2024-05-21 10:33:42,581 - ERROR: 执行的功能为:__init__, 功能的描述为:关联token, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\requests_method\requsts_method.py, 所在行为:19, 错误为:No option 'host' in section: 'host'
2024-05-21 10:34:39,696 - ERROR: 执行的功能为:get_host, 功能的描述为:根据key获取域名, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\common\read_ini.py, 所在行为:47, 错误为:No option 'host' in section: 'host'
2024-05-21 10:34:39,696 - ERROR: 执行的功能为:__init__, 功能的描述为:关联token, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\requests_method\requsts_method.py, 所在行为:19, 错误为:No option 'host' in section: 'host'
2024-05-21 10:35:11,634 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDUzMTAsImlhdCI6MTcxNjI1ODkxMH0.5u0rTej2HmojLvnUkun2ASqa0QvdEB9NpvypjCI1m28MAZ8CqZyqH1ENzA9ErJPKL01PL53BOGncf61Q8uwh_g","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 10:35:11,689 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745922808004608"}
2024-05-21 10:35:11,783 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745923198074880"}
2024-05-21 10:35:11,880 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745923617505280"}
2024-05-21 10:35:11,980 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745924032741376"}
2024-05-21 10:35:12,077 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745924435394560"}
2024-05-21 10:35:12,171 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745924838047744"}
2024-05-21 10:35:12,264 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745925223923712"}
2024-05-21 10:35:12,355 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745925609799680"}
2024-05-21 10:35:12,448 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745925995675648"}
2024-05-21 10:35:12,545 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDUzMTEsImlhdCI6MTcxNjI1ODkxMX0.8CMCn-fqoMUfU2FpEx4oDkq7YOaXMSC9AFVf1LVQ7MzCx6D83bC2BXsL7U6v923vBNV6loA-0Cm6UFdK5oYb9A","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 10:35:12,828 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 10:35:13,013 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792745927572733952', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 10:35:13,079 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 10:35:13,139 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 10:35:13,200 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 10:35:13,297 - ERROR: 断言失败, 用例数据为{'ids': '1792745927572733952'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 10:35:21,521 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDUzMjAsImlhdCI6MTcxNjI1ODkyMH0.4v4GE0-5S74CgQoMp7OIproBPhDJjMkggdblp05FHdNf5BSfzSMgNoLYcOszv-pSPvG0hOzNkDhSx_PazpmxQA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 10:35:21,577 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745964285476864"}
2024-05-21 10:35:21,676 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745964696518656"}
2024-05-21 10:35:21,770 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745965099171840"}
2024-05-21 10:35:21,866 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745965497630720"}
2024-05-21 10:35:21,961 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745965896089600"}
2024-05-21 10:35:22,055 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745966294548480"}
2024-05-21 10:35:22,149 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745966680424448"}
2024-05-21 10:35:22,243 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745967074689024"}
2024-05-21 10:35:22,340 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792745967485730816"}
2024-05-21 10:35:22,439 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDUzMjEsImlhdCI6MTcxNjI1ODkyMX0._8q0my12UrtqOQUxVEMaBcM2w-eb3YwphhFUIFVbXZb9pMFnW28X-9s2RfEAw0QeDa6MtEvX4vclXWSjpTppow","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 10:35:22,732 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 10:35:22,916 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792745969113120768', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 10:35:22,981 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 10:35:23,042 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 10:35:23,102 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 10:35:23,198 - ERROR: 断言失败, 用例数据为{'ids': '1792745969113120768'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 10:35:23,932 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 10:35:24,120 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792745974142091264', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 10:35:24,187 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 10:35:24,252 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 10:35:24,314 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 10:35:24,413 - ERROR: 断言失败, 用例数据为{'ids': '1792745974142091264'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 10:54:37,339 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDY0NzUsImlhdCI6MTcxNjI2MDA3NX0.HtvUoySbLuQbnovDfIUam-w7VCNN2ufyGA2adOvfB-Jnyb7hrYyVExIw6osF9Ce4Dfx_WWp5ruT7vg2Yg_2j8Q","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 10:54:37,396 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792750812087205888"}
2024-05-21 10:54:37,503 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792750812527607808"}
2024-05-21 10:54:37,605 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792750812947038208"}
2024-05-21 10:54:37,701 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792750813362274304"}
2024-05-21 10:54:37,802 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792750813781704704"}
2024-05-21 10:54:37,899 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792750814180163584"}
2024-05-21 10:54:37,994 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792750814591205376"}
2024-05-21 10:54:38,100 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792750815023218688"}
2024-05-21 10:54:38,202 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792750815463620608"}
2024-05-21 10:54:38,301 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDY0NzYsImlhdCI6MTcxNjI2MDA3Nn0.Q66FDovFDt1w9TwJnTyOjMyo2lq5tRVHVuDiV2_QU_VAcFA5Oon0GZtGgg1Q2keA_ZoujWstXt17s-uCy7ikfA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 10:54:38,607 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 10:54:38,797 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792750817103593472', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 10:54:38,861 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 10:54:38,931 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 10:54:38,994 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 10:54:39,099 - ERROR: 断言失败, 用例数据为{'ids': '1792750817103593472'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 10:54:39,831 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 10:54:40,022 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792750822266781696', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 10:54:40,087 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 10:54:40,152 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 10:54:40,212 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 10:54:40,311 - ERROR: 断言失败, 用例数据为{'ids': '1792750822266781696'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 10:55:26,944 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDY1MjUsImlhdCI6MTcxNjI2MDEyNX0.dqySn-Ve9_K3AdtGR1JDBsFFTHRhYsp89CEMAKikpqIN67Hq-lpzWVDcdi367GOqN32H0FTOhdlUWCsO0xjMpQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 10:55:27,003 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792751020141461504"}
2024-05-21 10:55:27,100 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792751020556697600"}
2024-05-21 10:55:27,199 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792751020963545088"}
2024-05-21 10:55:27,301 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792751021391364096"}
2024-05-21 10:55:27,401 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792751021806600192"}
2024-05-21 10:55:27,498 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792751022217641984"}
2024-05-21 10:55:27,589 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792751022611906560"}
2024-05-21 10:55:27,682 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792751022997782528"}
2024-05-21 10:55:27,782 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792751023413018624"}
2024-05-21 10:55:27,875 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDY1MjYsImlhdCI6MTcxNjI2MDEyNn0.QCOWVsglWcMuY49aNyN_a1j0R-3i0vKkSQAKCQ0ARJmepxx1XDWPtuMCmBXscMdfuLg_ALpARX6-miLuh6SBdg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 10:55:28,160 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 10:55:28,339 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792751024981688320', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 10:55:28,404 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 10:55:28,464 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 10:55:28,525 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 10:55:28,629 - ERROR: 断言失败, 用例数据为{'ids': '1792751024981688320'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 10:55:29,364 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 10:55:29,553 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792751030027436032', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 10:55:29,619 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 10:55:29,677 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 10:55:29,745 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 10:55:29,852 - ERROR: 断言失败, 用例数据为{'ids': '1792751030027436032'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 11:02:21,959 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDY5NDAsImlhdCI6MTcxNjI2MDU0MH0.Z7ReDfDYAKCcoQk93F00FtQwpGogvClqUFezP2o7qht6KfoYtI7Q9glNbtW0otReIGpZu7g0l46NGdOHXa3xrQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 11:02:22,017 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792752760819564544"}
2024-05-21 11:02:22,113 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792752761218023424"}
2024-05-21 11:02:22,207 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792752761616482304"}
2024-05-21 11:02:22,303 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792752762027524096"}
2024-05-21 11:02:22,403 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792752762430177280"}
2024-05-21 11:02:22,503 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792752762853801984"}
2024-05-21 11:02:22,601 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792752763260649472"}
2024-05-21 11:02:22,693 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792752763654914048"}
2024-05-21 11:02:22,788 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792752764053372928"}
2024-05-21 11:02:22,889 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDY5NDEsImlhdCI6MTcxNjI2MDU0MX0.LvNiUWfCfip5UCPSIrMX5lAhLms3h6gfUg3Y_pT0r0l8BU5bAn_Lthnj35Tpmsid2e62goMekohvh3FdAPYdpA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 11:02:23,189 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 11:02:23,379 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792752765714317312', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 11:02:23,444 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 11:02:23,505 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 11:02:23,565 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 11:02:23,663 - ERROR: 断言失败, 用例数据为{'ids': '1792752765714317312'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 11:02:24,376 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 11:02:24,556 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792752770697150464', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 11:02:24,618 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 11:02:24,680 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 11:02:24,742 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 11:02:24,844 - ERROR: 断言失败, 用例数据为{'ids': '1792752770697150464'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 11:06:24,944 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDcxODMsImlhdCI6MTcxNjI2MDc4M30.2-53hz1lrM2JF_0qqGXp5xAZdb-dorJKWB32jYYseHpWqDLvZ0mxZhumFpQ9lazUxLKEGXrym1iX-wktyp30QA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 11:06:25,004 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792753779968327680"}
2024-05-21 11:06:25,101 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792753780370980864"}
2024-05-21 11:06:25,201 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792753780794605568"}
2024-05-21 11:06:25,299 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792753781209841664"}
2024-05-21 11:06:25,397 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792753781616689152"}
2024-05-21 11:06:25,498 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792753782031925248"}
2024-05-21 11:06:25,596 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792753782451355648"}
2024-05-21 11:06:25,692 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792753782849814528"}
2024-05-21 11:06:25,792 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792753783260856320"}
2024-05-21 11:06:25,889 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDcxODQsImlhdCI6MTcxNjI2MDc4NH0.Ko0JQ-rgabeXiVInusxg0-FIevuGWr4GKjaFHRJf-h52XBj2V8ghpVGCW6i43xTujUVHg1FGzzPJq3MIXNhAFg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 11:06:26,183 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 11:06:26,368 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792753784875663360', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 11:06:26,433 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 11:06:26,498 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 11:06:26,557 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 11:06:26,654 - ERROR: 断言失败, 用例数据为{'ids': '1792753784875663360'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 11:06:27,370 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 11:06:27,553 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792753789879468032', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 11:06:27,618 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 11:06:27,680 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 11:06:27,743 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 11:06:27,846 - ERROR: 断言失败, 用例数据为{'ids': '1792753789879468032'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 11:26:08,248 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDgzNjYsImlhdCI6MTcxNjI2MTk2Nn0.8tnYzGcorN6naTyt-PNhjF4gOTfenvcnEAT9oW6KaC1FQUXJCiOzoYshR7VcxP-VZXz0FwjQRGvqMcoydYyaCA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 11:26:08,308 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792758743037919232"}
2024-05-21 11:26:08,406 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792758743453155328"}
2024-05-21 11:26:08,503 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792758743864197120"}
2024-05-21 11:26:08,601 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792758744275238912"}
2024-05-21 11:26:08,697 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792758744677892096"}
2024-05-21 11:26:08,796 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792758745088933888"}
2024-05-21 11:26:08,893 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792758745495781376"}
2024-05-21 11:26:08,990 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792758745902628864"}
2024-05-21 11:26:09,084 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792758746301087744"}
2024-05-21 11:26:09,180 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDgzNjcsImlhdCI6MTcxNjI2MTk2N30.KKDNPLAEIvpJHlbvj3UEik6nGEsSgI_PLNgm4rhvRqOEJCr7JppQk_jZ1yfizU13pEKnZNdlnkZ0EAFwClKlyA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 11:26:09,470 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 11:26:09,650 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792758747890728960', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 11:26:09,721 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 11:26:09,783 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 11:26:09,849 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 11:26:09,946 - ERROR: 断言失败, 用例数据为{'ids': '1792758747890728960'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 11:26:10,645 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 11:26:10,833 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792758752806453248', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 11:26:10,903 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 11:26:10,966 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 11:26:11,027 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 11:26:11,124 - ERROR: 断言失败, 用例数据为{'ids': '1792758752806453248'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 11:33:39,757 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDg4MTgsImlhdCI6MTcxNjI2MjQxOH0.H4X8AUzXwe1PcEMV3u87iMQN_1gSAcdTJVr4w_NYfJr0slC1bys5-BYziuT2BeEGN-itfJGJ9qxxDrqYPDSllQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 11:33:39,823 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792760636820701184"}
2024-05-21 11:33:39,924 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792760637231742976"}
2024-05-21 11:33:40,028 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792760637672144896"}
2024-05-21 11:33:40,131 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792760638104158208"}
2024-05-21 11:33:40,231 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792760638523588608"}
2024-05-21 11:33:40,336 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792760638959796224"}
2024-05-21 11:33:40,440 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792760639400198144"}
2024-05-21 11:33:40,543 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792760639836405760"}
2024-05-21 11:33:40,646 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792760640260030464"}
2024-05-21 11:33:40,744 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDg4MTksImlhdCI6MTcxNjI2MjQxOX0.TQbicT5fzatlsfUIdWP9JyZDZAbIDFEr-muaHauqS1CUWeqREkOxgdOOL9udAMhMQzNn6ElFz4fvKNKPpCuL1g","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 11:33:41,044 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 11:33:41,226 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792760641912586240', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 11:33:41,293 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 11:33:41,361 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 11:33:41,425 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 11:33:41,525 - ERROR: 断言失败, 用例数据为{'ids': '1792760641912586240'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 11:33:42,246 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 11:33:42,432 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792760646962528256', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 11:33:42,499 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 11:33:42,565 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 11:33:42,632 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 11:33:42,734 - ERROR: 断言失败, 用例数据为{'ids': '1792760646962528256'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 11:41:24,886 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDkyODMsImlhdCI6MTcxNjI2Mjg4M30.hTVmRDHNsJIUV6o-LCuWmlasoges8sMylwbOmWHWzbMg7E5qqk8gc83HXsWT9lC1zGziM3EFwlH3umL8LHN6cw","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 11:41:24,958 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792762587708932096"}
2024-05-21 11:41:25,063 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792762588149334016"}
2024-05-21 11:41:25,163 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792762588564570112"}
2024-05-21 11:41:25,265 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792762588988194816"}
2024-05-21 11:41:25,369 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792762589432791040"}
2024-05-21 11:41:25,472 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792762589864804352"}
2024-05-21 11:41:25,579 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792762590305206272"}
2024-05-21 11:41:25,682 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792762590741413888"}
2024-05-21 11:41:25,784 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792762591169232896"}
2024-05-21 11:41:25,886 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDkyODQsImlhdCI6MTcxNjI2Mjg4NH0.jVs3x8bTJ3nXJu0z_FzhCg1H8qXYPCed9QDiMWEtBPFinuqWT7TAX66tP26jdfin_fvw4dA2tKMLiCPjNrpbCQ","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 11:41:26,188 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 11:41:26,382 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792762592851148800', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 11:41:26,449 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 11:41:26,523 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 11:41:26,589 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 11:41:26,692 - ERROR: 断言失败, 用例数据为{'ids': '1792762592851148800'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 11:41:27,423 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 11:41:27,614 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792762598031114240', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 11:41:27,679 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 11:41:27,750 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 11:41:27,823 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 11:41:27,925 - ERROR: 断言失败, 用例数据为{'ids': '1792762598031114240'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 11:47:11,867 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDk2MzAsImlhdCI6MTcxNjI2MzIzMH0.x3QL_6vW2AiRwxd1XM71iyQdBCnZaDQ2dioM2eZjTHhkc6hxAmo8pDsvxaDeEcF18BsoT3GcUwRaiF5afvEZWQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 11:47:11,927 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792764042985619456"}
2024-05-21 11:47:12,029 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792764043409244160"}
2024-05-21 11:47:12,131 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792764043845451776"}
2024-05-21 11:47:12,234 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792764044269076480"}
2024-05-21 11:47:12,331 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792764044675923968"}
2024-05-21 11:47:12,436 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792764045116325888"}
2024-05-21 11:47:12,543 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792764045565116416"}
2024-05-21 11:47:12,646 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792764046001324032"}
2024-05-21 11:47:12,750 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792764046429143040"}
2024-05-21 11:47:12,853 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNDk2MzEsImlhdCI6MTcxNjI2MzIzMX0.q3y2Isi-pLuK6KO0zfX3SbeUUHfjjZdJbL6ucCJ5o4A3rQGPFYXbOodg378ZHBp34uZSBfTAoae7gHgDlujIaQ","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 11:47:13,160 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 11:47:13,357 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792764048136224768', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 11:47:13,426 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 11:47:13,495 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 11:47:13,580 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 11:47:13,685 - ERROR: 断言失败, 用例数据为{'ids': '1792764048136224768'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 11:47:14,412 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 11:47:14,613 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792764053395881984', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 11:47:14,680 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 11:47:14,757 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 11:47:14,830 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 11:47:14,932 - ERROR: 断言失败, 用例数据为{'ids': '1792764053395881984'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:04:43,828 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTc4ODIsImlhdCI6MTcxNjI3MTQ4Mn0.KC4p7QFydDDnYuO3usuQpEgHSJpdEB_1uXhM1PrWrqcLEbSZJHvAru4jhQmuQadW6XKc-rqTrzCGl1yuKHzIVw","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:04:43,887 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792798653727916032"}
2024-05-21 14:04:43,982 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792798654138957824"}
2024-05-21 14:04:44,079 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792798654541611008"}
2024-05-21 14:04:44,178 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792798654956847104"}
2024-05-21 14:04:44,271 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792798655342723072"}
2024-05-21 14:04:44,362 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792798655728599040"}
2024-05-21 14:04:44,454 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792798656114475008"}
2024-05-21 14:04:44,551 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792798656512933888"}
2024-05-21 14:04:44,645 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792798656911392768"}
2024-05-21 14:04:44,747 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTc4ODMsImlhdCI6MTcxNjI3MTQ4M30.5eycCFgl0XO0BQ5OjWrl0nFzlVMD2ZO05K0U1tnh2SZ0w2F_gir0exZdTlugBoWWHvRCqpuwLORIJc72Njikng","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:04:45,049 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:04:45,234 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792798658584920064', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:04:45,301 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:04:45,361 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:04:45,423 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:04:45,526 - ERROR: 断言失败, 用例数据为{'ids': '1792798658584920064'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:07:05,946 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTgwMjQsImlhdCI6MTcxNjI3MTYyNH0.F5fkoUBQZJRIOetGmPDFI2Z1LP_2IyUznvHjd6fAKNlLVwgPJGRJ-Y-2noFVW03UY_LA9FczSmaq2sr3ZaZ5Lw","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:07:06,006 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799249814011904"}
2024-05-21 14:07:06,114 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799250266996736"}
2024-05-21 14:07:06,209 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799250669649920"}
2024-05-21 14:07:06,312 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799251097468928"}
2024-05-21 14:07:06,416 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799251529482240"}
2024-05-21 14:07:06,516 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799251953106944"}
2024-05-21 14:07:06,613 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799252364148736"}
2024-05-21 14:07:06,711 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799252770996224"}
2024-05-21 14:07:06,804 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799253161066496"}
2024-05-21 14:07:06,895 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTgwMjUsImlhdCI6MTcxNjI3MTYyNX0.WC7g692ozPmTdijCDz2o5AyeOr1-_TuAgCsZ44MBQCcegl59-iwiOIeuQuleJSCoXn45VORdNNn9JOIHBcYyqA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:07:07,203 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:07:07,391 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792799254826205184', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:07:07,458 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:07:07,519 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:07:07,579 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:07:07,679 - ERROR: 断言失败, 用例数据为{'ids': '1792799254826205184'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:08:18,202 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTgwOTYsImlhdCI6MTcxNjI3MTY5Nn0.6oApf7f-A8q_agCrR3Hx2dAAGkbRbZx5j17KIz76_QMDJ8wdmosi_97oqFvyAC8SsoKVej6GLJHsYKxNLZSoTA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:08:18,259 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799552860864512"}
2024-05-21 14:08:18,355 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799553267712000"}
2024-05-21 14:08:18,456 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799553687142400"}
2024-05-21 14:08:18,557 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799554110767104"}
2024-05-21 14:08:18,650 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799554500837376"}
2024-05-21 14:08:18,745 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799554903490560"}
2024-05-21 14:08:18,836 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799555293560832"}
2024-05-21 14:08:18,930 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799555675242496"}
2024-05-21 14:08:19,024 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799556073701376"}
2024-05-21 14:08:19,118 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTgwOTcsImlhdCI6MTcxNjI3MTY5N30.lSPVjUMO7s-ka2grqpgJMOL7ToFsRpef5kWwM1T5p7K4i8MsYqHFRdm2TzDA3n_08NznLS_PnNzOlrneca3y-Q","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:08:19,431 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:08:19,684 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792799557764005888', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:08:19,745 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:08:19,810 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:08:19,874 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:08:19,975 - ERROR: 断言失败, 用例数据为{'ids': '1792799557764005888'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:08:20,690 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:08:20,874 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792799563048828928', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:08:20,936 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:08:20,996 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:08:21,058 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:08:21,166 - ERROR: 断言失败, 用例数据为{'ids': '1792799563048828928'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:09:20,544 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTgxNTgsImlhdCI6MTcxNjI3MTc1OH0.TmkLh7Qn_TLGpfSZTVHI3u0s_jJFtLGuB_mqe9gsQ8aM-Uqosh0Mokb3xhMz0hVx0k0QMZouJY8Feq76fmb01g","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:09:20,624 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799814434439168"}
2024-05-21 14:09:20,728 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799814870646784"}
2024-05-21 14:09:20,831 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799815311048704"}
2024-05-21 14:09:20,932 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799815738867712"}
2024-05-21 14:09:21,037 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799816170881024"}
2024-05-21 14:09:21,139 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799816602894336"}
2024-05-21 14:09:21,240 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799817026519040"}
2024-05-21 14:09:21,342 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799817454338048"}
2024-05-21 14:09:21,453 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792799817911517184"}
2024-05-21 14:09:21,558 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTgxNTksImlhdCI6MTcxNjI3MTc1OX0.iWrvpj_hV7yZKoJxykTDZ3tk_I5G_eczWn3ddE1SMG8mAcbqXDJaH2uvLCgWD9rVTz_XoWNXUjvklQ-rQ8UmpA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:09:21,878 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:09:22,071 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792799819677319168', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:09:22,142 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:09:22,215 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:09:22,290 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:09:22,399 - ERROR: 断言失败, 用例数据为{'ids': '1792799819677319168'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:09:23,137 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:09:23,340 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792799824953753600', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:09:23,413 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:09:23,488 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:09:23,559 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:09:23,667 - ERROR: 断言失败, 用例数据为{'ids': '1792799824953753600'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:12:47,339 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTgzNjUsImlhdCI6MTcxNjI3MTk2NX0.-sigP030lhhhQt-84jwPGFYAMtQeCs4pKAMZUnNnwuJLtc00GaslAE_r20MPK2EECMJqToKkUTtz9M3OLeWNag","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:12:47,412 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792800681761980416"}
2024-05-21 14:12:47,516 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792800682202382336"}
2024-05-21 14:12:47,622 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792800682646978560"}
2024-05-21 14:12:47,731 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792800683095769088"}
2024-05-21 14:12:47,841 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792800683565531136"}
2024-05-21 14:12:47,940 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792800683980767232"}
2024-05-21 14:12:48,039 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792800684396003328"}
2024-05-21 14:12:48,141 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792800684819628032"}
2024-05-21 14:12:48,247 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792800685268418560"}
2024-05-21 14:12:48,349 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTgzNjYsImlhdCI6MTcxNjI3MTk2Nn0.fbNgWCgpeWLnlosIODrkV1fGvjYY8G_I5Swo7tcTEVQetgco15qjgU4r5Vno4o8jCnr8zh6Wlxu6heR258RMkA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:12:48,647 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:12:48,837 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792800686933557248', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:12:48,905 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:12:48,971 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:12:49,036 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:12:49,149 - ERROR: 断言失败, 用例数据为{'ids': '1792800686933557248'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:12:49,891 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:12:50,085 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792800692126105600', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:12:50,155 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:12:50,225 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:12:50,300 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:12:50,411 - ERROR: 断言失败, 用例数据为{'ids': '1792800692126105600'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:17:01,687 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg2MjAsImlhdCI6MTcxNjI3MjIyMH0.XhSoSCgFL6-VTbjdC8HipAsBGHZ-uB-jz62PwoqpB4fo_KzTtoEaXC2xcKPDYF7I7oQY5mopYegaFcMjxNUMew","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:17:01,760 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792801748562231296"}
2024-05-21 14:17:01,866 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792801749006827520"}
2024-05-21 14:17:01,975 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792801749464006656"}
2024-05-21 14:17:02,080 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792801749900214272"}
2024-05-21 14:17:02,183 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792801750336421888"}
2024-05-21 14:17:02,281 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792801750747463680"}
2024-05-21 14:17:02,380 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792801751158505472"}
2024-05-21 14:17:02,483 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792801751590518784"}
2024-05-21 14:17:02,589 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792801752035115008"}
2024-05-21 14:17:02,693 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg2MjEsImlhdCI6MTcxNjI3MjIyMX0.x7DzK2M3Tfj7gTlOrSy6N-wNTuUzDzsbzJ3k44k-dKb4VYHNTV9qA7EYjxqjBhSZNUXdmQP4qEh_RqndQri9AA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:17:03,004 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:17:03,202 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792801753763168256', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:17:03,273 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:17:03,339 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:17:03,408 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:17:03,516 - ERROR: 断言失败, 用例数据为{'ids': '1792801753763168256'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:17:04,240 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:17:04,431 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792801758947328000', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:17:04,505 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:17:04,587 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:17:04,658 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:17:04,773 - ERROR: 断言失败, 用例数据为{'ids': '1792801758947328000'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:23:18,810 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTcsImlhdCI6MTcxNjI3MjU5N30.sY4lvg3FdRhPw7aTY0jx3ZeN03MQbTx1bARhQIZP2H41KaUr83P2Q4MTt-AKuPxQxYsVlEOH9rPkM0X7HhxEJA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:23:18,884 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803330313961472"}
2024-05-21 14:23:18,989 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803330750169088"}
2024-05-21 14:23:19,091 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803331177988096"}
2024-05-21 14:23:19,202 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803331643555840"}
2024-05-21 14:23:19,305 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803332075569152"}
2024-05-21 14:23:19,407 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803332507582464"}
2024-05-21 14:23:19,515 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803332960567296"}
2024-05-21 14:23:19,625 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803333417746432"}
2024-05-21 14:23:19,736 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792803333887508480"}
2024-05-21 14:23:19,843 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTg5OTgsImlhdCI6MTcxNjI3MjU5OH0.4JgpWuf9sSQnYV9dPIhf0I76OkCqUlLws0abjIB0nEM_iXrT2qd79jiUvk3kiwUvDIw9aHYQdvVjAFq8AQLNCw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:23:22,073 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDAsImlhdCI6MTcxNjI3MjYwMH0.atAGdmkk-bhC9iAhggDWp0VlgVLl39hN3_u2ytWqmjm1GWT-vhDYRgCax56GrBuR6EkPJEseXgX-S8EfzoWXhg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:23:24,144 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDIsImlhdCI6MTcxNjI3MjYwMn0.2ULfoTRcxys6pnuEKjHxZH4GI20D2qBisJFYoBn2GdZLw23Xapl1u2ATzI1w5cFlBcJf3_bFyVN7eo7OfOOMUg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:23:26,214 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDQsImlhdCI6MTcxNjI3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:23:28,294 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDYsImlhdCI6MTcxNjI3MjYwNn0.W_ynWuu-79lzZS5ScuftmKzI8_B3z3llQ0gnSpahTsvIdUBKeaos4loXKk4DrzU4CGbchLTa5lK48yzcFXXQoA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:23:30,382 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkwMDgsImlhdCI6MTcxNjI3MjYwOH0.LsIqI6NBfMYmLfeFQHaiE3TLchmrNO9P3P92GkiuQQoiDTEXfelTGerbpaF-Qp4K4_45jG2cACLNB8dNwS0m-w","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:23:30,533 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:23:30,722 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:23:32,930 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:23:35,147 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:23:37,354 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:23:39,564 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:23:41,778 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803379156631552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:23:41,847 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:23:41,910 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:23:41,976 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:23:42,079 - ERROR: 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:23:44,185 - ERROR: 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803436442435584"}
2024-05-21 14:23:46,340 - ERROR: 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803445468577792"}
2024-05-21 14:23:48,501 - ERROR: 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803454528274432"}
2024-05-21 14:23:50,659 - ERROR: 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803463587971072"}
2024-05-21 14:23:52,816 - ERROR: 断言失败, 用例数据为{'ids': '1792803379156631552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803472635084800"}
2024-05-21 14:23:53,535 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:23:53,718 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:23:55,928 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:23:58,138 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:24:00,340 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:24:02,541 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:24:04,740 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792803475629817856', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:24:04,808 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:24:04,872 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:24:04,938 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:24:05,053 - ERROR: 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:24:07,173 - ERROR: 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803532844318720"}
2024-05-21 14:24:09,327 - ERROR: 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803541883043840"}
2024-05-21 14:24:11,490 - ERROR: 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803550955323392"}
2024-05-21 14:24:13,660 - ERROR: 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803560044380160"}
2024-05-21 14:24:15,816 - ERROR: 断言失败, 用例数据为{'ids': '1792803475629817856'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792803569104076800"}
2024-05-21 14:28:26,503 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkzMDQsImlhdCI6MTcxNjI3MjkwNH0.C8WP_0J0SBV9OWfFZ74hcZa9NskiZ4QPLLSt24uLPT5lDvXBrx3dj89QFxV80Ce8Hb5plEci35LpKNbUkNbVtQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:28:26,563 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804620792250368"}
2024-05-21 14:28:26,671 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804621257818112"}
2024-05-21 14:28:26,769 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804621660471296"}
2024-05-21 14:28:26,865 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804622067318784"}
2024-05-21 14:28:26,954 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804622449000448"}
2024-05-21 14:28:27,054 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804622860042240"}
2024-05-21 14:28:27,152 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804623266889728"}
2024-05-21 14:28:27,249 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804623677931520"}
2024-05-21 14:28:27,347 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804624088973312"}
2024-05-21 14:28:27,443 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkzMDUsImlhdCI6MTcxNjI3MjkwNX0.aiOImGv7LixjzIi01Iyg8uBwtma-xdc40aSJEOce5Cgg550RmLDq6iiEkUz7U-JsDrqTI1LwYEAkdUSu1M7MyQ","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:28:27,675 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkzMDYsImlhdCI6MTcxNjI3MjkwNn0.QJxlGlSWoQKKYLwfkf9mX9V2lTjQ4sXkPiCm_PTEyrOFG_suBCWPjpevdpTENBuUElC3qSpN2l-R-kdebxnCkQ","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:28:27,737 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkzMDYsImlhdCI6MTcxNjI3MjkwNn0.QJxlGlSWoQKKYLwfkf9mX9V2lTjQ4sXkPiCm_PTEyrOFG_suBCWPjpevdpTENBuUElC3qSpN2l-R-kdebxnCkQ","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:28:27,797 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkzMDYsImlhdCI6MTcxNjI3MjkwNn0.QJxlGlSWoQKKYLwfkf9mX9V2lTjQ4sXkPiCm_PTEyrOFG_suBCWPjpevdpTENBuUElC3qSpN2l-R-kdebxnCkQ","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:28:27,857 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkzMDYsImlhdCI6MTcxNjI3MjkwNn0.QJxlGlSWoQKKYLwfkf9mX9V2lTjQ4sXkPiCm_PTEyrOFG_suBCWPjpevdpTENBuUElC3qSpN2l-R-kdebxnCkQ","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:28:27,925 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkzMDYsImlhdCI6MTcxNjI3MjkwNn0.QJxlGlSWoQKKYLwfkf9mX9V2lTjQ4sXkPiCm_PTEyrOFG_suBCWPjpevdpTENBuUElC3qSpN2l-R-kdebxnCkQ","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:28:28,079 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:28:28,257 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804627146620928', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:28:28,446 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804627146620928', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:28:28,637 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804627146620928', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:28:28,825 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804627146620928', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:28:29,012 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804627146620928', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:28:29,201 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804627146620928', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:28:29,279 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:28:29,338 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:28:29,402 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:28:29,503 - ERROR: 断言失败, 用例数据为{'ids': '1792804627146620928'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:28:29,603 - ERROR: 断言失败, 用例数据为{'ids': '1792804627146620928'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792804633538740224"}
2024-05-21 14:28:29,745 - ERROR: 断言失败, 用例数据为{'ids': '1792804627146620928'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792804634142720000"}
2024-05-21 14:28:29,890 - ERROR: 断言失败, 用例数据为{'ids': '1792804627146620928'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792804634742505472"}
2024-05-21 14:28:30,028 - ERROR: 断言失败, 用例数据为{'ids': '1792804627146620928'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792804635338096640"}
2024-05-21 14:28:30,168 - ERROR: 断言失败, 用例数据为{'ids': '1792804627146620928'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792804635916910592"}
2024-05-21 14:28:30,898 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:28:31,088 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804638953586688', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:28:31,274 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804638953586688', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:28:31,462 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804638953586688', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:28:31,649 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804638953586688', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:28:31,837 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804638953586688', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:28:32,033 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804638953586688', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:28:32,113 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:28:32,180 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:28:32,243 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:28:32,343 - ERROR: 断言失败, 用例数据为{'ids': '1792804638953586688'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:28:32,443 - ERROR: 断言失败, 用例数据为{'ids': '1792804638953586688'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792804645458952192"}
2024-05-21 14:28:32,583 - ERROR: 断言失败, 用例数据为{'ids': '1792804638953586688'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792804646050349056"}
2024-05-21 14:28:32,728 - ERROR: 断言失败, 用例数据为{'ids': '1792804638953586688'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792804646650134528"}
2024-05-21 14:28:32,875 - ERROR: 断言失败, 用例数据为{'ids': '1792804638953586688'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792804647270891520"}
2024-05-21 14:28:33,022 - ERROR: 断言失败, 用例数据为{'ids': '1792804638953586688'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792804647891648512"}
2024-05-21 14:29:40,452 - ERROR: 执行的功能为:__init__, 功能的描述为:链接数据库,获取链接对象和游标对象, 所在的文件为:D:\Project\PythonDoc\test60\test60\InterfaceAutoTest\common\db.py, 所在行为:18, 错误为:(2003, "Can't connect to MySQL server on '120.46.172.186' (timed out)")
2024-05-21 14:29:43,453 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:29:43,636 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804943275507712', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:29:43,701 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:29:43,763 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:29:43,831 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:29:43,931 - ERROR: 断言失败, 用例数据为{'ids': '1792804943275507712'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:29:47,315 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkzODUsImlhdCI6MTcxNjI3Mjk4NX0.XNihHVKsSXesDSHj4iNJH_ztHuwVBX4PhrUDonNWyMevahjedeR3upJzX4I-C9kunBM6_OA6Ukxdo0dZdhBGAQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:29:47,375 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804959738150912"}
2024-05-21 14:29:47,478 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804960174358528"}
2024-05-21 14:29:47,578 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804960597983232"}
2024-05-21 14:29:47,681 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804961017413632"}
2024-05-21 14:29:47,779 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804961436844032"}
2024-05-21 14:29:47,875 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804961839497216"}
2024-05-21 14:29:47,976 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804962267316224"}
2024-05-21 14:29:48,071 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804962661580800"}
2024-05-21 14:29:48,162 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792804963051651072"}
2024-05-21 14:29:48,262 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTkzODYsImlhdCI6MTcxNjI3Mjk4Nn0.lCXiajZWWr3tyKw6HDEEsfKgOn8A6OrzLuNDu2Ngidbr7kHTttQcvWSWJFpEz_QDJe-ljrGMwEJ7NshoAYg_eQ","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:29:48,577 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:29:48,762 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804964771315712', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:29:48,827 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:29:48,889 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:29:48,952 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:29:49,051 - ERROR: 断言失败, 用例数据为{'ids': '1792804964771315712'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:29:49,761 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:29:49,938 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792804969733177344', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:29:50,003 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:29:50,067 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:29:50,129 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:29:50,223 - ERROR: 断言失败, 用例数据为{'ids': '1792804969733177344'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:30:33,698 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk0MzIsImlhdCI6MTcxNjI3MzAzMn0.ZfaeVuPmOxa4VPVkIjqrapkdOHANeEbO-DmW4G7of-LGjUkUtFiWyB7ZoBLw3sMeH6k3NEIKZ--gqr9oWEvWxw","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:30:33,753 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805154269970432"}
2024-05-21 14:30:33,853 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805154685206528"}
2024-05-21 14:30:33,954 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805155104636928"}
2024-05-21 14:30:34,054 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805155528261632"}
2024-05-21 14:30:34,149 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805155930914816"}
2024-05-21 14:30:34,275 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805156455202816"}
2024-05-21 14:30:34,372 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805156866244608"}
2024-05-21 14:30:34,472 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805157277286400"}
2024-05-21 14:30:34,570 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805157688328192"}
2024-05-21 14:30:34,666 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk0MzMsImlhdCI6MTcxNjI3MzAzM30._FtSBF-29C-RqBFXc1D9HNjHtgdJdbQkhJ5LSPH-JqqW1PjdAz3EcvQ5KHpEA2FyhPlwX1rfheYqgcvCjgiaRQ","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:30:34,973 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:30:35,153 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805159366049792', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:30:35,222 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:30:35,281 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:30:35,341 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:30:35,437 - ERROR: 断言失败, 用例数据为{'ids': '1792805159366049792'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:30:36,149 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:30:36,327 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805164298551296', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:30:36,392 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:30:36,452 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:30:36,521 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:30:36,617 - ERROR: 断言失败, 用例数据为{'ids': '1792805164298551296'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:31:32,585 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk0OTAsImlhdCI6MTcxNjI3MzA5MH0.HorxGb0zuhHTi9zH6Y0trEOgyUqlvijfg5SmTc31gysD-4ramCOJvt7nmGmBFyyCozQpekdcUZYiSqL4KyoTQA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:31:32,642 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805401259950080"}
2024-05-21 14:31:32,739 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805401670991872"}
2024-05-21 14:31:32,835 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805402069450752"}
2024-05-21 14:31:32,930 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805402472103936"}
2024-05-21 14:31:33,025 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805402866368512"}
2024-05-21 14:31:33,116 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805403256438784"}
2024-05-21 14:31:33,210 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805403642314752"}
2024-05-21 14:31:33,311 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805404061745152"}
2024-05-21 14:31:33,412 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805404485369856"}
2024-05-21 14:31:33,510 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk0OTEsImlhdCI6MTcxNjI3MzA5MX0.bnO_8hOqOZwtAMdwr6xW1Pb2sc1ASQHmS0QGefr0_avzRFmYlY4QcTdf93rRgxqiTfBEm82VLpK-VQ-z0NdcYA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:31:33,856 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:31:34,041 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805406335057920', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:31:34,111 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:31:34,175 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:31:34,237 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:31:34,335 - ERROR: 断言失败, 用例数据为{'ids': '1792805406335057920'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:31:34,755 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:31:34,939 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805410109931520', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:31:35,007 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:31:35,068 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:31:35,133 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:31:35,234 - ERROR: 断言失败, 用例数据为{'ids': '1792805410109931520'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:32:29,578 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk1NDcsImlhdCI6MTcxNjI3MzE0N30.P0GB9kl7xkr8nKb44i3w7sGvV9oBNhPCfN0_S6OMmeGWzMg6zWjr4i4KT95jkDNny7wwJwx8hmLujAJb_Jm-IQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:32:29,635 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805640297529344"}
2024-05-21 14:32:29,736 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805640721154048"}
2024-05-21 14:32:29,831 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805641136390144"}
2024-05-21 14:32:29,930 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805641547431936"}
2024-05-21 14:32:30,032 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805641971056640"}
2024-05-21 14:32:30,128 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805642373709824"}
2024-05-21 14:32:30,220 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805642759585792"}
2024-05-21 14:32:30,313 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805643153850368"}
2024-05-21 14:32:30,413 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792805643564892160"}
2024-05-21 14:32:30,515 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk1NDgsImlhdCI6MTcxNjI3MzE0OH0.30YI69bo9-GFISR7Q1wunOFUJeuUqBIV4PIClmLfgZ7vuJ6BB5vSJNumjHt7XIOgQf_xnFqRliYLdoQRfyGd8g","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:32:30,730 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk1NDksImlhdCI6MTcxNjI3MzE0OX0.yYHk7djJOV09OVePcnq2KWBxZVz84leidKW46DCoxCTtkZDCro_AN8oPa_ye1Rx3e_HJ34U7-lrErUcFwkqpMg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:32:30,788 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk1NDksImlhdCI6MTcxNjI3MzE0OX0.yYHk7djJOV09OVePcnq2KWBxZVz84leidKW46DCoxCTtkZDCro_AN8oPa_ye1Rx3e_HJ34U7-lrErUcFwkqpMg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:32:30,846 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk1NDksImlhdCI6MTcxNjI3MzE0OX0.yYHk7djJOV09OVePcnq2KWBxZVz84leidKW46DCoxCTtkZDCro_AN8oPa_ye1Rx3e_HJ34U7-lrErUcFwkqpMg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:32:30,915 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk1NDksImlhdCI6MTcxNjI3MzE0OX0.yYHk7djJOV09OVePcnq2KWBxZVz84leidKW46DCoxCTtkZDCro_AN8oPa_ye1Rx3e_HJ34U7-lrErUcFwkqpMg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:32:31,294 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk1NDksImlhdCI6MTcxNjI3MzE0OX0.yYHk7djJOV09OVePcnq2KWBxZVz84leidKW46DCoxCTtkZDCro_AN8oPa_ye1Rx3e_HJ34U7-lrErUcFwkqpMg","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:32:31,453 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:32:31,634 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805647922774016', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:32:31,821 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805647922774016', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:32:32,016 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805647922774016', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:32:32,209 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805647922774016', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:32:32,396 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805647922774016', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:32:32,582 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805647922774016', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:32:32,660 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:32:32,720 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:32:32,779 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:32:32,882 - ERROR: 断言失败, 用例数据为{'ids': '1792805647922774016'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:32:32,979 - ERROR: 断言失败, 用例数据为{'ids': '1792805647922774016'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792805654335864832"}
2024-05-21 14:32:33,122 - ERROR: 断言失败, 用例数据为{'ids': '1792805647922774016'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792805654918873088"}
2024-05-21 14:32:33,261 - ERROR: 断言失败, 用例数据为{'ids': '1792805647922774016'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792805655514464256"}
2024-05-21 14:32:33,407 - ERROR: 断言失败, 用例数据为{'ids': '1792805647922774016'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792805656122638336"}
2024-05-21 14:32:33,551 - ERROR: 断言失败, 用例数据为{'ids': '1792805647922774016'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792805656722423808"}
2024-05-21 14:32:34,290 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:32:34,535 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805659809431552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:32:34,728 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805659809431552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:32:34,924 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805659809431552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:32:35,115 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805659809431552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:32:35,315 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805659809431552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:32:35,570 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792805659809431552', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:32:35,646 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:32:35,707 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:32:35,770 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:32:35,872 - ERROR: 断言失败, 用例数据为{'ids': '1792805659809431552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:32:35,980 - ERROR: 断言失败, 用例数据为{'ids': '1792805659809431552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792805666889416704"}
2024-05-21 14:32:36,117 - ERROR: 断言失败, 用例数据为{'ids': '1792805659809431552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792805667493396480"}
2024-05-21 14:32:36,262 - ERROR: 断言失败, 用例数据为{'ids': '1792805659809431552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792805668097376256"}
2024-05-21 14:32:36,403 - ERROR: 断言失败, 用例数据为{'ids': '1792805659809431552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792805668688773120"}
2024-05-21 14:32:36,581 - ERROR: 断言失败, 用例数据为{'ids': '1792805659809431552'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":false,"message":"","logId":"1792805669439553536"}
2024-05-21 14:35:47,313 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk3NDUsImlhdCI6MTcxNjI3MzM0NX0.9l1ciR6UA0bTsQre2C6zfVyaedhG9mlVHAZ8cUV6HyjkORvWqhcSAS7EPLtITjSIhULfxaDs6X7YGTlqqTYFzQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:35:47,373 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806469662425088"}
2024-05-21 14:35:47,481 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806470119604224"}
2024-05-21 14:35:47,582 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806470543228928"}
2024-05-21 14:35:47,680 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806470958465024"}
2024-05-21 14:35:47,779 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806471365312512"}
2024-05-21 14:35:47,875 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806471772160000"}
2024-05-21 14:35:47,973 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806472191590400"}
2024-05-21 14:35:48,070 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806472590049280"}
2024-05-21 14:35:48,169 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806473005285376"}
2024-05-21 14:35:48,261 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk3NDYsImlhdCI6MTcxNjI3MzM0Nn0.bBeWbSrJt0uUSUqYZqKt_gRmDpElGpyY21hfqkQXjQXm7epfYgkkvleY7ICEbfEhWPAbX1OTzEaQcbp7lhf-oA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:35:48,576 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:35:48,757 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792806474699784192', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:35:48,820 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:35:48,882 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:35:48,941 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:35:49,037 - ERROR: 断言失败, 用例数据为{'ids': '1792806474699784192'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:35:49,760 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:35:49,943 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792806479665840128', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:35:50,013 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:35:50,079 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:35:50,143 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:35:50,241 - ERROR: 断言失败, 用例数据为{'ids': '1792806479665840128'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:37:46,880 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk4NjUsImlhdCI6MTcxNjI3MzQ2NX0.whwuyyaFPxIbK5ooW79lk8MhTIdBIkJjg9nb58nii18g71lWjc-GBgOoWhaoSCbmmnkE2VO04XaCIg4tyVha9g","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:37:46,937 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806971150188544"}
2024-05-21 14:37:47,039 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806971578007552"}
2024-05-21 14:37:47,137 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806971984855040"}
2024-05-21 14:37:47,230 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806972387508224"}
2024-05-21 14:37:47,327 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806972781772800"}
2024-05-21 14:37:47,423 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806973188620288"}
2024-05-21 14:37:47,524 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806973612244992"}
2024-05-21 14:37:47,622 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806974019092480"}
2024-05-21 14:37:47,721 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792806974446911488"}
2024-05-21 14:37:47,819 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk4NjYsImlhdCI6MTcxNjI3MzQ2Nn0.oDAgA0pp5uIzsNlNQEx3yrytfpzH7qazih1m8Vf_rbjvIfVLF-8y8HEkYrSTAs8XQk6PbRTnw_7BynYmpcsTlA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:37:48,129 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:37:48,311 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792806976128827392', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:37:48,383 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:37:48,444 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:37:48,505 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:37:48,603 - ERROR: 断言失败, 用例数据为{'ids': '1792806976128827392'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:37:49,327 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:37:49,515 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792806981132632064', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:37:49,585 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:37:49,647 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:37:49,710 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:37:49,808 - ERROR: 断言失败, 用例数据为{'ids': '1792806981132632064'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:39:24,110 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk5NjIsImlhdCI6MTcxNjI3MzU2Mn0.e9-56b55A-O3AFsuOaZTjHhvCIGCl4jXMHvnw9RN0GIwtGkAGcEV_4720VYNzf8bN9qM_tKcjhIlp3tNOT5o7w","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:39:24,166 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807378958172160"}
2024-05-21 14:39:24,263 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807379360825344"}
2024-05-21 14:39:24,362 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807379767672832"}
2024-05-21 14:39:24,460 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807380187103232"}
2024-05-21 14:39:24,558 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807380593950720"}
2024-05-21 14:39:24,651 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807380992409600"}
2024-05-21 14:39:24,755 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807381424422912"}
2024-05-21 14:39:24,848 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807381818687488"}
2024-05-21 14:39:24,942 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807382208757760"}
2024-05-21 14:39:25,041 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNTk5NjMsImlhdCI6MTcxNjI3MzU2M30.eLYokWZgvqckUxBqAh7DIz_9BvZjmh7a-HhZlRInwqPAkWiTx2sd5HUm3TqDx2400e0GNKmf725MKyqcKxgByw","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:39:25,338 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:39:25,515 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792807383848730624', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:39:25,581 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:39:25,641 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:39:25,703 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:39:25,800 - ERROR: 断言失败, 用例数据为{'ids': '1792807383848730624'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:39:26,521 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:39:26,707 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792807388814786560', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:39:26,775 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:39:26,836 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:39:26,899 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:39:26,998 - ERROR: 断言失败, 用例数据为{'ids': '1792807388814786560'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:40:17,141 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2'}, 期望数据为:{'username': '超级管理员', 'loginStatus': True, 'account': 'admin'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNjAwMTUsImlhdCI6MTcxNjI3MzYxNX0.02N-J0bB50MjTvpRalWWOJFNg8O6PRV_UzDqAPzDq8s8zZcs2tEWZYPOsOCQByEjj3kE27rX5xBoKkSV2jZR3w","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
2024-05-21 14:40:17,202 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': ''}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807601398890496"}
2024-05-21 14:40:17,308 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807601847681024"}
2024-05-21 14:40:17,403 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': 'm'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807602241945600"}
2024-05-21 14:40:17,503 - ERROR: 断言成功, 用例数据为{'username': 'admin', 'password': '☯㍿卍卐'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807602661376000"}
2024-05-21 14:40:17,602 - ERROR: 断言成功, 用例数据为{'username': '', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807603076612096"}
2024-05-21 14:40:17,704 - ERROR: 断言成功, 用例数据为{'username': 'adminadminadminadmin', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807603504431104"}
2024-05-21 14:40:17,802 - ERROR: 断言成功, 用例数据为{'username': 'a', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807603915472896"}
2024-05-21 14:40:17,899 - ERROR: 断言成功, 用例数据为{'username': '☯㍿卍卐', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807604322320384"}
2024-05-21 14:40:17,995 - ERROR: 断言成功, 用例数据为{'username': 'admin123', 'password': 'MTIzNDU2'}, 期望数据为:{'message': '账号或密码错误'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","logId":"1792807604724973568"}
2024-05-21 14:40:18,089 - ERROR: 断言失败, 用例数据为None, 期望数据为:{'message': '刷新token成功'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MTYzNjAwMTYsImlhdCI6MTcxNjI3MzYxNn0.sB15ZPc06UhFBx3PdnhlDCLk0ESrIUnsVWWPN9ffDjf3UtjyEXcxJDBJpHKl_0G9PRD3zP43TbCaaju5nE5rxA","username":"","account":"","userId":"","loginStatus":true,"userAttrs":{}}
2024-05-21 14:40:18,399 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:40:18,601 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792807606402695168', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:40:18,667 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:40:18,727 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:40:18,789 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:40:18,886 - ERROR: 断言失败, 用例数据为{'ids': '1792807606402695168'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
2024-05-21 14:40:19,598 - ERROR: 断言成功, 用例数据为{'code': 'api_auto_test_add_dem', 'description': 'api_auto_test_add_dem', 'isDefault': 0, 'name': 'api_auto_test_add_dem'}, 期望数据为:{'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":""}
2024-05-21 14:40:19,790 - ERROR: 断言失败, 用例数据为{'code': 'test_add_org', 'demId': '1792807611435859968', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据为:{'message': '添加组织成功'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":""}
2024-05-21 14:40:19,856 - ERROR: 断言成功, 用例数据为{'orgCode': 'test_add_org', 'accounts': 'admin'}, 期望数据为:{'state': True, 'message': '加入成功', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"加入成功","value":""}
2024-05-21 14:40:19,917 - ERROR: 断言成功, 用例数据为{'query': {'orgCode': 'test_add_org'}, 'body': [{'alias': 'sz', 'value': 100}, {'alias': 'kc', 'value': '语文课'}]}, 期望数据为:{'state': True, 'message': '保存组织参数成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"保存组织参数成功!","value":""}
2024-05-21 14:40:19,982 - ERROR: 断言成功, 用例数据为test_add_org, 期望数据为:{'state': True, 'message': '删除组织成功!', 'value': ''}, 服务器返回的数据为:{"state":true,"message":"删除组织成功!","value":""}
2024-05-21 14:40:20,083 - ERROR: 断言失败, 用例数据为{'ids': '1792807611435859968'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":""}
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: requsts_method.py
# Author: lao_zhao
# Datetime: 2024/5/20 14:34
# Description:
#
# ---------------------------------------------------------------------------
import base64
import requests
from InterfaceAutoTest import log_decorator
from InterfaceAutoTest.common.read_ini import ReadIni
from InterfaceAutoTest.data_config.settings import BPM_KEY
class RequestsMethod:
@log_decorator
def __init__(self):
"""关联token"""
login_url = ReadIni().get_host(BPM_KEY)+"/auth"
login_data = {"username": "admin", "password": base64.b64encode("123456".encode()).decode()}
self.bpm_session = requests.sessions.Session()
self.bpm_session.headers["Authorization"] = "Bearer "+self.bpm_session.post(url=login_url, json=login_data).json().get("token")
@log_decorator
def request_all(self, req_method, req_url, req_mime, case_data):
"""封装公共的请求方法"""
if req_mime == "json" or req_mime == "application/json":
return self.bpm_session.request(method=req_method, url=req_url, json=case_data)
elif req_mime == "form" or req_mime == "application/x-www-form-urlencoded":
return self.bpm_session.request(method=req_method, url=req_url, data=case_data)
elif req_mime == "text" or req_mime == "text/plain":
# 请求体中除了json类型传参和上传文件以外的数据如果需要在请求体中传参全部使用data传参
return self.bpm_session.request(method=req_method, url=req_url, data=case_data)
elif req_mime == "form-data" or req_mime == "multipart/form-data":
return self.bpm_session.request(method=req_method, url=req_url, files=case_data)
elif req_mime == "query" or req_mime == "params":
# 任何请求如果在地址栏传参使用params关键字传参
return self.bpm_session.request(method=req_method, url=req_url, params=case_data)
elif req_mime is None:
return self.bpm_session.request(method=req_method, url=req_url)
# 判断请求的媒体类型是为query|json或者为json|query
elif req_mime == "query|json" or req_mime == "json|query":
query_data = case_data["query"]
body_data = case_data["body"]
# params和json同时传参时表示请求体和地址栏同时传参
return self.bpm_session.request(method=req_method, url=req_url, params=query_data, json=body_data)
else:
raise ValueError("请求的媒体类型没封装")
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: __init__.py
# Author: lao_zhao
# Datetime: 2024/5/21 11:06
# Description:
#
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: __init__.py
# Author: lao_zhao
# Datetime: 2024/5/20 17:48
# Description:
#
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: conftest.py
# Author: lao_zhao
# Datetime: 2024/5/20 16:10
# Description:
#
# ---------------------------------------------------------------------------
import pytest
from InterfaceAutoTest import log_decorator
from InterfaceAutoTest.common.db import DB
from InterfaceAutoTest.requests_method.requsts_method import RequestsMethod
@log_decorator
@pytest.fixture(scope="session")
def req_fix():
"""创建RequestsMethod对象,并返回"""
req = RequestsMethod()
yield req
@log_decorator
@pytest.fixture(scope="session")
def db_fix():
"""创建DB对象,并返回"""
db = DB()
yield db
db.close()
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
[pytest]
; ;开启日志
; log_cli=true
; ;设置日志的级别,如果不设置级别的话,可以设置为NOTSET,如果要设置级别,级别可以有debug,info,warning,error,致命
; log_level=NOTSET
; ;设置日志显示的信息格式
; log_format=%(levelname)s--%(asctime)s--%(message)s
; ;设置日志中时间显示的格式
; log_date_format=%Y-%m-%d %H:%M:%S
; ;每个py文件运行的时候追加的命令
; ;addopts=-vs
;设置日志保存的文件
; log_file=../report/log/bpm_test.log
;设置日志保存在文件中的级别
log_file_level=error
;设置日志在文件中的信息格式
log_file_format=%(levelname)s--%(asctime)s--%(message)s
;设置文件日志中时间显示的格式
log_file_date_format=%Y-%m-%d %H:%M:%S
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: test_bpm.py
# Author: lao_zhao
# Datetime: 2024/5/20 16:08
# Description:
#
# ---------------------------------------------------------------------------
import allure
import pytest
import logging
from InterfaceAutoTest import log_decorator
from InterfaceAutoTest.common.read_excel import ReadExcel
excel = ReadExcel("demo")
class TestBPM:
@allure.epic("BPM系统-demo") # 测试系统的名称
# @allure.feature("模块名称") # 模块名称
# @allure.story("接口名称") # 接口
# @allure.title("标题名称") # 用例标题
# @allure.severity("用例的等级") # 用例等级
@pytest.mark.parametrize("module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key", excel.get_data())
def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):
# 给allure输出的报告添加内容
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(case_title)
allure.dynamic.severity(case_level)
# 判断sql语句类型是否为select
if sql_type == "select":
# 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果
select_result = db_fix.select_func(sql_data)
# 将查询结果更新到用例数据中
case_data[update_key] = select_result
# 将更新之后的用例数据发送给服务器。
# 判断sql语句的类型是否为delete
elif sql_type == "delete":
# 使用DB类对象调用delete_func方法执行删除的sql语句
db_fix.delete_func(sql_data)
# 将数据库中的数据删除完之后,再发送请求
# 判断sql语句类型是否为select|delete或者为delete|select
elif sql_type == "select|delete" or sql_type == "delete|select":
# 使用DB类对象调用delete_func方法执行删除的sql语句
db_fix.delete_func(sql_data["delete"])
# 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果
select_result = db_fix.select_func(sql_data["select"])
# 将查询结果更新到用例数据中
case_data[update_key] = select_result
# 将更新之后的用例数据发送给服务器。
# 使用RequestsMethod对象发送请求
res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)
# 断言
try:
for key in expect_data:
assert expect_data[key] == res.json().get(key)
except AssertionError as e:
logging.error(f"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}")
raise e
else:
logging.error(f"断言成功, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}")
print("断言")
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: __init__.py
# Author: lao_zhao
# Datetime: 2024/5/20 17:48
# Description:
#
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: test_dependency.py
# Author: lao_zhao
# Datetime: 2024/5/20 17:47
# Description:
#
# ---------------------------------------------------------------------------
# 标记此用例会被依赖
import random
import string
import allure
import pytest, requests, base64
from faker import Faker
bpm_session = requests.sessions.Session()
@allure.epic("BPM-场景测试")
@allure.feature("认证接口")
@allure.story("登录系统")
@allure.title("登录--前置")
@pytest.mark.dependency()
def test_login():
login_url = "http://120.46.172.186:8080/auth"
login_data = {"username": "admin", "password": base64.b64encode("123456".encode()).decode()}
res = bpm_session.request(method="post", url=login_url, json=login_data)
try:
assert "loginStatus" in res.text
except AssertionError as e:
print(e)
raise e
else:
bpm_session.headers["Authorization"] = "Bearer " + res.json().get("token")
print("断言成功")
# 标记当前用例会依赖前面的哪一条用例, 标记此用例会被依赖
@allure.epic("BPM-场景测试")
@allure.feature("维度管理")
@allure.story("添加维度")
@allure.title("添加维度-依赖登录")
@pytest.mark.dependency(depends=["test_login"])
def test_add_dem():
add_dem_url = "http://120.46.172.186:8080/api/demension/v1/dem/addDem"
data = Faker(locale="zh_cn")
add_dem_data = {
"code": "".join(random.sample(string.ascii_letters + string.digits, 12)),
"description": data.address(),
"isDefault": 0,
"name": data.name()
}
res = bpm_session.request(method="post", url=add_dem_url, json=add_dem_data)
try:
assert "成功" in res.text
except Exception as e:
print(e)
raise e
else:
print("断言成功")
@allure.epic("BPM-场景测试")
@allure.feature("test")
@allure.story("test")
@allure.title("test用例函数-依赖登录成功和添加维度成功")
@pytest.mark.dependency(depends=["test_add_dem", "test_login"])
def test1():
print("用例函数1")
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: __init__.py
# Author: lao_zhao
# Datetime: 2024/5/20 17:48
# Description:
#
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test60
# FileName: conftest.py
# Author: lao_zhao
# Datetime: 2024/5/20 16:10
# Description:
#
# ---------------------------------------------------------------------------
import pytest
from InterfaceAutoTest import log_decorator
from InterfaceAutoTest.common.db import DB
from InterfaceAutoTest.requests_method.requsts_method import RequestsMethod
@log_decorator
@pytest.fixture(scope="session")
def req_fix():
"""创建RequestsMethod对象,并返回"""
req = RequestsMethod()
yield req
@log_decorator
@pytest.fixture(scope="session")
def db_fix():
"""创建DB对象,并返回"""
db = DB()
yield db
db.close()
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: test60
# FileName: test_bpm.py
# Author: lao_zhao
# Datetime: 2024/5/20 16:08
# Description:
#
# ---------------------------------------------------------------------------
import allure
import pytest
import logging
from InterfaceAutoTest import log_decorator
from InterfaceAutoTest.common.read_excel import ReadExcel
excel = ReadExcel("mirZhang", "BPM-组织管理")
class TestBPM:
@allure.epic("BPM系统-老张") # 测试系统的名称
# @allure.feature("模块名称") # 模块名称
# @allure.story("接口名称") # 接口
# @allure.title("标题名称") # 用例标题
# @allure.severity("用例的等级") # 用例等级
@pytest.mark.parametrize("module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key", excel.get_data())
def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):
# 给allure输出的报告添加内容
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(case_title)
allure.dynamic.severity(case_level)
# 判断sql语句类型是否为select
if sql_type == "select":
# 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果
select_result = db_fix.select_func(sql_data)
# 将查询结果更新到用例数据中
case_data[update_key] = select_result
# 将更新之后的用例数据发送给服务器。
# 判断sql语句的类型是否为delete
elif sql_type == "delete":
# 使用DB类对象调用delete_func方法执行删除的sql语句
db_fix.delete_func(sql_data)
# 将数据库中的数据删除完之后,再发送请求
# 判断sql语句类型是否为select|delete或者为delete|select
elif sql_type == "select|delete" or sql_type == "delete|select":
# 使用DB类对象调用delete_func方法执行删除的sql语句
db_fix.delete_func(sql_data["delete"])
# 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果
select_result = db_fix.select_func(sql_data["select"])
# 将查询结果更新到用例数据中
case_data[update_key] = select_result
# 将更新之后的用例数据发送给服务器。
# 使用RequestsMethod对象发送请求
res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)
# 断言
try:
for key in expect_data:
assert expect_data[key] == res.json().get(key)
except AssertionError as e:
logging.error(f"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}")
raise e
else:
logging.error(f"断言成功, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}")
print("断言")
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