Commit dc905da7 by 李江源

提交接口自动化测试框架

parent 7a947dfa
# ‐*‐coding:utf‐8 ‐*‐ #
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
# ProjectName: program01
# FileName: __init__.py
# Author: Conner-Lee
# Datetime: 2024/11/6 19:36
# Description:
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
import functools
import logging
import os.path
import time
def api_log():
# 创建Logger对象
logger = logging.getLogger()
# 设置日志级别
logger.level = logging.INFO
# 设置文件存放的路径
log_dir_path = os.path.join(os.path.join(os.path.dirname(__file__), "report"), "log")
log_file_name = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) + ".log"
log_path = os.path.join(log_dir_path, log_file_name)
# 创建代理对象
handler = logging.FileHandler(filename=log_path, mode="a", encoding="utf-8")
# 设置日志显示格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s: %(message)s')
# 给代理对象设置日志格式
handler.setFormatter(formatter)
# 给日志添加代理对象
logger.addHandler(handler)
return logger
logor = api_log()
# 定义一个装饰器,来使用log
def log(func_name):
# 装饰器返回内部函数时,沿用被装饰者的名称
@functools.wraps(func_name)
def inner(*args, **kwargs):
# __code__: 返回函数或方法的对象,可以获取函数或者方法的属性。
# __code__.co_filename:获取函数或方法所在的py文件
# __code__.co_firstlineno:获取函数或方法所在的py文件开始行号
logor.info(f"执行的功能为:{func_name.__name__}, 功能描述为:{func_name.__doc__}, 所在的py文件为:{func_name.__code__.co_filename}, 所在的行为:{func_name.__code__.co_firstlineno}行,形参的值为:{args}或{kwargs}")
try:
result = func_name(*args, **kwargs)
except Exception as e:
logor.error(
f"执行的功能为:{func_name.__name__}, 功能描述为:{func_name.__doc__}, 所在的py文件为:{func_name.__code__.co_filename}, 所在的行为:{func_name.__code__.co_firstlineno}行,形参的值为:{args}或{kwargs}"
f"错误的类型为:{type(e)}, 错误的描述为:{e}")
raise e
else:
return result
return inner
# ‐*‐coding:utf‐8 ‐*‐ #
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
# ProjectName: program01
# FileName: __init__.py
# Author: Conner-Lee
# Datetime: 2024/11/6 19:37
# Description:
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
# ‐*‐coding:utf‐8 ‐*‐ #
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
# ProjectName: program01
# FileName: db.py
# Author: Conner-Lee
# Datetime: 2024/11/9 09:58
# Description:
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
import pymysql
from MyApiAutoTest_v3_3 import logor, log
from MyApiAutoTest_v3_3.common.read_basic_ini import ReadBasicIni
class DB:
def __init__(self):
ini = ReadBasicIni()
try:
self.conn = pymysql.connect(
host=ini.get_sql_connect("host"),
port=int(ini.get_sql_connect("port")),
user=ini.get_sql_connect("username"),
password=ini.get_sql_connect("password"),
database=ini.get_sql_connect("database"),
autocommit=True,
charset="utf8"
)
self.cursor = self.conn.cursor()
except Exception as e:
logor.error(f"链接数据库时出错,请求检查ini配置文件,发生的错误类型为:{type(e)}, 错误的描述为:{e}")
raise e
@log
def delete(self, sql_sentence):
"""执行删除的sql语句"""
if isinstance(sql_sentence, str) and sql_sentence.strip().lower().startswith("delete"):
try:
self.cursor.execute(sql_sentence)
except Exception as e:
# logor.error(f"执行的方法为:delete,功能描述为:执行删除的sql语句,传入的参数为:{sql_sentence}, 错误类型为:{type(e)}, 错误的描述为:{e}")
raise ValueError(f"执行的方法为:delete,功能描述为:执行删除的sql语句,传入的参数为:{sql_sentence}, 错误类型为:{type(e)}, 错误的描述为:{e}")
else:
raise ValueError("SQL语句错误")
@log
def select(self, sql_sentence):
if isinstance(sql_sentence, str) and sql_sentence.strip().lower().startswith("select"):
try:
self.cursor.execute(sql_sentence)
select_result = self.cursor.fetchall()
if select_result:
return select_result[0][0]
except Exception as e:
raise e
else:
logor.error(f"执行的方法为:select,功能描述为:执行查询的sql语句,传入的参数为:{sql_sentence}, 错误类型为:ValueError, 错误的描述为:sql语句错误")
raise ValueError("sql语句错误")
\ No newline at end of file
# ‐*‐coding:utf‐8 ‐*‐ #
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
# ProjectName: program01
# FileName: read_basic_ini.py
# Author: Conner-Lee
# Datetime: 2024/11/6 20:22
# Description:
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
import configparser
import os.path
from MyApiAutoTest_v3_3 import log
class ReadBasicIni:
def __init__(self):
"""读取ini文件"""
self.data_config = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config")
ini_path = os.path.join(self.data_config, "basic_config.ini")
self.conf = configparser.ConfigParser()
self.conf.read(ini_path, encoding="utf-8")
@log
def get_host(self, key):
"""根据key获取域名"""
return self.conf.get("host", key)
@log
def get_sql_connect(self, key):
"""根据key获取数据库连接信息"""
return self.conf.get("sql", key)
if __name__ == "__main__":
basic_ini = ReadBasicIni()
print(basic_ini.get_host("bpm"))
print(basic_ini.get_sql_connect("host"))
print(basic_ini.get_sql_connect("port"))
# ‐*‐coding:utf‐8 ‐*‐ #
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
# ProjectName: program01
# FileName: read_excel.py
# Author: Conner-Lee
# Datetime: 2024/11/9 10:14
# Description:
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
import openpyxl
from MyApiAutoTest_v3_3 import log
from MyApiAutoTest_v3_3.common.read_basic_ini import ReadBasicIni
from MyApiAutoTest_v3_3.common.read_json import read_json
from MyApiAutoTest_v3_3.common.read_user_ini import ReadUserIni
from MyApiAutoTest_v3_3.data_config.settings import *
class ReadExcel:
@log
def __init__(self, user):
"""读取所有配置文件的数据"""
# 创建ini对象
ini = ReadUserIni(user)
# 获取用户的json数据文件路径
case_data_path = ini.get_file_path("case")
expect_data_path = ini.get_file_path("expect")
sql_data_path = ini.get_file_path("sql")
self.case_data_dict = read_json(case_data_path)
self.expect_data_dict = read_json(expect_data_path)
self.sql_data_dict = read_json(sql_data_path)
# 获取excel的路径
excel_path = ini.get_file_path("excel")
table_name = ini.get_table_name("name")
try:
workbook = openpyxl.load_workbook(excel_path)
self.sheet = workbook[table_name]
except Exception as e:
raise e
def __get_cell_value(self, colum: str, row: int) -> str:
"""获取指定单元格数据"""
try:
cell_value = self.sheet[colum + str(row)].value
if cell_value is None:
return None
elif cell_value.strip():
return cell_value.strip()
except Exception as e:
raise e
@log
def case_id(self, row):
"""获取用例的ID"""
return self.__get_cell_value(CASEID, row)
@log
def module_name(self, row):
"""获取模块名称"""
return self.__get_cell_value(MODULE, row)
@log
def api_name(self, row):
"""获取解耦名称"""
return self.__get_cell_value(API, row)
@log
def title(self, row):
"""获取用例标题"""
return self.__get_cell_value(TITLE, row)
@log
def level(self, row):
"""获取用例等级"""
return self.__get_cell_value(LEVEL, row)
@log
def req_method(self, row):
"""获取请求方式"""
return self.__get_cell_value(METHOD, row)
@log
def req_url(self, row):
"""获取请求的URL"""
path = self.__get_cell_value(PATH, row)
if path:
return ReadBasicIni().get_host(HOST_NAME) + path
@log
def req_mime(self, row):
"""获取请求的媒体类型"""
mime = self.__get_cell_value(MIME, row)
if mime:
return mime.lower()
@log
def case_data(self, row):
"""获取用例数据"""
case_data_key = self.__get_cell_value(CASE, row)
module_name = self.module_name(row)
api_name = self.api_name(row)
if case_data_key and module_name and api_name:
return self.case_data_dict[module_name][api_name][case_data_key]
@log
def expect_data(self, row):
"""获取期望数据"""
expect_data_key = self.__get_cell_value(EXPECT, row)
module_name = self.module_name(row)
api_name = self.api_name(row)
if expect_data_key and module_name and api_name:
return self.expect_data_dict[module_name][api_name][expect_data_key]
@log
def sql_type(self, row):
"""获取sql语句类型"""
value = self.__get_cell_value(SQLTYPE, row)
if value:
return value.lower()
@log
def sql_data(self, row):
sql_data_key = self.__get_cell_value(SQL, row)
module_name = self.module_name(row)
api_name = self.api_name(row)
if sql_data_key and module_name and api_name:
return self.sql_data_dict[module_name][api_name][sql_data_key]
@log
def update_keys(self, row):
"""获取用例标题"""
return self.__get_cell_value(UPDATEKEY, row)
@log
def get_data(self):
data_list = []
for row in range(2,self.sheet.max_row+1):
case_id = self.case_id(row)
module = self.module_name(row)
api = self.api_name(row)
title = self.title(row)
level = self.level(row)
method = self.req_method(row)
url = self.req_url(row)
mime = self.req_mime(row)
case_data = self.case_data(row)
expect_data = self.expect_data(row)
sql_type = self.sql_type(row)
sql_data = self.sql_data(row)
update_key = self.update_keys(row)
if method and url and expect_data:
data_list.append([case_id, module, api, title, level, method, url, mime, case_data, expect_data, sql_type, sql_data, update_key])
else:
return data_list
if __name__ == "__main__":
excel = ReadExcel("zs_data")
for data in excel.get_data():
print(data)
# print(excel.req_mime(3))
# ‐*‐coding:utf‐8 ‐*‐ #
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
# ProjectName: program01
# FileName: read_json.py
# Author: Conner-Lee
# Datetime: 2024/11/9 09:52
# Description:
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
import json
import os.path
from MyApiAutoTest_v3_3 import log, logor
@log
def read_json(file_path):
if isinstance(file_path, str) and os.path.isfile(file_path) and file_path.endswith(".json"):
with open(file_path, mode="r", encoding="utf-8") as f:
try:
return json.loads(f.read())
except Exception as e:
logor.error(f"执行的函数为:read_json,描述为:读取json文件,将json文件的内容序列化为python对象在返回,传入的参数为:{file_path}, 文件路径不存在"
f"错误类型为:{type(e)}, 错误的描述为:{e}")
else:
logor.error(f"执行的函数为:read_json,描述为:读取json文件,将json文件的内容序列化为python对象在返回,传入的参数为:{file_path}, 文件路径不存在"
f"错误类型为:FileNotFoundError, 错误的描述为:文件路径错误")
raise FileNotFoundError("文件路径错误")
# ‐*‐coding:utf‐8 ‐*‐ #
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
# ProjectName: program01
# FileName: read_user_ini.py
# Author: Conner-Lee
# Datetime: 2024/11/9 09:33
# Description:
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
import configparser
import os.path
from MyApiAutoTest_v3_3 import log
class ReadUserIni:
def __init__(self, user_name):
self.data_config = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config")
self.user_config_dir = os.path.join(self.data_config, user_name)
ini_path = os.path.join(self.user_config_dir, "config.ini")
self.conf = configparser.ConfigParser()
self.conf.read(ini_path, encoding="utf-8")
@log
def get_file_path(self, key):
"""读取配置文件,并转为绝对路径返回"""
file_name = self.conf.get("file", key)
return os.path.join(self.user_config_dir, file_name)
@log
def get_table_name(self, key):
return self.conf.get("table", key)
if __name__ == "__main__":
user_ini = ReadUserIni("zs_data")
print(user_ini.get_table_name("name"))
print(user_ini.get_file_path("excel"))
# 配置被测系统的域名
[host]
bpm=http://36.139.193.99:8088
# 数据库的链接信息
[sql]
host=36.139.193.99
port=3306
username=root
password=Rhrc@2024
database=eip8
\ No newline at end of file
{
"认证接口": {
"登录系统": {
"LoginSuccess": {
"username": "admin",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE="
},
"LoginErrorPasswordIsError": {
"username": "admin",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE"
},
"LoginErrorPasswordIsLong": {
"username": "admin",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcPPSLlZWLfvG7yzdc+CyE="
},
"LoginErrorPasswordIsShort": {
"username": "admin",
"password": "1"
},
"LoginErrorPasswordIsSpecial": {
"username": "admin",
"password": "㊚㊛囍㊒㊖☑✔☐☒✘卍"
},
"LoginErrorPasswordIsNone": {
"username": "admin",
"password": ""
},
"LoginErrorUsernameIsNone": {
"username": "",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE="
},
"LoginErrorUsernameIsShort": {
"username": "a",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE="
},
"LoginErrorUsernameIsLong": {
"username": "adminadminadminadminadminadmin",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE="
},
"LoginErrorUsernameIsSpecial": {
"username": "㊚㊛囍㊒㊖☑✔☐☒✘卍",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE="
}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {
"code": "testAddDem",
"description": "testAddDem",
"isDefault": 0,
"name": "testAddDem"
}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "需要更新"},
"DeleteDemErrorIdIsNone": {"ids": ""}
},
"设置默认维度": {
"SetDefaultDemSuccess": {"code": "testAddDem"}
},
"更新维度": {
"UpdateDemSuccess": {
"code": "testAddDem",
"description": "测试添加的维度",
"isDefault": 0,
"name": "测试添加的维度"
}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "testAddOrg",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": "测试添加的组织",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"删除组织": {
"DelOrgSuccess": "testAddOrg"
},
"保存组织参数": {
"SaveOrgParamSuccess": {
"query": {"orgCode": "testAddOrg"},
"body": [{"alias": "sz", "value": 1}]
}
}
},
"用户管理": {
"添加用户": {
"AddUserSuccess": {
"id":"",
"account":"testAddUser",
"address":"",
"email":"",
"fullname":"测试添加的用户",
"mobile":"",
"password":"123456",
"photo":"",
"sex":"",
"status":1
}
}
}
}
# 配置文件的名称
[file]
# 配置用例管理文件名称
excel=apiAutoTest.xlsx
# 配置用例json文件名称
case=case_data.json
# 配置期望数据名称名称
expect=expect_data.json
# 配置sql语句文件的名称
sql=sql_data.json
# 配置excel工作表的名称
[table]
name=BPM接口测试
{
"认证接口":{
"登录系统":{
"LoginSuccess":{"username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true},
"LoginErrorPasswordIsError":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorPasswordIsLong":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorPasswordIsShort":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorPasswordIsSpecial":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorPasswordIsNone":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsNone":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsShort":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsLong":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsSpecial":{"state":false,"message":"账户错误或该租户未启用"}
},
"刷新token": {
"RefreshTokenSuccess": {"loginStatus":true}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"state": true, "message": "添加维度成功!"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"state":true,"message":"删除维度成功!"},
"DeleteDemErrorIdIsNone": {"state":false,"message":"维度id不能为空!"}
},
"设置默认维度": {
"SetDefaultDemSuccess": {"state": true, "message": "设置默认维度成功"}
},
"更新维度": {
"UpdateDemSuccess": {"state": true, "message": "更新维度成功"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"state": true, "message": "添加组织成功"}
},
"删除组织": {
"DelOrgSuccess": {"state":true,"message":"删除组织成功!"}
},
"保存组织参数": {
"SaveOrgParamSuccess": {"state":true,"message":"保存组织参数成功!"}
}
},
"用户管理": {
"添加用户": {
"AddUserSuccess": {"state":true,"message":"用户添加成功!","value":"","code":200}
}
}
}
{
"维度管理": {
"添加维度": {
"AddDemSuccess": "DELETE FROM uc_demension WHERE CODE_=\"testAddDem\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "SELECT ID_ FROM uc_demension WHERE CODE_=\"testAddDem\";"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"delete": "delete from uc_org where CODE_=\"testAddOrg\";",
"select": "SELECT ID_ FROM uc_demension WHERE CODE_=\"testAddDem\";"
}
}
},
"用户管理": {
"添加用户": {
"AddUserSuccess": "delete from uc_user where ACCOUNT_=\"testAddUser\";"
}
}
}
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test63
# FileName: settings.py
# Author: lao_zhao
# Datetime: 2024/11/6 11:47
# Description:
#
# ---------------------------------------------------------------------------
CASEID = 'A'
MODULE = "B"
API = "C"
TITLE = "D"
LEVEL = 'E'
METHOD = "F"
PATH = "G"
MIME = "H"
CASE = "I"
EXPECT = 'J'
SQLTYPE = "K"
SQL = "L"
UPDATEKEY = 'M'
# ================================
EXCEL_NAME = "excel"
CASE_NAME = "case"
EXPECT_NAME = "expect"
SQL_NAME = 'sql'
TABLE_NAME = 'name'
HOST_NAME = 'bpm'
\ No newline at end of file
# 配置文件的名称
[file]
# 配置用例管理文件名称
excel=用例excel文件.xlsx
# 配置用例json文件名称
case=用例数据.json
# 配置期望数据名称名称
expect=期望数据.json
# 配置sql语句文件的名称
sql=sql语句.json
# 配置excel工作表的名称
[table]
name=接口测试
{
{
"维度管理": {
"添加维度": {
"AddDemSuccess": "DELETE FROM uc_demension WHERE CODE_=\"testAddDem\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "SELECT ID_ FROM uc_demension WHERE CODE_=\"testAddDem\";"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"delete": "delete from uc_org where CODE_=\"testAddOrg\";",
"select": "SELECT ID_ FROM uc_demension WHERE CODE_=\"testAddDem\";"
}
}
},
"用户管理": {
"添加用户": {
"AddUserSuccess": "delete from uc_user where ACCOUNT_=\"testAddUser\";"
}
}
}
\ No newline at end of file
{
{
"认证接口":{
"登录系统":{
"LoginSuccess":{"username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true},
"LoginErrorPasswordIsError":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorPasswordIsLong":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorPasswordIsShort":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorPasswordIsSpecial":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorPasswordIsNone":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsNone":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsShort":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsLong":{"state":false,"message":"账户错误或该租户未启用"},
"LoginErrorUsernameIsSpecial":{"state":false,"message":"账户错误或该租户未启用"}
},
"刷新token": {
"RefreshTokenSuccess": {"loginStatus":true}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"state": true, "message": "添加维度成功!"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"state":true,"message":"删除维度成功!"},
"DeleteDemErrorIdIsNone": {"state":false,"message":"维度id不能为空!"}
},
"设置默认维度": {
"SetDefaultDemSuccess": {"state": true, "message": "设置默认维度成功!"}
},
"更新维度": {
"UpdateDemSuccess": {"state": true, "message": "更新维度成功!"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"state": true, "message": "添加组织成功!"}
},
"删除组织": {
"DelOrgSuccess": {"state":true,"message":"删除组织成功!"}
},
"保存组织参数": {
"SaveOrgParamSuccess": {"state":true,"message":"保存组织参数成功!"}
}
},
"用户管理": {
"添加用户": {
"AddUserSuccess": {"state":true,"message":"用户添加成功!"}
}
}
}
{
{
"认证接口": {
"登录系统": {
"LoginSuccess": {
"username": "admin",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE="
},
"LoginErrorPasswordIsError": {
"username": "admin",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE"
},
"LoginErrorPasswordIsLong": {
"username": "admin",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcPPSLlZWLfvG7yzdc+CyE="
},
"LoginErrorPasswordIsShort": {
"username": "admin",
"password": "1"
},
"LoginErrorPasswordIsSpecial": {
"username": "admin",
"password": "㊚㊛囍㊒㊖☑✔☐☒✘卍"
},
"LoginErrorPasswordIsNone": {
"username": "admin",
"password": ""
},
"LoginErrorUsernameIsNone": {
"username": "",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE="
},
"LoginErrorUsernameIsShort": {
"username": "a",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE="
},
"LoginErrorUsernameIsLong": {
"username": "adminadminadminadminadminadmin",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE="
},
"LoginErrorUsernameIsSpecial": {
"username": "㊚㊛囍㊒㊖☑✔☐☒✘卍",
"password": "QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE="
}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {
"code": "testAddDem",
"description": "testAddDem",
"isDefault": 0,
"name": "testAddDem"
}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "需要更新"},
"DeleteDemErrorIdIsNone": {"ids": ""}
},
"设置默认维度": {
"SetDefaultDemSuccess": {"code": "testAddDem"}
},
"更新维度": {
"UpdateDemSuccess": {
"code": "testAddDem",
"description": "测试添加的维度",
"isDefault": 0,
"name": "测试添加的维度"
}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "testAddOrg",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": "测试添加的组织",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"删除组织": {
"DelOrgSuccess": "testAddOrg"
},
"保存组织参数": {
"SaveOrgParamSuccess": {
"query": {"orgCode": "testAddOrg"},
"body": [{"alias": "sz", "value": 1}]
}
}
},
"用户管理": {
"添加用户": {
"AddUserSuccess": {
"id":"",
"account":"testAddUser",
"address":"",
"email":"",
"fullname":"测试添加的用户",
"mobile":"",
"password":"123456",
"photo":"",
"sex":"",
"status":1
}
}
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E4F6B40>, 'post', 'http://36.139.193.99:8088/api/org/v1/org/addOrg', 'json', {'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 'select|delete', {'delete': 'delete from uc_org where CODE_="testAddOrg";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_="testAddDem";'}, 'demId')或{}
INFO  root:__init__.py:46 执行的功能为:delete, 功能描述为:执行删除的sql语句, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\db.py, 所在的行为:33行,形参的值为:(<MyApiAutoTest_v3_3.common.db.DB object at 0x000001845E4F68D0>, 'delete from uc_org where CODE_="testAddOrg";')或{}
INFO  root:__init__.py:46 执行的功能为:select, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\db.py, 所在的行为:45行,形参的值为:(<MyApiAutoTest_v3_3.common.db.DB object at 0x000001845E4F68D0>, 'SELECT ID_ FROM uc_demension WHERE CODE_="testAddDem";')或{}
INFO  root:test_bpm.py:42 断言成功,用例数据为:{'code': 'testAddOrg', 'demId': '1855517127655137280', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'}, 服务器返回的数据为:{"state":true,"message":"添加组织成功!","value":"","code":200}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E42A120>, 'post', 'http://36.139.193.99:8088/auth', 'application/json', {'username': '㊚㊛囍㊒㊖☑✔☐☒✘卍', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}, None, None, None)或{}
INFO  root:test_bpm.py:41 断言成功,用例数据为:{'username': '㊚㊛囍㊒㊖☑✔☐☒✘卍', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1855517126711418880"}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E4F6B40>, 'post', 'http://36.139.193.99:8088/api/user/v1/user/addUser', 'json', {'id': '', 'account': 'testAddUser', 'address': '', 'email': '', 'fullname': '测试添加的用户', 'mobile': '', 'password': '123456', 'photo': '', 'sex': '', 'status': 1}, 'delete', 'delete from uc_user where ACCOUNT_="testAddUser";', None)或{}
INFO  root:__init__.py:46 执行的功能为:delete, 功能描述为:执行删除的sql语句, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\db.py, 所在的行为:33行,形参的值为:(<MyApiAutoTest_v3_3.common.db.DB object at 0x000001845E4F68D0>, 'delete from uc_user where ACCOUNT_="testAddUser";')或{}
INFO  root:test_bpm.py:42 断言成功,用例数据为:{'id': '', 'account': 'testAddUser', 'address': '', 'email': '', 'fullname': '测试添加的用户', 'mobile': '', 'password': '123456', 'photo': '', 'sex': '', 'status': 1},期望数据为:{'state': True, 'message': '用户添加成功!'}, 服务器返回的数据为:{"state":true,"message":"用户添加成功!","value":"","code":200}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E4F6B40>, 'put', 'http://36.139.193.99:8088/api/demension/v1/dem/updateDem', 'application/json', {'code': 'testAddDem', 'description': '测试添加的维度', 'isDefault': 0, 'name': '测试添加的维度'}, None, None, None)或{}
INFO  root:test_bpm.py:42 断言成功,用例数据为:{'code': 'testAddDem', 'description': '测试添加的维度', 'isDefault': 0, 'name': '测试添加的维度'},期望数据为:{'state': True, 'message': '更新维度成功!'}, 服务器返回的数据为:{"state":true,"message":"更新维度成功!","value":"","code":200}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E42A120>, 'get', 'http://36.139.193.99:8088/refresh', None, None, None, None, None)或{}
INFO  root:test_bpm.py:41 断言成功,用例数据为:None,期望数据为:{'loginStatus': True}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MzEzMTExMzEsImlhdCI6MTczMTIyNDczMX0.txK-xYU0Ei7SSB6OoaxEEBa_gbB99COH72g_1XeUNSyyGc_6Tt0wfp40xCV_8a0ZHhCKAJcdrFTMNSt5YieEVQ","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E4F6B40>, 'post', 'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams', 'query|json', {'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'sz', 'value': 1}]}, None, None, None)或{}
ERROR  root:test_bpm.py:39 断言失败,用例数据为:{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'sz', 'value': 1}]},期望数据为:{'state': True, 'message': '保存组织参数成功!'}, 服务器返回的数据为:{"state":false,"message":"Required String parameter 'orgCode' is not present","code":200,"logId":"1855517128653381632"}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:get_sql_connect, 功能描述为:根据key获取数据库连接信息, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\read_basic_ini.py, 所在的行为:29行,形参的值为:(<MyApiAutoTest_v3_3.common.read_basic_ini.ReadBasicIni object at 0x000001845E429280>, 'host')或{}
INFO  root:__init__.py:46 执行的功能为:get_sql_connect, 功能描述为:根据key获取数据库连接信息, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\read_basic_ini.py, 所在的行为:29行,形参的值为:(<MyApiAutoTest_v3_3.common.read_basic_ini.ReadBasicIni object at 0x000001845E429280>, 'port')或{}
INFO  root:__init__.py:46 执行的功能为:get_sql_connect, 功能描述为:根据key获取数据库连接信息, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\read_basic_ini.py, 所在的行为:29行,形参的值为:(<MyApiAutoTest_v3_3.common.read_basic_ini.ReadBasicIni object at 0x000001845E429280>, 'username')或{}
INFO  root:__init__.py:46 执行的功能为:get_sql_connect, 功能描述为:根据key获取数据库连接信息, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\read_basic_ini.py, 所在的行为:29行,形参的值为:(<MyApiAutoTest_v3_3.common.read_basic_ini.ReadBasicIni object at 0x000001845E429280>, 'password')或{}
INFO  root:__init__.py:46 执行的功能为:get_sql_connect, 功能描述为:根据key获取数据库连接信息, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\read_basic_ini.py, 所在的行为:29行,形参的值为:(<MyApiAutoTest_v3_3.common.read_basic_ini.ReadBasicIni object at 0x000001845E429280>, 'database')或{}
INFO  root:__init__.py:46 执行的功能为:get_host, 功能描述为:根据key获取域名, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\read_basic_ini.py, 所在的行为:24行,形参的值为:(<MyApiAutoTest_v3_3.common.read_basic_ini.ReadBasicIni object at 0x000001845E460260>, 'bpm')或{}
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E42A120>, 'post', 'http://36.139.193.99:8088/auth', 'application/json', {'username': 'admin', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}, None, None, None)或{}
INFO  root:test_bpm.py:41 断言成功,用例数据为:{'username': 'admin', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='},期望数据为:{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MzEzMTExMzAsImlhdCI6MTczMTIyNDczMH0.nujtbsNRmxSXDP6PJ6dm6GmIZU7vY4kvjzeJ1sjh8mMRliOmtcsr39RJ2VL4vibY7iyZNci0GN0pEdy9ICBmFw","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E4F6B40>, 'DELETE', 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', 'query', {'ids': '需要更新'}, 'select', 'SELECT ID_ FROM uc_demension WHERE CODE_="testAddDem";', 'ids')或{}
INFO  root:__init__.py:46 执行的功能为:select, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\db.py, 所在的行为:45行,形参的值为:(<MyApiAutoTest_v3_3.common.db.DB object at 0x000001845E4F68D0>, 'SELECT ID_ FROM uc_demension WHERE CODE_="testAddDem";')或{}
ERROR  root:test_bpm.py:39 断言失败,用例数据为:{'ids': '1855517127655137280'},期望数据为:{'state': True, 'message': '删除维度成功!'}, 服务器返回的数据为:{"state":false,"message":"【测试添加的维度(testAddDem)】的维度下存在组织,不允许删除 ","value":"","code":200}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E42A120>, 'post', 'http://36.139.193.99:8088/auth', 'application/json', {'username': 'admin', 'password': '㊚㊛囍㊒㊖☑✔☐☒✘卍'}, None, None, None)或{}
ERROR  root:test_bpm.py:38 断言失败,用例数据为:{'username': 'admin', 'password': '㊚㊛囍㊒㊖☑✔☐☒✘卍'},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1855517125629288448"}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E42A120>, 'post', 'http://36.139.193.99:8088/auth', 'application/json', {'username': 'admin', 'password': '1'}, None, None, None)或{}
ERROR  root:test_bpm.py:38 断言失败,用例数据为:{'username': 'admin', 'password': '1'},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1855517125377630208"}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E42A120>, 'post', 'http://36.139.193.99:8088/auth', 'application/json', {'username': 'admin', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcPPSLlZWLfvG7yzdc+CyE='}, None, None, None)或{}
ERROR  root:test_bpm.py:38 断言失败,用例数据为:{'username': 'admin', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcwlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdcPPSLlZWLfvG7yzdc+CyE='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1855517125125971968"}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:get_sql_connect, 功能描述为:根据key获取数据库连接信息, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\read_basic_ini.py, 所在的行为:29行,形参的值为:(<MyApiAutoTest_v3_3.common.read_basic_ini.ReadBasicIni object at 0x000001845E4F62D0>, 'host')或{}
INFO  root:__init__.py:46 执行的功能为:get_sql_connect, 功能描述为:根据key获取数据库连接信息, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\read_basic_ini.py, 所在的行为:29行,形参的值为:(<MyApiAutoTest_v3_3.common.read_basic_ini.ReadBasicIni object at 0x000001845E4F62D0>, 'port')或{}
INFO  root:__init__.py:46 执行的功能为:get_sql_connect, 功能描述为:根据key获取数据库连接信息, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\read_basic_ini.py, 所在的行为:29行,形参的值为:(<MyApiAutoTest_v3_3.common.read_basic_ini.ReadBasicIni object at 0x000001845E4F62D0>, 'username')或{}
INFO  root:__init__.py:46 执行的功能为:get_sql_connect, 功能描述为:根据key获取数据库连接信息, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\read_basic_ini.py, 所在的行为:29行,形参的值为:(<MyApiAutoTest_v3_3.common.read_basic_ini.ReadBasicIni object at 0x000001845E4F62D0>, 'password')或{}
INFO  root:__init__.py:46 执行的功能为:get_sql_connect, 功能描述为:根据key获取数据库连接信息, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\read_basic_ini.py, 所在的行为:29行,形参的值为:(<MyApiAutoTest_v3_3.common.read_basic_ini.ReadBasicIni object at 0x000001845E4F62D0>, 'database')或{}
INFO  root:__init__.py:46 执行的功能为:get_host, 功能描述为:根据key获取域名, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\read_basic_ini.py, 所在的行为:24行,形参的值为:(<MyApiAutoTest_v3_3.common.read_basic_ini.ReadBasicIni object at 0x000001845E46F650>, 'bpm')或{}
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E4F6B40>, 'post', 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', 'json', {'code': 'testAddDem', 'description': 'testAddDem', 'isDefault': 0, 'name': 'testAddDem'}, 'delete', 'DELETE FROM uc_demension WHERE CODE_="testAddDem";', None)或{}
INFO  root:__init__.py:46 执行的功能为:delete, 功能描述为:执行删除的sql语句, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\common\db.py, 所在的行为:33行,形参的值为:(<MyApiAutoTest_v3_3.common.db.DB object at 0x000001845E4F68D0>, 'DELETE FROM uc_demension WHERE CODE_="testAddDem";')或{}
INFO  root:test_bpm.py:42 断言成功,用例数据为:{'code': 'testAddDem', 'description': 'testAddDem', 'isDefault': 0, 'name': 'testAddDem'},期望数据为:{'state': True, 'message': '添加维度成功!'}, 服务器返回的数据为:{"state":true,"message":"添加维度成功!","value":"","code":200}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E4F6B40>, 'DELETE', 'http://36.139.193.99:8088/api/demension/v2/dem/deleteDemByIds', 'query', {'ids': ''}, None, None, None)或{}
ERROR  root:test_bpm.py:39 断言失败,用例数据为:{'ids': ''},期望数据为:{'state': False, 'message': '维度id不能为空!'}, 服务器返回的数据为:{"state":false,"message":"删除维度失败,维度ids必填","code":200,"logId":"1855517129550962688"}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E42A120>, 'post', 'http://36.139.193.99:8088/auth', 'application/json', {'username': 'admin', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE'}, None, None, None)或{}
ERROR  root:test_bpm.py:38 断言失败,用例数据为:{'username': 'admin', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE'},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MzEzMTExMzAsImlhdCI6MTczMTIyNDczMH0.nujtbsNRmxSXDP6PJ6dm6GmIZU7vY4kvjzeJ1sjh8mMRliOmtcsr39RJ2VL4vibY7iyZNci0GN0pEdy9ICBmFw","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E42A120>, 'post', 'http://36.139.193.99:8088/auth', 'application/json', {'username': 'admin', 'password': ''}, None, None, None)或{}
ERROR  root:test_bpm.py:38 断言失败,用例数据为:{'username': 'admin', 'password': ''},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账号或密码错误","code":200,"logId":"1855517125880946688"}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E42A120>, 'post', 'http://36.139.193.99:8088/auth', 'application/json', {'username': 'adminadminadminadminadminadmin', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}, None, None, None)或{}
INFO  root:test_bpm.py:41 断言成功,用例数据为:{'username': 'adminadminadminadminadminadmin', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1855517126522675200"}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E42A120>, 'post', 'http://36.139.193.99:8088/auth', 'application/json', {'username': 'a', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}, None, None, None)或{}
INFO  root:test_bpm.py:41 断言成功,用例数据为:{'username': 'a', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1855517126325542912"}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E4F6B40>, 'put', 'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem', 'query', {'code': 'testAddDem'}, None, None, None)或{}
INFO  root:test_bpm.py:42 断言成功,用例数据为:{'code': 'testAddDem'},期望数据为:{'state': True, 'message': '设置默认维度成功!'}, 服务器返回的数据为:{"state":true,"message":"设置默认维度成功!","value":"","code":200}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E42A120>, 'Post', 'http://36.139.193.99:8088/auth', 'application/json', {'username': '', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}, None, None, None)或{}
INFO  root:test_bpm.py:41 断言成功,用例数据为:{'username': '', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='},期望数据为:{'state': False, 'message': '账户错误或该租户未启用'}, 服务器返回的数据为:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1855517126103244800"}
\ No newline at end of file
INFO  root:__init__.py:46 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E4F6B40>, 'post', 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', 'x-www-form-urlencoded', 'testAddOrg', None, None, None)或{}
ERROR  root:__init__.py:50 执行的功能为:request_all, 功能描述为:None, 所在的py文件为:C:\Python_Home\study_python\program01\MyApiAutoTest_v3_3\requests_method\requests_method.py, 所在的行为:31行,形参的值为:(<MyApiAutoTest_v3_3.requests_method.requests_method.RequestsMethod object at 0x000001845E4F6B40>, 'post', 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', 'x-www-form-urlencoded', 'testAddOrg', None, None, None)或{}错误的类型为:<class 'ValueError'>, 错误的描述为:方法:request_all,传入的媒体类型为:x-www-form-urlencoded, 没有符合的判断分支,可以自行封装,也可以继承之后覆盖
\ No newline at end of file
"Epic","Feature","Story","FAILED","BROKEN","PASSED","SKIPPED","UNKNOWN"
"BPM_张三","维度管理","根据维度编码删除维度","2","0","0","0","0"
"BPM_demo","认证接口","登录系统","5","0","5","0","0"
"BPM_张三","维度管理","添加维度","0","0","1","0","0"
"BPM_张三","组织管理","保存组织参数","1","0","0","0","0"
"BPM_张三","组织管理","删除组织","0","1","0","0","0"
"BPM_demo","认证接口","刷新token","0","0","1","0","0"
"BPM_张三","维度管理","设置默认维度","0","0","1","0","0"
"BPM_张三","维度管理","更新维度","0","0","1","0","0"
"BPM_张三","组织管理","添加组织","0","0","1","0","0"
"BPM_张三","用户管理","添加用户","0","0","1","0","0"
"Category","FAILED","BROKEN","PASSED","SKIPPED","UNKNOWN"
"Product defects","8","0","0","0","0"
"Test defects","0","1","0","0","0"
"Status","Start Time","Stop Time","Duration in ms","Parent Suite","Suite","Sub Suite","Test Class","Test Method","Name","Description"
"failed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","27","test_case.test_zs","test_bpm","TestBPM","","","正向用例",""
"passed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","33","test_case.test_demo","test_bpm","TestBPM","","","反向用例-密码正确-用户名过长",""
"failed","Sun Nov 10 15:48:26 CST 2024","Sun Nov 10 15:48:26 CST 2024","19","test_case.test_demo","test_bpm","TestBPM","","","反向用例-用户名正确-密码过长",""
"passed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","48","test_case.test_zs","test_bpm","TestBPM","","","正向用例",""
"failed","Sun Nov 10 15:48:26 CST 2024","Sun Nov 10 15:48:26 CST 2024","35","test_case.test_demo","test_bpm","TestBPM","","","反向用例-用户名正确-密码为空",""
"passed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","41","test_case.test_demo","test_bpm","TestBPM","","","反向用例-密码正确-用户名过短",""
"passed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","35","test_case.test_demo","test_bpm","TestBPM","","","反向用例-密码正确-用户名为空",""
"passed","Sun Nov 10 15:48:26 CST 2024","Sun Nov 10 15:48:26 CST 2024","34","test_case.test_demo","test_bpm","TestBPM","","","正向用例-用户和密码正确",""
"failed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","39","test_case.test_zs","test_bpm","TestBPM","","","正向用例",""
"broken","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","0","test_case.test_zs","test_bpm","TestBPM","","","正向用例",""
"passed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","34","test_case.test_demo","test_bpm","TestBPM","","","正向用例",""
"failed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","43","test_case.test_zs","test_bpm","TestBPM","","","反向用例-维度id为空",""
"passed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","32","test_case.test_zs","test_bpm","TestBPM","","","正向用例",""
"passed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","27","test_case.test_zs","test_bpm","TestBPM","","","正向用例",""
"passed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","61","test_case.test_zs","test_bpm","TestBPM","","","正向用例",""
"failed","Sun Nov 10 15:48:26 CST 2024","Sun Nov 10 15:48:26 CST 2024","43","test_case.test_demo","test_bpm","TestBPM","","","反向用例-用户名正确-密码过短",""
"passed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","73","test_case.test_zs","test_bpm","TestBPM","","","正向用例",""
"failed","Sun Nov 10 15:48:26 CST 2024","Sun Nov 10 15:48:26 CST 2024","54","test_case.test_demo","test_bpm","TestBPM","","","反向用例-用户名正确-密码错误",""
"failed","Sun Nov 10 15:48:26 CST 2024","Sun Nov 10 15:48:26 CST 2024","37","test_case.test_demo","test_bpm","TestBPM","","","反向用例-用户名正确-密码为特殊字符",""
"passed","Sun Nov 10 15:48:27 CST 2024","Sun Nov 10 15:48:27 CST 2024","39","test_case.test_demo","test_bpm","TestBPM","","","反向用例-密码正确-用户名为特殊字符",""
{
"uid" : "2646cc0aa98fada6",
"name" : "正向用例",
"fullName" : "test_case.test_zs.test_bpm.TestBPM#test_bpm",
"historyId" : "b06c951d4f2fdd7dc1a5686b0f444aad",
"time" : {
"start" : 1731224907377,
"stop" : 1731224907425,
"duration" : 48
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1731224906103,
"stop" : 1731224906214,
"duration" : 111
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
}, {
"name" : "req_fix",
"time" : {
"start" : 1731224907279,
"stop" : 1731224907372,
"duration" : 93
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "826ed79a8f472b20",
"name" : "log",
"source" : "826ed79a8f472b20.txt",
"type" : "text/plain",
"size" : 3600
} ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 1,
"hasContent" : true,
"stepsCount" : 0
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1731224907924,
"stop" : 1731224907924,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "添加维度"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM_张三"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "MrLee"
}, {
"name" : "thread",
"value" : "12240-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'添加维度'"
}, {
"name" : "case_data",
"value" : "{'code': 'testAddDem', 'description': 'testAddDem', 'isDefault': 0, 'name': 'testAddDem'}"
}, {
"name" : "case_id",
"value" : "'T11'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '添加维度成功!'}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "method",
"value" : "'post'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'DELETE FROM uc_demension WHERE CODE_=\"testAddDem\";'"
}, {
"name" : "sql_type",
"value" : "'delete'"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "2646cc0aa98fada6.json",
"parameterValues" : [ "'添加维度'", "{'code': 'testAddDem', 'description': 'testAddDem', 'isDefault': 0, 'name': 'testAddDem'}", "'T11'", "{'state': True, 'message': '添加维度成功!'}", "'高'", "'post'", "'json'", "'维度管理'", "'DELETE FROM uc_demension WHERE CODE_=\"testAddDem\";'", "'delete'", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'" ]
}
\ No newline at end of file
{
"uid" : "33a7b0c8ee575a76",
"name" : "正向用例",
"fullName" : "test_case.test_zs.test_bpm.TestBPM#test_bpm",
"historyId" : "a638a20e475b27cdf565aed15cdc30cd",
"time" : {
"start" : 1731224907440,
"stop" : 1731224907472,
"duration" : 32
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1731224906103,
"stop" : 1731224906214,
"duration" : 111
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
}, {
"name" : "req_fix",
"time" : {
"start" : 1731224907279,
"stop" : 1731224907372,
"duration" : 93
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "ef3439c4115415a0",
"name" : "log",
"source" : "ef3439c4115415a0.txt",
"type" : "text/plain",
"size" : 765
} ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 1,
"hasContent" : true,
"stepsCount" : 0
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1731224907924,
"stop" : 1731224907924,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "设置默认维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM_张三"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "MrLee"
}, {
"name" : "thread",
"value" : "12240-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'设置默认维度'"
}, {
"name" : "case_data",
"value" : "{'code': 'testAddDem'}"
}, {
"name" : "case_id",
"value" : "'T13'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '设置默认维度成功!'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "method",
"value" : "'put'"
}, {
"name" : "mime",
"value" : "'query'"
}, {
"name" : "module",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "33a7b0c8ee575a76.json",
"parameterValues" : [ "'设置默认维度'", "{'code': 'testAddDem'}", "'T13'", "{'state': True, 'message': '设置默认维度成功!'}", "'中'", "'put'", "'query'", "'维度管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'" ]
}
\ No newline at end of file
{
"uid" : "4edfa96bdd6d8321",
"name" : "正向用例-用户和密码正确",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "91a3490156690cb2ff979c0e6b6ca1c6",
"time" : {
"start" : 1731224906307,
"stop" : 1731224906341,
"duration" : 34
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1731224906103,
"stop" : 1731224906214,
"duration" : 111
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
}, {
"name" : "req_fix",
"time" : {
"start" : 1731224906214,
"stop" : 1731224906305,
"duration" : 91
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "46be00f0a43940d8",
"name" : "log",
"source" : "46be00f0a43940d8.txt",
"type" : "text/plain",
"size" : 3724
} ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 1,
"hasContent" : true,
"stepsCount" : 0
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1731224907925,
"stop" : 1731224907925,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"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" : "MrLee"
}, {
"name" : "thread",
"value" : "12240-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",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'admin', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}"
}, {
"name" : "case_id",
"value" : "'T001'"
}, {
"name" : "expect_data",
"value" : "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "method",
"value" : "'post'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'正向用例-用户和密码正确'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "4edfa96bdd6d8321.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}", "'T001'", "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}", "'高'", "'post'", "'application/json'", "'认证接口'", "None", "None", "'正向用例-用户和密码正确'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "5ed251abcfd9eba9",
"name" : "正向用例",
"fullName" : "test_case.test_zs.test_bpm.TestBPM#test_bpm",
"historyId" : "7d7d78fb8b4eff103011d131874f9c4b",
"time" : {
"start" : 1731224907690,
"stop" : 1731224907763,
"duration" : 73
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1731224906103,
"stop" : 1731224906214,
"duration" : 111
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
}, {
"name" : "req_fix",
"time" : {
"start" : 1731224907279,
"stop" : 1731224907372,
"duration" : 93
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "400f3135d34c9d3d",
"name" : "log",
"source" : "400f3135d34c9d3d.txt",
"type" : "text/plain",
"size" : 1472
} ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 1,
"hasContent" : true,
"stepsCount" : 0
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1731224907924,
"stop" : 1731224907924,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"labels" : [ {
"name" : "feature",
"value" : "用户管理"
}, {
"name" : "story",
"value" : "添加用户"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM_张三"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "MrLee"
}, {
"name" : "thread",
"value" : "12240-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'添加用户'"
}, {
"name" : "case_data",
"value" : "{'id': '', 'account': 'testAddUser', 'address': '', 'email': '', 'fullname': '测试添加的用户', 'mobile': '', 'password': '123456', 'photo': '', 'sex': '', 'status': 1}"
}, {
"name" : "case_id",
"value" : "'T18'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '用户添加成功!'}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "method",
"value" : "'post'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module",
"value" : "'用户管理'"
}, {
"name" : "sql_data",
"value" : "'delete from uc_user where ACCOUNT_=\"testAddUser\";'"
}, {
"name" : "sql_type",
"value" : "'delete'"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/api/user/v1/user/addUser'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "5ed251abcfd9eba9.json",
"parameterValues" : [ "'添加用户'", "{'id': '', 'account': 'testAddUser', 'address': '', 'email': '', 'fullname': '测试添加的用户', 'mobile': '', 'password': '123456', 'photo': '', 'sex': '', 'status': 1}", "'T18'", "{'state': True, 'message': '用户添加成功!'}", "'高'", "'post'", "'json'", "'用户管理'", "'delete from uc_user where ACCOUNT_=\"testAddUser\";'", "'delete'", "'正向用例'", "None", "'http://36.139.193.99:8088/api/user/v1/user/addUser'" ]
}
\ No newline at end of file
{
"uid" : "62edf99fda806e36",
"name" : "正向用例",
"fullName" : "test_case.test_zs.test_bpm.TestBPM#test_bpm",
"historyId" : "5dc8084ea7ab8b6cf5ba6056afd9c959",
"time" : {
"start" : 1731224907487,
"stop" : 1731224907514,
"duration" : 27
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1731224906103,
"stop" : 1731224906214,
"duration" : 111
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
}, {
"name" : "req_fix",
"time" : {
"start" : 1731224907279,
"stop" : 1731224907372,
"duration" : 93
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "448803d778721ec5",
"name" : "log",
"source" : "448803d778721ec5.txt",
"type" : "text/plain",
"size" : 938
} ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 1,
"hasContent" : true,
"stepsCount" : 0
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1731224907924,
"stop" : 1731224907924,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "更新维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM_张三"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "MrLee"
}, {
"name" : "thread",
"value" : "12240-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'更新维度'"
}, {
"name" : "case_data",
"value" : "{'code': 'testAddDem', 'description': '测试添加的维度', 'isDefault': 0, 'name': '测试添加的维度'}"
}, {
"name" : "case_id",
"value" : "'T14'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '更新维度成功!'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "method",
"value" : "'put'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "62edf99fda806e36.json",
"parameterValues" : [ "'更新维度'", "{'code': 'testAddDem', 'description': '测试添加的维度', 'isDefault': 0, 'name': '测试添加的维度'}", "'T14'", "{'state': True, 'message': '更新维度成功!'}", "'中'", "'put'", "'application/json'", "'维度管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'" ]
}
\ No newline at end of file
{
"uid" : "6496531a8317cb6b",
"name" : "正向用例",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "ffa44683f901143ac06df43628659da8",
"time" : {
"start" : 1731224907227,
"stop" : 1731224907261,
"duration" : 34
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1731224906103,
"stop" : 1731224906214,
"duration" : 111
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
}, {
"name" : "req_fix",
"time" : {
"start" : 1731224906214,
"stop" : 1731224906305,
"duration" : 91
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "45347055d2ed80e2",
"name" : "log",
"source" : "45347055d2ed80e2.txt",
"type" : "text/plain",
"size" : 881
} ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 1,
"hasContent" : true,
"stepsCount" : 0
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1731224907925,
"stop" : 1731224907925,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"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" : "MrLee"
}, {
"name" : "thread",
"value" : "12240-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",
"value" : "'刷新token'"
}, {
"name" : "case_data",
"value" : "None"
}, {
"name" : "case_id",
"value" : "'T011'"
}, {
"name" : "expect_data",
"value" : "{'loginStatus': True}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "method",
"value" : "'get'"
}, {
"name" : "mime",
"value" : "None"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/refresh'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "6496531a8317cb6b.json",
"parameterValues" : [ "'刷新token'", "None", "'T011'", "{'loginStatus': True}", "'中'", "'get'", "None", "'认证接口'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/refresh'" ]
}
\ No newline at end of file
{
"uid" : "7f3cca76f3a19d3b",
"name" : "反向用例-密码正确-用户名为空",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "3bb71f61df1e33b1390cb3a5adf67125",
"time" : {
"start" : 1731224907007,
"stop" : 1731224907042,
"duration" : 35
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1731224906103,
"stop" : 1731224906214,
"duration" : 111
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
}, {
"name" : "req_fix",
"time" : {
"start" : 1731224906214,
"stop" : 1731224906305,
"duration" : 91
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "f6b63601101630de",
"name" : "log",
"source" : "f6b63601101630de.txt",
"type" : "text/plain",
"size" : 1144
} ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 1,
"hasContent" : true,
"stepsCount" : 0
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1731224907925,
"stop" : 1731224907925,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"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" : "MrLee"
}, {
"name" : "thread",
"value" : "12240-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",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': '', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}"
}, {
"name" : "case_id",
"value" : "'T007'"
}, {
"name" : "expect_data",
"value" : "{'state': False, 'message': '账户错误或该租户未启用'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "method",
"value" : "'Post'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-密码正确-用户名为空'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "7f3cca76f3a19d3b.json",
"parameterValues" : [ "'登录系统'", "{'username': '', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}", "'T007'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'Post'", "'application/json'", "'认证接口'", "None", "None", "'反向用例-密码正确-用户名为空'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "b22af31325fb93",
"name" : "反向用例-密码正确-用户名过短",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "494e61fa27e17cb5f6dd716d3d739d58",
"time" : {
"start" : 1731224907055,
"stop" : 1731224907096,
"duration" : 41
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1731224906103,
"stop" : 1731224906214,
"duration" : 111
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
}, {
"name" : "req_fix",
"time" : {
"start" : 1731224906214,
"stop" : 1731224906305,
"duration" : 91
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "e6dfdac0aca01828",
"name" : "log",
"source" : "e6dfdac0aca01828.txt",
"type" : "text/plain",
"size" : 1146
} ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 1,
"hasContent" : true,
"stepsCount" : 0
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1731224907925,
"stop" : 1731224907925,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"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" : "MrLee"
}, {
"name" : "thread",
"value" : "12240-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",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'a', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}"
}, {
"name" : "case_id",
"value" : "'T008'"
}, {
"name" : "expect_data",
"value" : "{'state': False, 'message': '账户错误或该租户未启用'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "method",
"value" : "'post'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-密码正确-用户名过短'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "b22af31325fb93.json",
"parameterValues" : [ "'登录系统'", "{'username': 'a', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}", "'T008'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'post'", "'application/json'", "'认证接口'", "None", "None", "'反向用例-密码正确-用户名过短'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "c677314e5d275414",
"name" : "反向用例-密码正确-用户名为特殊字符",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "ca917b83e98db4327bdb638860f07b10",
"time" : {
"start" : 1731224907153,
"stop" : 1731224907192,
"duration" : 39
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1731224906103,
"stop" : 1731224906214,
"duration" : 111
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
}, {
"name" : "req_fix",
"time" : {
"start" : 1731224906214,
"stop" : 1731224906305,
"duration" : 91
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "2ecf267b80182a19",
"name" : "log",
"source" : "2ecf267b80182a19.txt",
"type" : "text/plain",
"size" : 1210
} ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 1,
"hasContent" : true,
"stepsCount" : 0
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1731224907925,
"stop" : 1731224907925,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"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" : "MrLee"
}, {
"name" : "thread",
"value" : "12240-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",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': '㊚㊛囍㊒㊖☑✔☐☒✘卍', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}"
}, {
"name" : "case_id",
"value" : "'T010'"
}, {
"name" : "expect_data",
"value" : "{'state': False, 'message': '账户错误或该租户未启用'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "method",
"value" : "'post'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-密码正确-用户名为特殊字符'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "c677314e5d275414.json",
"parameterValues" : [ "'登录系统'", "{'username': '㊚㊛囍㊒㊖☑✔☐☒✘卍', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}", "'T010'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'post'", "'application/json'", "'认证接口'", "None", "None", "'反向用例-密码正确-用户名为特殊字符'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "d42367b1218badb4",
"name" : "正向用例",
"fullName" : "test_case.test_zs.test_bpm.TestBPM#test_bpm",
"historyId" : "45592bfb3b2f0c6bce8b183ef4959ec1",
"time" : {
"start" : 1731224907528,
"stop" : 1731224907589,
"duration" : 61
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1731224906103,
"stop" : 1731224906214,
"duration" : 111
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
}, {
"name" : "req_fix",
"time" : {
"start" : 1731224907279,
"stop" : 1731224907372,
"duration" : 93
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "2809d51c35ba247a",
"name" : "log",
"source" : "2809d51c35ba247a.txt",
"type" : "text/plain",
"size" : 1913
} ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 1,
"hasContent" : true,
"stepsCount" : 0
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1731224907924,
"stop" : 1731224907924,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM_张三"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "MrLee"
}, {
"name" : "thread",
"value" : "12240-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_id",
"value" : "'T15'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '添加组织成功!'}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "method",
"value" : "'post'"
}, {
"name" : "mime",
"value" : "'json'"
}, {
"name" : "module",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'delete': 'delete from uc_org where CODE_=\"testAddOrg\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_=\"testAddDem\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "d42367b1218badb4.json",
"parameterValues" : [ "'添加组织'", "{'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'T15'", "{'state': True, 'message': '添加组织成功!'}", "'高'", "'post'", "'json'", "'组织管理'", "{'delete': 'delete from uc_org where CODE_=\"testAddOrg\";', 'select': 'SELECT ID_ FROM uc_demension WHERE CODE_=\"testAddDem\";'}", "'select|delete'", "'正向用例'", "'demId'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "f68b67e663135892",
"name" : "反向用例-密码正确-用户名过长",
"fullName" : "test_case.test_demo.test_bpm.TestBPM#test_bpm",
"historyId" : "d6ffe46b175439dde0de98e73817b16c",
"time" : {
"start" : 1731224907108,
"stop" : 1731224907141,
"duration" : 33
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1731224906103,
"stop" : 1731224906214,
"duration" : 111
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
}, {
"name" : "req_fix",
"time" : {
"start" : 1731224906214,
"stop" : 1731224906305,
"duration" : 91
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "d8dae13e9d29e35c",
"name" : "log",
"source" : "d8dae13e9d29e35c.txt",
"type" : "text/plain",
"size" : 1204
} ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 1,
"hasContent" : true,
"stepsCount" : 0
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1731224907925,
"stop" : 1731224907925,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"shouldDisplayMessage" : false,
"attachmentsCount" : 0,
"hasContent" : false,
"stepsCount" : 0
} ],
"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" : "MrLee"
}, {
"name" : "thread",
"value" : "12240-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",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'adminadminadminadminadminadmin', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}"
}, {
"name" : "case_id",
"value" : "'T009'"
}, {
"name" : "expect_data",
"value" : "{'state': False, 'message': '账户错误或该租户未启用'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "method",
"value" : "'post'"
}, {
"name" : "mime",
"value" : "'application/json'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-密码正确-用户名过长'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "f68b67e663135892.json",
"parameterValues" : [ "'登录系统'", "{'username': 'adminadminadminadminadminadmin', 'password': 'QKpkgIwnyACrUXQrQVRaSUbhPSOsKnj5hoRN5LGKHT3NmLCwGIN+aGa981YZtlLoEfpVvGDnILn0QU09VHSkgL+Or6oTG1E8OtVTmAEjivAe/a4zLPwd/OfvKYIYbBP5ExZyy+wlVTbLgDfqkuKPGOMPPSLlZWLfvG7yzdc+CyE='}", "'T009'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'post'", "'application/json'", "'认证接口'", "None", "None", "'反向用例-密码正确-用户名过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
launch_status failed=8 1731225408000000000
launch_status broken=1 1731225408000000000
launch_status passed=11 1731225408000000000
launch_status skipped=0 1731225408000000000
launch_status unknown=0 1731225408000000000
launch_time duration=1581 1731225408000000000
launch_time min_duration=0 1731225408000000000
launch_time max_duration=73 1731225408000000000
launch_time sum_duration=754 1731225408000000000
launch_problems product_defects=8 1731225408000000000
launch_problems test_defects=1 1731225408000000000
launch_retries retries=0 1731225408000000000
launch_retries run=20 1731225408000000000
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Allure Report summary mail</title>
</head>
<body>
Mail body
</body>
</html>
launch_status_failed 8
launch_status_broken 1
launch_status_passed 11
launch_status_skipped 0
launch_status_unknown 0
launch_time_duration 1581
launch_time_min_duration 0
launch_time_max_duration 73
launch_time_sum_duration 754
launch_problems_product_defects 8
launch_problems_test_defects 1
launch_retries_retries 0
launch_retries_run 20
module.exports = __webpack_public_path__ + "favicon.ico";
\ No newline at end of file
[ {
"data" : {
"Product defects" : 8,
"Test defects" : 1
}
} ]
\ No newline at end of file
[ {
"data" : {
"duration" : 1581
}
} ]
\ No newline at end of file
[ {
"data" : {
"failed" : 8,
"broken" : 1,
"skipped" : 0,
"passed" : 11,
"unknown" : 0,
"total" : 20
}
} ]
\ No newline at end of file
[ {
"data" : {
"run" : 20,
"retry" : 0
}
} ]
\ 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" : 2,
"items" : [ {
"uid" : "ffd1ae226a0f3bdfd500ee5e2644ecd6",
"name" : "BPM_张三",
"statistic" : {
"failed" : 2,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 3
}
}, {
"uid" : "d985ae0a7e3e46d43454642ab73e6d08",
"name" : "BPM_demo",
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
}
} ]
}
\ No newline at end of file
[ {
"data" : {
"Product defects" : 8,
"Test defects" : 1
}
} ]
\ No newline at end of file
{
"total" : 2,
"items" : [ {
"uid" : "8fb3a91ba5aaf9de24cc8a92edc82b5d",
"name" : "Product defects",
"statistic" : {
"failed" : 8,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 8
}
}, {
"uid" : "bdbf199525818fae7a8651db9eafe741",
"name" : "Test defects",
"statistic" : {
"failed" : 0,
"broken" : 1,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
}
} ]
}
\ No newline at end of file
[ {
"data" : {
"duration" : 1581
}
} ]
\ No newline at end of file
[ {
"uid" : "1ea80f386606934",
"name" : "正向用例",
"time" : {
"start" : 1731224907798,
"stop" : 1731224907825,
"duration" : 27
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "f68b67e663135892",
"name" : "反向用例-密码正确-用户名过长",
"time" : {
"start" : 1731224907108,
"stop" : 1731224907141,
"duration" : 33
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "e46c50724dd47cae",
"name" : "反向用例-用户名正确-密码过长",
"time" : {
"start" : 1731224906790,
"stop" : 1731224906809,
"duration" : 19
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "2646cc0aa98fada6",
"name" : "正向用例",
"time" : {
"start" : 1731224907377,
"stop" : 1731224907425,
"duration" : 48
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4ecfa2b34e55ca7a",
"name" : "反向用例-用户名正确-密码为空",
"time" : {
"start" : 1731224906953,
"stop" : 1731224906988,
"duration" : 35
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "b22af31325fb93",
"name" : "反向用例-密码正确-用户名过短",
"time" : {
"start" : 1731224907055,
"stop" : 1731224907096,
"duration" : 41
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "7f3cca76f3a19d3b",
"name" : "反向用例-密码正确-用户名为空",
"time" : {
"start" : 1731224907007,
"stop" : 1731224907042,
"duration" : 35
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4edfa96bdd6d8321",
"name" : "正向用例-用户和密码正确",
"time" : {
"start" : 1731224906307,
"stop" : 1731224906341,
"duration" : 34
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "b11793f110dbb06c",
"name" : "正向用例",
"time" : {
"start" : 1731224907634,
"stop" : 1731224907673,
"duration" : 39
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "bba39f778f33c6da",
"name" : "正向用例",
"time" : {
"start" : 1731224907612,
"stop" : 1731224907612,
"duration" : 0
},
"status" : "broken",
"severity" : "normal"
}, {
"uid" : "6496531a8317cb6b",
"name" : "正向用例",
"time" : {
"start" : 1731224907227,
"stop" : 1731224907261,
"duration" : 34
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "ce89b34cbe0a2b6f",
"name" : "反向用例-维度id为空",
"time" : {
"start" : 1731224907845,
"stop" : 1731224907888,
"duration" : 43
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "33a7b0c8ee575a76",
"name" : "正向用例",
"time" : {
"start" : 1731224907440,
"stop" : 1731224907472,
"duration" : 32
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "62edf99fda806e36",
"name" : "正向用例",
"time" : {
"start" : 1731224907487,
"stop" : 1731224907514,
"duration" : 27
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "d42367b1218badb4",
"name" : "正向用例",
"time" : {
"start" : 1731224907528,
"stop" : 1731224907589,
"duration" : 61
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4b0569de47125e1d",
"name" : "反向用例-用户名正确-密码过短",
"time" : {
"start" : 1731224906830,
"stop" : 1731224906873,
"duration" : 43
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "5ed251abcfd9eba9",
"name" : "正向用例",
"time" : {
"start" : 1731224907690,
"stop" : 1731224907763,
"duration" : 73
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "b7a903bd3620730",
"name" : "反向用例-用户名正确-密码错误",
"time" : {
"start" : 1731224906358,
"stop" : 1731224906412,
"duration" : 54
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "ce9a582510a3e609",
"name" : "反向用例-用户名正确-密码为特殊字符",
"time" : {
"start" : 1731224906895,
"stop" : 1731224906932,
"duration" : 37
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "c677314e5d275414",
"name" : "反向用例-密码正确-用户名为特殊字符",
"time" : {
"start" : 1731224907153,
"stop" : 1731224907192,
"duration" : 39
},
"status" : "passed",
"severity" : "normal"
} ]
\ No newline at end of file
[ {
"data" : {
"failed" : 8,
"broken" : 1,
"skipped" : 0,
"passed" : 11,
"unknown" : 0,
"total" : 20
}
} ]
\ No newline at end of file
[ {
"data" : {
"run" : 20,
"retry" : 0
}
} ]
\ No newline at end of file
[ {
"uid" : "b11793f110dbb06c",
"name" : "正向用例",
"time" : {
"start" : 1731224907634,
"stop" : 1731224907673,
"duration" : 39
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "1ea80f386606934",
"name" : "正向用例",
"time" : {
"start" : 1731224907798,
"stop" : 1731224907825,
"duration" : 27
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "bba39f778f33c6da",
"name" : "正向用例",
"time" : {
"start" : 1731224907612,
"stop" : 1731224907612,
"duration" : 0
},
"status" : "broken",
"severity" : "normal"
}, {
"uid" : "33a7b0c8ee575a76",
"name" : "正向用例",
"time" : {
"start" : 1731224907440,
"stop" : 1731224907472,
"duration" : 32
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "7f3cca76f3a19d3b",
"name" : "反向用例-密码正确-用户名为空",
"time" : {
"start" : 1731224907007,
"stop" : 1731224907042,
"duration" : 35
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "ce89b34cbe0a2b6f",
"name" : "反向用例-维度id为空",
"time" : {
"start" : 1731224907845,
"stop" : 1731224907888,
"duration" : 43
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "b22af31325fb93",
"name" : "反向用例-密码正确-用户名过短",
"time" : {
"start" : 1731224907055,
"stop" : 1731224907096,
"duration" : 41
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "b7a903bd3620730",
"name" : "反向用例-用户名正确-密码错误",
"time" : {
"start" : 1731224906358,
"stop" : 1731224906412,
"duration" : 54
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "ce9a582510a3e609",
"name" : "反向用例-用户名正确-密码为特殊字符",
"time" : {
"start" : 1731224906895,
"stop" : 1731224906932,
"duration" : 37
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "4edfa96bdd6d8321",
"name" : "正向用例-用户和密码正确",
"time" : {
"start" : 1731224906307,
"stop" : 1731224906341,
"duration" : 34
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "c677314e5d275414",
"name" : "反向用例-密码正确-用户名为特殊字符",
"time" : {
"start" : 1731224907153,
"stop" : 1731224907192,
"duration" : 39
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "2646cc0aa98fada6",
"name" : "正向用例",
"time" : {
"start" : 1731224907377,
"stop" : 1731224907425,
"duration" : 48
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "d42367b1218badb4",
"name" : "正向用例",
"time" : {
"start" : 1731224907528,
"stop" : 1731224907589,
"duration" : 61
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "f68b67e663135892",
"name" : "反向用例-密码正确-用户名过长",
"time" : {
"start" : 1731224907108,
"stop" : 1731224907141,
"duration" : 33
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "e46c50724dd47cae",
"name" : "反向用例-用户名正确-密码过长",
"time" : {
"start" : 1731224906790,
"stop" : 1731224906809,
"duration" : 19
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "4b0569de47125e1d",
"name" : "反向用例-用户名正确-密码过短",
"time" : {
"start" : 1731224906830,
"stop" : 1731224906873,
"duration" : 43
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "4ecfa2b34e55ca7a",
"name" : "反向用例-用户名正确-密码为空",
"time" : {
"start" : 1731224906953,
"stop" : 1731224906988,
"duration" : 35
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "5ed251abcfd9eba9",
"name" : "正向用例",
"time" : {
"start" : 1731224907690,
"stop" : 1731224907763,
"duration" : 73
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "62edf99fda806e36",
"name" : "正向用例",
"time" : {
"start" : 1731224907487,
"stop" : 1731224907514,
"duration" : 27
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "6496531a8317cb6b",
"name" : "正向用例",
"time" : {
"start" : 1731224907227,
"stop" : 1731224907261,
"duration" : 34
},
"status" : "passed",
"severity" : "normal"
} ]
\ No newline at end of file
[ {
"uid" : "1ea80f386606934",
"name" : "正向用例",
"time" : {
"start" : 1731224907798,
"stop" : 1731224907825,
"duration" : 27
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "f68b67e663135892",
"name" : "反向用例-密码正确-用户名过长",
"time" : {
"start" : 1731224907108,
"stop" : 1731224907141,
"duration" : 33
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "e46c50724dd47cae",
"name" : "反向用例-用户名正确-密码过长",
"time" : {
"start" : 1731224906790,
"stop" : 1731224906809,
"duration" : 19
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "2646cc0aa98fada6",
"name" : "正向用例",
"time" : {
"start" : 1731224907377,
"stop" : 1731224907425,
"duration" : 48
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4ecfa2b34e55ca7a",
"name" : "反向用例-用户名正确-密码为空",
"time" : {
"start" : 1731224906953,
"stop" : 1731224906988,
"duration" : 35
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "b22af31325fb93",
"name" : "反向用例-密码正确-用户名过短",
"time" : {
"start" : 1731224907055,
"stop" : 1731224907096,
"duration" : 41
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "7f3cca76f3a19d3b",
"name" : "反向用例-密码正确-用户名为空",
"time" : {
"start" : 1731224907007,
"stop" : 1731224907042,
"duration" : 35
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4edfa96bdd6d8321",
"name" : "正向用例-用户和密码正确",
"time" : {
"start" : 1731224906307,
"stop" : 1731224906341,
"duration" : 34
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "b11793f110dbb06c",
"name" : "正向用例",
"time" : {
"start" : 1731224907634,
"stop" : 1731224907673,
"duration" : 39
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "bba39f778f33c6da",
"name" : "正向用例",
"time" : {
"start" : 1731224907612,
"stop" : 1731224907612,
"duration" : 0
},
"status" : "broken",
"severity" : "normal"
}, {
"uid" : "6496531a8317cb6b",
"name" : "正向用例",
"time" : {
"start" : 1731224907227,
"stop" : 1731224907261,
"duration" : 34
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "ce89b34cbe0a2b6f",
"name" : "反向用例-维度id为空",
"time" : {
"start" : 1731224907845,
"stop" : 1731224907888,
"duration" : 43
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "33a7b0c8ee575a76",
"name" : "正向用例",
"time" : {
"start" : 1731224907440,
"stop" : 1731224907472,
"duration" : 32
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "62edf99fda806e36",
"name" : "正向用例",
"time" : {
"start" : 1731224907487,
"stop" : 1731224907514,
"duration" : 27
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "d42367b1218badb4",
"name" : "正向用例",
"time" : {
"start" : 1731224907528,
"stop" : 1731224907589,
"duration" : 61
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4b0569de47125e1d",
"name" : "反向用例-用户名正确-密码过短",
"time" : {
"start" : 1731224906830,
"stop" : 1731224906873,
"duration" : 43
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "5ed251abcfd9eba9",
"name" : "正向用例",
"time" : {
"start" : 1731224907690,
"stop" : 1731224907763,
"duration" : 73
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "b7a903bd3620730",
"name" : "反向用例-用户名正确-密码错误",
"time" : {
"start" : 1731224906358,
"stop" : 1731224906412,
"duration" : 54
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "ce9a582510a3e609",
"name" : "反向用例-用户名正确-密码为特殊字符",
"time" : {
"start" : 1731224906895,
"stop" : 1731224906932,
"duration" : 37
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "c677314e5d275414",
"name" : "反向用例-密码正确-用户名为特殊字符",
"time" : {
"start" : 1731224907153,
"stop" : 1731224907192,
"duration" : 39
},
"status" : "passed",
"severity" : "normal"
} ]
\ No newline at end of file
{
"total" : 2,
"items" : [ {
"uid" : "7a8b7e46177bbd4d1efa8551fea4a38d",
"name" : "test_case.test_demo",
"statistic" : {
"failed" : 5,
"broken" : 0,
"skipped" : 0,
"passed" : 6,
"unknown" : 0,
"total" : 11
}
}, {
"uid" : "a4a59fbb04853758dfa8a5ee7ac8d434",
"name" : "test_case.test_zs",
"statistic" : {
"failed" : 3,
"broken" : 1,
"skipped" : 0,
"passed" : 5,
"unknown" : 0,
"total" : 9
}
} ]
}
\ No newline at end of file
{
"reportName" : "Allure Report",
"testRuns" : [ ],
"statistic" : {
"failed" : 8,
"broken" : 1,
"skipped" : 0,
"passed" : 11,
"unknown" : 0,
"total" : 20
},
"time" : {
"start" : 1731224906307,
"stop" : 1731224907888,
"duration" : 1581,
"minDuration" : 0,
"maxDuration" : 73,
"sumDuration" : 754
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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