Commit 108a5b55 by duqing

apiautotest-va

parent be7cf149
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: __init__.py
# Author: lao_zhao
# Datetime: 2024/7/12 17:33
# Description:
#
# ---------------------------------------------------------------------------
import functools
import logging
import os
import time
# from APIAutoTest_v3_1.common.log import get_log
#
# log = get_log()
# pip install pytest-html 用例生成html报告
"""
allure生成测试报告的步骤:
1: 生成测试结果的json文件---json非常多
pytest 测试模块 --alluredir=存放json文件的目录 --clean-alluredir
2:根据第一步生成的json文件来生成测试报告:
a): 生成web服务
allure serve 第一步存放的json文件目录
b): 生成静态报告
allure generate 第一步存放的json文件目录 -o 存放静态报告的目录
打开静态报告:allure open 静态报告存放的目录
"""
def get_logs():
# 将日志写入到文件中---流程
# 创建logger
logger = logging.getLogger()
# 设置日志文件中写入的级别
logger.setLevel(level=logging.DEBUG)
# 需要设置日志的名称
log_name = time.strftime("%Y_%m_%d_%H_%M_%S", time.localtime(time.time())) + ".log"
# 获取日志的目录
log_dir = os.path.join(os.path.join(os.path.dirname(__file__), "report"), "result_log")
# 日志路径拼接
log_path = os.path.join(log_dir, log_name)
# 设置日志文件
file_handler = logging.FileHandler(log_path, mode="a", encoding="utf-8")
# 设置日志在文件中显示的格式
log_format = logging.Formatter('%(asctime)s - %(levelname)s: %(message)s')
# 将日志设置格式添加到日志文件中
file_handler.setFormatter(log_format)
# 将日志文件的handler添加到logger对象中
logger.addHandler(file_handler)
return logger
log = get_logs()
# 装饰器
def log_decorator(func_name):
@functools.wraps(func_name) # 让被装饰对象使用它原来的名称,不要使用inner
def inner(*arg, **kwargs):
try:
log.info(f"执行的功能名称为:{func_name.__name__}, 功能所在的文件为:{func_name.__code__.co_filename}, 所在的行为:{func_name.__code__.co_firstlineno}")
value = func_name(*arg, **kwargs)
except Exception as e:
log.error(f"执行的功能名称为:{func_name.__name__}, 功能所在的文件为:{func_name.__code__.co_filename}, 所在的行为:{func_name.__code__.co_firstlineno}报错,错误为:{e}")
raise e
else:
return value
return inner
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: db.py
# Author: lao_zhao
# Datetime: 2024/7/12 14:10
# Description:
#
# ---------------------------------------------------------------------------
import pymysql
from APIAutoTest_v3_1.common.read_basic_ini import ReadBasicIni
class DB:
def __init__(self):
"""链接数据库,获取链接对象,再获取游标对象"""
ini = ReadBasicIni()
self.conn = pymysql.connect(
host=ini.sql_connect_msg("host"),
port=int(ini.sql_connect_msg("port")),
user=ini.sql_connect_msg("user"),
password=ini.sql_connect_msg("pwd"),
database=ini.sql_connect_msg("database"),
charset="utf8"
)
self.cursor = self.conn.cursor()
def close(self):
self.cursor.close()
self.conn.close()
def delete(self, sql):
"""执行删除的sql语句"""
try:
self.cursor.execute(sql)
except Exception as e:
raise e
else:
self.conn.commit()
def select(self, sql):
"""执行查询的sql语句,并返回查询的结果"""
try:
self.cursor.execute(sql)
except Exception as e:
raise e
else:
select_result = self.cursor.fetchall()
if select_result:
return select_result[0][0]
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: log.py
# Author: lao_zhao
# Datetime: 2024/7/12 17:20
# Description:
#
# ---------------------------------------------------------------------------
import logging
import os
import time
from APIAutoTest_v3_1.common.read_basic_ini import ReadBasicIni
def get_log():
# 将日志写入到文件中---流程
# 创建logger
logger = logging.getLogger()
# 设置日志文件中写入的级别
logger.setLevel(level=logging.DEBUG)
# 需要设置日志的名称
log_name = time.strftime("%Y_%m_%d_%H_%M_%S", time.localtime(time.time())) + ".log"
# 获取日志的目录
log_dir = ReadBasicIni().get_log_dir("log")
# 日志路径拼接
log_path = os.path.join(log_dir, log_name)
# 设置日志文件
file_handler = logging.FileHandler(log_path, mode="a", encoding="utf-8")
# 设置日志在文件中显示的格式
log_format = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
# 将日志设置格式添加到日志文件中
file_handler.setFormatter(log_format)
# 将日志文件的handler添加到logger对象中
logger.addHandler(file_handler)
return logger
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: read_basic_ini.py
# Author: lao_zhao
# Datetime: 2024/7/12 16:48
# Description:
#
# ---------------------------------------------------------------------------
import os, configparser
class ReadBasicIni:
def __init__(self):
"""获取ini文件的路径,并读取"""
self.data_config_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config")
ini_path = os.path.join(self.data_config_path, "basic_config.ini")
self.conf = configparser.ConfigParser()
self.conf.read(ini_path, encoding="utf-8")
def get_url(self, key):
"""根据key,获取被测系统的域名"""
try:
return self.conf.get("host", key)
except Exception as e:
raise e
def sql_connect_msg(self, key):
"""根据key,获取数据库的链接信息"""
try:
return self.conf.get("sql", key)
except Exception as e:
raise e
def get_log_dir(self, key):
"""根据key获取日志存放的目录"""
try:
# 获取日志存放的目录名称
dir_name = self.conf.get("report", key)
except Exception as e:
raise e
else:
# 获取report目录路径
report_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), "report")
# 拼接日志文件的目录路径,再返回
return os.path.join(report_path, dir_name)
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: read_excel.py
# Author: lao_zhao
# Datetime: 2024/7/12 14:15
# Description:
#
# ---------------------------------------------------------------------------
import openpyxl
from APIAutoTest_v3_1 import log_decorator
from APIAutoTest_v3_1.common.read_basic_ini import ReadBasicIni
from APIAutoTest_v3_1.common.read_ini import ReadIni
from APIAutoTest_v3_1.common.read_json import read_json
class ReadExcel:
@log_decorator
def __init__(self, username):
"""获取数据配置层中,除了ini文件以外所有文件的路径"""
self.ini = ReadIni(username)
case_data_path = self.ini.get_file_path("case")
expect_data_path = self.ini.get_file_path("expect")
sql_data_path = self.ini.get_file_path("sql")
excel_path = self.ini.get_file_path("excel")
table_name = self.ini.get_table_name("table")
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)
try:
wb = openpyxl.load_workbook(excel_path)
self.ws = wb[table_name]
except Exception as e:
# log.error(f"获取excel工作簿或工作表时报错,错误为:{e}")
raise e
@log_decorator
def __get_cell_value(self, column: str, row: int) -> str:
"""获取指定单元格数据"""
try:
value = self.ws[column+str(row)].value
except Exception as e:
raise e
else:
if value is None:
return None
elif value.strip():
return value.strip()
@log_decorator
def module_name(self, row):
"""根据行,获取模块名称"""
return self.__get_cell_value("b", row)
@log_decorator
def api_name(self, row):
"""根据行,获取接口名称"""
return self.__get_cell_value("c", row)
@log_decorator
def req_method(self, row):
"""根据行,获取请求方法"""
return self.__get_cell_value("f", row)
@log_decorator
def req_url(self, row):
"""根据行,获取请求的url"""
host = ReadBasicIni().get_url("test_host")
path = self.__get_cell_value("g", row)
if path:
return host + path
@log_decorator
def case_mime(self, row):
"""根据行,获取用例的媒体类型"""
value = self.__get_cell_value("h", row)
if value:
return value.lower()
@log_decorator
def case_data(self, row):
"""根据行,获取用例数据"""
case_data_key = self.__get_cell_value("i", row)
if case_data_key:
module_name = self.module_name(row)
api_name = self.api_name(row)
return self.case_data_dict[module_name][api_name][case_data_key]
@log_decorator
def expect_data(self, row):
"""根据行,获取期望数据"""
expect_data_key = self.__get_cell_value("j", row)
if expect_data_key:
module_name = self.module_name(row)
api_name = self.api_name(row)
return self.expect_data_dict[module_name][api_name][expect_data_key]
@log_decorator
def sql_type(self, row):
"""根据行,获取sql语句的类型"""
value = self.__get_cell_value("k", row)
if value:
return value.lower()
@log_decorator
def sql_data(self, row):
"""根据行,获取期望数据"""
sql_data_key = self.__get_cell_value("l", row)
if sql_data_key:
module_name = self.module_name(row)
api_name = self.api_name(row)
return self.sql_data_dict[module_name][api_name][sql_data_key]
@log_decorator
def update_key(self, row):
"""根据行,获取更新的key"""
return self.__get_cell_value("m", row)
@log_decorator
def case_title(self, row):
"""根据行,获取用例的标题"""
return self.__get_cell_value("d", row)
@log_decorator
def case_level(self, row):
"""根据行,获取用例的标题"""
return self.__get_cell_value("e", row)
@log_decorator
def get_data(self):
"""将测试使用的数据存放在一个二维列表中"""
data_list = []
for row in range(2, self.ws.max_row+1):
module_name = self.module_name(row)
api_name = self.api_name(row)
case_title = self.case_title(row)
level = self.case_level(row)
case_method = self.req_method(row)
case_url = self.req_url(row)
case_mime = self.case_mime(row)
case_data = self.case_data(row)
expect_data = self.expect_data(row)
sql_type = self.sql_type(row)
sql_data = self.sql_data(row)
update_key = self.update_key(row)
if case_method is not None and case_url is not None:
data_list.append([module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key])
else:
return data_list
if __name__ == '__main__':
excel = ReadExcel("张三")
excel.get_data()
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: read_ini.py
# Author: lao_zhao
# Datetime: 2024/7/12 14:03
# Description:
#
# ---------------------------------------------------------------------------
import configparser
import os.path
class ReadIni:
def __init__(self, username):
"""获取ini文件的路径,并读取"""
self.username_data_config_path = os.path.join(os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config"), username)
ini_path = os.path.join(self.username_data_config_path, "config.ini")
self.conf = configparser.ConfigParser()
self.conf.read(ini_path, encoding="utf-8")
def get_file_path(self, key):
"""根据key,获取file节点下文件的路径"""
try:
file_name = self.conf.get("file", key)
except Exception as e:
raise e
else:
return os.path.join(self.username_data_config_path, file_name)
# def get_url(self, key):
# """根据key,获取被测系统的域名"""
# try:
# return self.conf.get("host", key)
# except Exception as e:
# raise e
def get_table_name(self, key):
"""根据key获取工作表的名称"""
try:
return self.conf.get("table_name", key)
except Exception as e:
raise e
#
# def sql_connect_msg(self, key):
# """根据key,获取数据库的链接信息"""
# try:
# return self.conf.get("sql", key)
# except Exception as e:
# raise e
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: read_json.py
# Author: lao_zhao
# Datetime: 2024/7/12 14:08
# Description:
#
# ---------------------------------------------------------------------------
import json
import os
def read_json(file_path):
"""读取json文件,并将json文件的内容序列化为python对象,再返回"""
if os.path.isfile(file_path) and file_path.endswith(".json"):
try:
with open(file_path, mode="r", encoding="utf-8") as f:
return json.loads(f.read())
except Exception as e:
raise e
else:
raise FileNotFoundError("文件路径错误")
\ No newline at end of file
{
"认证接口":{
"登录系统":{
"LoginSuccess":{"username":"admin","password":"F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8="},
"LoginFailUsernameIsNone":{"username":"","password":"F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8="},
"LoginFailUsernameIsShort":{"username":"a","password":"F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8="},
"LoginFailUsernameIsLong":{"username":"adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin","password":"F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8="},
"LoginFailUsernameIsSpecial":{"username":"♡♣♤♥♦♧♨♩ε","password":"F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8="},
"LoginFailPwdIsNone":{"username":"admin","password":""},
"LoginFailPwdIsShort":{"username":"admin","password":"1"},
"LoginFailPwdIsLong":{"username":"admin","password":"F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8="}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"code": "test_dem_xyz_123","description": "测试维度","isDefault": 0, "name": "xyz测试维度"}
},
"设置默认维度": {
"SetDefaultDemSuccess": {"code": "test_dem_xyz_123"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "需要更新"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "test_org",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": "测试组织",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"保存组织参数": {
"SaveOrgParamSuccess": {
"query": {"orgCode": "test_org"},
"body": [{"alias":"sr","value":"dog"}]
}
},
"删除组织": {
"DeleteOrgSuccess": "test_org"
}
}
}
\ No newline at end of file
[节点名称]
键=值
# 配置数据层中文件的节点
[file]
# 用例管理文件
excel=APIAutoTest.xlsx
# 用例数据文件
case=case_data.json
# 期望数据文件
expect=expect.json
# sql语句文件
sql=sql_data.json
# 配置excel中工作表的名称
[table_name]
table=BPM
{
"认证接口":{
"登录系统":{
"LoginSuccess": {"username":"超级管理员","account":"admin","userId":"1","expiration":86400},
"LoginFailUsernameIsNone":{"state":false,"message":"账户错误或该租户未启用"},
"LoginFailUsernameIsShort":{"state":false,"message":"账户错误或该租户未启用"},
"LoginFailUsernameIsLong":{"state":false,"message":"账户错误或该租户未启用"},
"LoginFailUsernameIsSpecial":{"state":false,"message":"账户错误或该租户未启用"},
"LoginFailPwdIsNone":{"state":false,"message":"账户错误或该租户未启用"},
"LoginFailPwdIsShort":{"state":false,"message":"账户错误或该租户未启用"},
"LoginFailPwdIsLong":{"state":false,"message":"账户错误或该租户未启用"}
},
"刷新token": {
"RefreshSuccess": {"message": "刷新成功"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"message": "添加维度成功!"}
},
"设置默认维度": {
"SetDefaultDemSuccess": {"message": "设置默认维度成功!"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"message": "删除维度成功"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"message": "添加组织成功!"}
},
"保存组织参数": {
"SaveOrgParamSuccess": {"state":true,"message":"保存组织参数成功!"}
},
"删除组织": {
"DeleteOrgSuccess": {"state":true,"message":"删除组织成功!"}
}
}
}
\ No newline at end of file
{
"维度管理": {
"添加维度": {
"AddDemSuccess": "DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"select": "SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";",
"delete": "delete from uc_org where CODE_=\"test_org\";"
}
}
}
}
# 配置被测系统的域名
[host]
test_host=http://36.139.193.99:8088
[sql]
host=36.139.193.99
port=3306
user=root
pwd=Rhrc@2024
database=eip8
[report]
log=result_log
\ No newline at end of file
{
"认证接口":{
"登录系统":{
"LoginSuccess":{"username":"admin","password":"F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8="},
"LoginFailUsernameIsNone":{"username":"","password":"F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8="},
"LoginFailUsernameIsShort":{"username":"a","password":"F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8="},
"LoginFailUsernameIsLong":{"username":"adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin","password":"F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8="},
"LoginFailUsernameIsSpecial":{"username":"♡♣♤♥♦♧♨♩ε","password":"F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8="},
"LoginFailPwdIsNone":{"username":"admin","password":""},
"LoginFailPwdIsShort":{"username":"admin","password":"1"},
"LoginFailPwdIsLong":{"username":"admin","password":"F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8="}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"code": "test_dem_xyz_123","description": "测试维度","isDefault": 0, "name": "xyz测试维度"}
},
"设置默认维度": {
"SetDefaultDemSuccess": {"code": "test_dem_xyz_123"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "需要更新"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "test_org",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": "测试组织",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"保存组织参数": {
"SaveOrgParamSuccess": {
"query": {"orgCode": "test_org"},
"body": [{"alias":"sr","value":"dog"}]
}
},
"删除组织": {
"DeleteOrgSuccess": "test_org"
}
}
}
\ No newline at end of file
[节点名称]
键=值
# 配置数据层中文件的节点
[file]
# 用例管理文件
excel=张三.xlsx
# 用例数据文件
case=case_data.json
# 期望数据文件
expect=expect.json
# sql语句文件
sql=sql_data.json
# 配置excel中工作表的名称
[table_name]
table=BPM
{
"认证接口":{
"登录系统":{
"LoginSuccess": {"username":"超级管理员","account":"admin","userId":"1","expiration":86400},
"LoginFailUsernameIsNone":{"state":false,"message":"账户错误或该租户未启用"},
"LoginFailUsernameIsShort":{"state":false,"message":"账户错误或该租户未启用"},
"LoginFailUsernameIsLong":{"state":false,"message":"账户错误或该租户未启用"},
"LoginFailUsernameIsSpecial":{"state":false,"message":"账户错误或该租户未启用"},
"LoginFailPwdIsNone":{"state":false,"message":"账户错误或该租户未启用"},
"LoginFailPwdIsShort":{"state":false,"message":"账户错误或该租户未启用"},
"LoginFailPwdIsLong":{"state":false,"message":"账户错误或该租户未启用"}
},
"刷新token": {
"RefreshSuccess": {"message": "刷新成功"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"message": "添加维度成功!"}
},
"设置默认维度": {
"SetDefaultDemSuccess": {"message": "设置默认维度成功!"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"message": "删除维度成功"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"message": "添加组织成功!"}
},
"保存组织参数": {
"SaveOrgParamSuccess": {"state":true,"message":"保存组织参数成功!"}
},
"删除组织": {
"DeleteOrgSuccess": {"state":true,"message":"删除组织成功!"}
}
}
}
\ No newline at end of file
{
"维度管理": {
"添加维度": {
"AddDemSuccess": "DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"select": "SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";",
"delete": "delete from uc_org where CODE_=\"test_org\";"
}
}
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
PUT http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem query {'code': 'test_dem_xyz_123'} {'message': '设置默认维度成功!'} None None None
{"state":true,"message":"设置默认维度成功!","value":"","code":200}
断言成功
post http://36.139.193.99:8088/api/demension/v1/dem/addDem json {'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'} {'message': '添加维度成功!'} delete DELETE FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; None
{"state":true,"message":"添加维度成功!","value":"","code":200}
断言成功
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812696302778687488 HTTP/11" 200 None
ERROR  root:__init__.py:72 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/org/addOrg HTTP/11" 200 None
\ No newline at end of file
DEBUG  pytest_dependency:pytest_dependency.py:87 check dependencies of test_get_dem_msg[case_data2-expect_data2-\u53cd\u5411\u7528\u4f8b2] in module scope ...
DEBUG  pytest_dependency:pytest_dependency.py:92 ... TestBPM::test_add_dem succeeded
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /api/demension/v1/dem/getDem?=abctest HTTP/11" 500 None
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMDE4NTAsImlhdCI6MTcyMTAxNTQ1MH0.Yt0HKq0ODKh-4o9wuihEdj2tek8NWCqrvaeReRifeJx-gEJ0oQAWRNyF16N1_CQBVqWGNfRzuaMRxzbKJh5DEA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
断言成功
post http://36.139.193.99:8088/api/org/v1/org/addOrg json {'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'} {'message': '添加组织成功!'} select|delete {'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123";', 'delete': 'delete from uc_org where CODE_="test_org";'} demId
{"state":true,"message":"添加组织成功!","value":"","code":200}
断言成功
GET http://36.139.193.99:8088/refresh None None {'message': '刷新成功'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMDE4NTEsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/org/deleteOrg HTTP/11" 200 None
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "PUT /api/demension/v1/dem/setDefaultDem?code=test_dem_xyz_123 HTTP/11" 200 None
\ No newline at end of file
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMDE4NTEsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '需要更新'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":true,"message":"删除维度成功!","value":"","code":200}
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "PUT /api/demension/v1/dem/setDefaultDem?code=test_dem_xyz_123 HTTP/11" 200 None
\ No newline at end of file
post http://36.139.193.99:8088/api/org/v1/org/addOrg json {'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'} {'message': '添加组织成功!'} select|delete {'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123";', 'delete': 'delete from uc_org where CODE_="test_org";'} demId
{"state":true,"message":"添加组织成功!","value":"","code":200}
断言成功
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
\ No newline at end of file
DEBUG  pytest_dependency:pytest_dependency.py:87 check dependencies of test_get_dem_msg[case_data1-expect_data1-\u53cd\u5411\u7528\u4f8b1] in module scope ...
DEBUG  pytest_dependency:pytest_dependency.py:92 ... TestBPM::test_add_dem succeeded
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /api/demension/v1/dem/getDem?code= HTTP/11" 500 None
\ No newline at end of file
DEBUG  pytest_dependency:pytest_dependency.py:87 check dependencies of test_add_dem in module scope ...
DEBUG  pytest_dependency:pytest_dependency.py:92 ... TestBPM::test_login succeeded
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/demension/v1/dem/addDem HTTP/11" 200 None
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
ERROR  root:__init__.py:72 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': '1'} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812696302187290624"}
post http://36.139.193.99:8088/api/org/v1/org/deleteOrg form test_org {'state': True, 'message': '删除组织成功!'} None None None
{"state":true,"message":"删除组织成功!","value":"","code":200}
断言成功
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /refresh HTTP/11" 200 None
ERROR  root:__init__.py:72 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:72 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
post http://36.139.193.99:8088/api/demension/v1/dem/addDem json {'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'} {'message': '添加维度成功!'} delete DELETE FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; None
{"state":true,"message":"添加维度成功!","value":"","code":200}
断言成功
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812696305089748992 HTTP/11" 200 None
ERROR  root:__init__.py:72 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19报错,错误为:断言失败, 用例数据为:{'ids': '1812696305089748992'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":"","code":200}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/org/addOrg HTTP/11" 200 None
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:72 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
\ No newline at end of file
PUT http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem query {'code': 'test_dem_xyz_123'} {'message': '设置默认维度成功!'} None None None
{"state":true,"message":"设置默认维度成功!","value":"","code":200}
断言成功
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/org/deleteOrg HTTP/11" 200 None
\ No newline at end of file
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/demension/v1/dem/addDem HTTP/11" 200 None
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': '', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1812696300660563968"}
断言成功
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': ''} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812696301365207040"}
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '需要更新'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":true,"message":"删除维度成功!","value":"","code":200}
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/demension/v1/dem/addDem HTTP/11" 200 None
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'a', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1812696300815753216"}
断言成功
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/orgParam/saveOrgParams?orgCode=test_org HTTP/11" 200 None
\ No newline at end of file
DEBUG  pytest_dependency:pytest_dependency.py:87 check dependencies of test_get_dem_msg[case_data0-expect_data0-\u6b63\u5411\u7528\u4f8b] in module scope ...
DEBUG  pytest_dependency:pytest_dependency.py:92 ... TestBPM::test_add_dem succeeded
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /api/demension/v1/dem/getDem?code=jSReKzhOgdbl HTTP/11" 200 None
\ No newline at end of file
post http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams query|json {'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]} {'state': True, 'message': '保存组织参数成功!'} None None None
{"state":true,"message":"保存组织参数成功!","value":"","code":200}
断言成功
POST http://36.139.193.99:8088/auth application/json {'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1812696301012885504"}
断言成功
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/orgParam/saveOrgParams?orgCode=test_org HTTP/11" 200 None
\ No newline at end of file
post http://36.139.193.99:8088/api/org/v1/org/deleteOrg form test_org {'state': True, 'message': '删除组织成功!'} None None None
{"state":true,"message":"删除组织成功!","value":"","code":200}
断言成功
post http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams query|json {'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]} {'state': True, 'message': '保存组织参数成功!'} None None None
{"state":true,"message":"保存组织参数成功!","value":"","code":200}
断言成功
POST http://36.139.193.99:8088/auth application/json {'username': '♡♣♤♥♦♧♨♩ε', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1812696301201629184"}
断言成功
"Epic","Feature","Story","FAILED","BROKEN","PASSED","SKIPPED","UNKNOWN"
"BPM-Basic","认证接口","登录系统","3","0","5","0","0"
"BPM-Basic","维度管理","设置默认维度","0","0","1","0","0"
"bpm-场景测试","维度管理","根据维度编码获取维度信息","0","0","3","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"
"BPM-Basic","维度管理","根据维度编码删除维度","1","0","0","0","0"
"bpm-场景测试","维度管理","添加维度","0","0","1","0","0"
"BPM-Basic","组织管理","删除组织","0","0","1","0","0"
"BPM-Basic","维度管理","添加维度","0","0","1","0","0"
"BPM-Basic","认证接口","刷新token","1","0","0","0","0"
"BPM-Basic","组织管理","添加组织","0","0","1","0","0"
"BPM-张三","维度管理","根据维度编码删除维度","1","0","0","0","0"
"BPM-张三","组织管理","保存组织参数","0","0","1","0","0"
"BPM-张三","组织管理","添加组织","0","0","1","0","0"
"BPM-Basic","组织管理","保存组织参数","0","0","1","0","0"
{
"uid" : "b1a8273437954620fa374b796ffaacdd",
"name" : "behaviors",
"children" : [ {
"name" : "BPM-Basic",
"children" : [ {
"name" : "认证接口",
"children" : [ {
"name" : "登录系统",
"children" : [ {
"name" : "正向用例-用户名和密码正确",
"uid" : "b6f199268924eda5",
"parentUid" : "afe918fc8b48d68ccca4d929ad5b44b1",
"status" : "passed",
"time" : {
"start" : 1721015508821,
"stop" : 1721015508874,
"duration" : 53
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'正向用例-用户名和密码正确'", "'http://36.139.193.99:8088/auth'", "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400}", "'高'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名为空-密码正确",
"uid" : "227afaebb1cd08da",
"parentUid" : "afe918fc8b48d68ccca4d929ad5b44b1",
"status" : "passed",
"time" : {
"start" : 1721015508881,
"stop" : 1721015508911,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名为空-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名过短-密码正确",
"uid" : "18c9ae039fc34574",
"parentUid" : "afe918fc8b48d68ccca4d929ad5b44b1",
"status" : "passed",
"time" : {
"start" : 1721015508921,
"stop" : 1721015508943,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名过短-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名过长-密码正确",
"uid" : "97129a0488d10506",
"parentUid" : "afe918fc8b48d68ccca4d929ad5b44b1",
"status" : "passed",
"time" : {
"start" : 1721015508961,
"stop" : 1721015508994,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名过长-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名为特殊字符-密码正确",
"uid" : "d8e2cfa116528f24",
"parentUid" : "afe918fc8b48d68ccca4d929ad5b44b1",
"status" : "passed",
"time" : {
"start" : 1721015509011,
"stop" : 1721015509041,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '♡♣♤♥♦♧♨♩ε', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名为特殊字符-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码为空",
"uid" : "cf2367dcaff14656",
"parentUid" : "afe918fc8b48d68ccca4d929ad5b44b1",
"status" : "failed",
"time" : {
"start" : 1721015509051,
"stop" : 1721015509081,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码为空'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码过长",
"uid" : "72d697fa34152bb7",
"parentUid" : "afe918fc8b48d68ccca4d929ad5b44b1",
"status" : "failed",
"time" : {
"start" : 1721015509247,
"stop" : 1721015509276,
"duration" : 29
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '1'}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码过长'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码过短",
"uid" : "fd64392edbae973f",
"parentUid" : "afe918fc8b48d68ccca4d929ad5b44b1",
"status" : "failed",
"time" : {
"start" : 1721015509291,
"stop" : 1721015509331,
"duration" : 40
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码过短'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
} ],
"uid" : "afe918fc8b48d68ccca4d929ad5b44b1"
}, {
"name" : "刷新token",
"children" : [ {
"name" : "正向用例",
"uid" : "d57c2d7e4a5351e1",
"parentUid" : "f87a885953146abfe3bf9264e9c9c870",
"status" : "failed",
"time" : {
"start" : 1721015509346,
"stop" : 1721015509371,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'GET'", "None", "'正向用例'", "'http://36.139.193.99:8088/refresh'", "{'message': '刷新成功'}", "'高'", "'认证接口'", "None", "None", "None" ]
} ],
"uid" : "f87a885953146abfe3bf9264e9c9c870"
} ],
"uid" : "efbb689fea518286a8a42d26860d3bcf"
}, {
"name" : "维度管理",
"children" : [ {
"name" : "添加维度",
"children" : [ {
"name" : "正向用例",
"uid" : "1fe7b9a6b59ab340",
"parentUid" : "f2393a7b3ad5f93d711b3ff4153db2ba",
"status" : "passed",
"time" : {
"start" : 1721015509388,
"stop" : 1721015509421,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'", "{'message': '添加维度成功!'}", "'高'", "'维度管理'", "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'delete'", "None" ]
} ],
"uid" : "f2393a7b3ad5f93d711b3ff4153db2ba"
}, {
"name" : "设置默认维度",
"children" : [ {
"name" : "正向用例",
"uid" : "6cc3dac6ac75a610",
"parentUid" : "820ab205957195548b80ae78d5021bab",
"status" : "passed",
"time" : {
"start" : 1721015509436,
"stop" : 1721015509461,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'设置默认维度'", "{'code': 'test_dem_xyz_123'}", "'PUT'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'", "{'message': '设置默认维度成功!'}", "'中'", "'维度管理'", "None", "None", "None" ]
} ],
"uid" : "820ab205957195548b80ae78d5021bab"
}, {
"name" : "根据维度编码删除维度",
"children" : [ {
"name" : "正向用例",
"uid" : "72761ac453ae24f7",
"parentUid" : "2013d64ce0ccc15b2ac0b10dc9f9369c",
"status" : "failed",
"time" : {
"start" : 1721015509625,
"stop" : 1721015509658,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'DELETE'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'", "{'message': '删除维度成功'}", "'中'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'select'", "'ids'" ]
} ],
"uid" : "2013d64ce0ccc15b2ac0b10dc9f9369c"
} ],
"uid" : "c33dd05eac512d34eac7754ba60f4d58"
}, {
"name" : "组织管理",
"children" : [ {
"name" : "添加组织",
"children" : [ {
"name" : "正向用例",
"uid" : "c7bc7d60342c12ef",
"parentUid" : "716c9ae673c4712a1a6c4fbde14238cd",
"status" : "passed",
"time" : {
"start" : 1721015509471,
"stop" : 1721015509521,
"duration" : 50
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'", "{'message': '添加组织成功!'}", "'高'", "'组织管理'", "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}", "'select|delete'", "'demId'" ]
} ],
"uid" : "716c9ae673c4712a1a6c4fbde14238cd"
}, {
"name" : "保存组织参数",
"children" : [ {
"name" : "正向用例",
"uid" : "dab13890b023630d",
"parentUid" : "1ec75c9a160573f41acc8efdbf0a60c0",
"status" : "passed",
"time" : {
"start" : 1721015509531,
"stop" : 1721015509551,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}", "'post'", "'query|json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'", "{'state': True, 'message': '保存组织参数成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
} ],
"uid" : "1ec75c9a160573f41acc8efdbf0a60c0"
}, {
"name" : "删除组织",
"children" : [ {
"name" : "正向用例",
"uid" : "455a4ab887c89b43",
"parentUid" : "6b27ff75d22cfa20c331d40142cd3b16",
"status" : "passed",
"time" : {
"start" : 1721015509564,
"stop" : 1721015509611,
"duration" : 47
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_org'", "'post'", "'form'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'", "{'state': True, 'message': '删除组织成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
} ],
"uid" : "6b27ff75d22cfa20c331d40142cd3b16"
} ],
"uid" : "54a5752aa07004150b4de67cee9f5685"
} ],
"uid" : "a17acae1eab7e54410f7c3ce8da43ed7"
}, {
"name" : "bpm-场景测试",
"children" : [ {
"name" : "认证接口",
"children" : [ {
"name" : "登录系统",
"children" : [ {
"name" : "bpm-场景测试-登录-正向",
"uid" : "4f1b074e9624da25",
"parentUid" : "168dfdb4c708b8ea85ed360baf3a3d7e",
"status" : "passed",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509711,
"duration" : 38
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
} ],
"uid" : "168dfdb4c708b8ea85ed360baf3a3d7e"
} ],
"uid" : "8f1e5be1e547c9f8a582d80e37a2ebef"
}, {
"name" : "维度管理",
"children" : [ {
"name" : "添加维度",
"children" : [ {
"name" : "bpm-场景测试-添加维度-正向",
"uid" : "4e9a2e5e031bc082",
"parentUid" : "30e36d4309b5d25d732b843d8bd765a5",
"status" : "passed",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509741,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
} ],
"uid" : "30e36d4309b5d25d732b843d8bd765a5"
}, {
"name" : "根据维度编码获取维度信息",
"children" : [ {
"name" : "正向用例",
"uid" : "ea5cfa6f2d41ee86",
"parentUid" : "b49081282bbdeccbaecbac49c8a47709",
"status" : "passed",
"time" : {
"start" : 1721015509741,
"stop" : 1721015509771,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "{'code': '需要更新'}", "{'isDelete': '0'}", "'正向用例'" ]
}, {
"name" : "反向用例1",
"uid" : "4267fdae78018a0",
"parentUid" : "b49081282bbdeccbaecbac49c8a47709",
"status" : "passed",
"time" : {
"start" : 1721015509791,
"stop" : 1721015509816,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "{'code': ''}", "{'message': '必填:code维度编码必填!'}", "'反向用例1'" ]
}, {
"name" : "反向用例2",
"uid" : "c5318f7b5f3f4c94",
"parentUid" : "b49081282bbdeccbaecbac49c8a47709",
"status" : "passed",
"time" : {
"start" : 1721015509824,
"stop" : 1721015509845,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "{'': 'abctest'}", "{'message': \"Required String parameter 'code' is not present\"}", "'反向用例2'" ]
} ],
"uid" : "b49081282bbdeccbaecbac49c8a47709"
} ],
"uid" : "84e2a996d50d25f6bdeb474242a027aa"
} ],
"uid" : "e910ba08e15c3fed7dc9b37fbb7f6731"
}, {
"name" : "BPM-张三",
"children" : [ {
"name" : "维度管理",
"children" : [ {
"name" : "添加维度",
"children" : [ {
"name" : "正向用例",
"uid" : "fc0746e5dd6e5c7",
"parentUid" : "1c867e5735a2aeac081ed0a776ce36ad",
"status" : "passed",
"time" : {
"start" : 1721015509931,
"stop" : 1721015509974,
"duration" : 43
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'", "{'message': '添加维度成功!'}", "'高'", "'维度管理'", "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'delete'", "None" ]
} ],
"uid" : "1c867e5735a2aeac081ed0a776ce36ad"
}, {
"name" : "设置默认维度",
"children" : [ {
"name" : "正向用例",
"uid" : "1ad087c20ec34a2f",
"parentUid" : "67312d2ed99b13ee880bf9527aba5174",
"status" : "passed",
"time" : {
"start" : 1721015509981,
"stop" : 1721015510006,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'设置默认维度'", "{'code': 'test_dem_xyz_123'}", "'PUT'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'", "{'message': '设置默认维度成功!'}", "'中'", "'维度管理'", "None", "None", "None" ]
} ],
"uid" : "67312d2ed99b13ee880bf9527aba5174"
}, {
"name" : "根据维度编码删除维度",
"children" : [ {
"name" : "正向用例",
"uid" : "ae6557b0196ebf3f",
"parentUid" : "dc4fa5c0f6328abcb7c1fc4677acee00",
"status" : "failed",
"time" : {
"start" : 1721015510171,
"stop" : 1721015510201,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'DELETE'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'", "{'message': '删除维度成功'}", "'中'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'select'", "'ids'" ]
} ],
"uid" : "dc4fa5c0f6328abcb7c1fc4677acee00"
} ],
"uid" : "e4cf6d9687091be2e0527f63d2fbd346"
}, {
"name" : "组织管理",
"children" : [ {
"name" : "添加组织",
"children" : [ {
"name" : "正向用例",
"uid" : "a0cdc25f805aa36e",
"parentUid" : "7b9add9319fbd3715876b1032dd82524",
"status" : "passed",
"time" : {
"start" : 1721015510013,
"stop" : 1721015510070,
"duration" : 57
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'", "{'message': '添加组织成功!'}", "'高'", "'组织管理'", "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}", "'select|delete'", "'demId'" ]
} ],
"uid" : "7b9add9319fbd3715876b1032dd82524"
}, {
"name" : "保存组织参数",
"children" : [ {
"name" : "正向用例",
"uid" : "e424f5c7765fbab5",
"parentUid" : "8530e5440dff2ddf34a147a30153f5ed",
"status" : "passed",
"time" : {
"start" : 1721015510071,
"stop" : 1721015510121,
"duration" : 50
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}", "'post'", "'query|json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'", "{'state': True, 'message': '保存组织参数成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
} ],
"uid" : "8530e5440dff2ddf34a147a30153f5ed"
}, {
"name" : "删除组织",
"children" : [ {
"name" : "正向用例",
"uid" : "5fe4c7580aedb74f",
"parentUid" : "64e1efca50980ab13e689f8bc886d151",
"status" : "passed",
"time" : {
"start" : 1721015510131,
"stop" : 1721015510163,
"duration" : 32
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_org'", "'post'", "'form'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'", "{'state': True, 'message': '删除组织成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
} ],
"uid" : "64e1efca50980ab13e689f8bc886d151"
} ],
"uid" : "089098e7fdf9226a9d0bbb8ef37b2ed9"
} ],
"uid" : "190def5ec1bc096add1d6e9232694ef3"
} ]
}
\ No newline at end of file
"Category","FAILED","BROKEN","PASSED","SKIPPED","UNKNOWN"
"Product defects","6","0","0","0","0"
{
"uid" : "4b4757e66a1912dae1a509f688f20b0f",
"name" : "categories",
"children" : [ {
"name" : "Product defects",
"children" : [ {
"name" : "AssertionError: 断言失败,描述失败的原因",
"children" : [ {
"name" : "反向用例-用户名正确-密码为空",
"uid" : "cf2367dcaff14656",
"parentUid" : "01f104312821adc032c340c96e863b18",
"status" : "failed",
"time" : {
"start" : 1721015509051,
"stop" : 1721015509081,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码为空'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码过长",
"uid" : "72d697fa34152bb7",
"parentUid" : "01f104312821adc032c340c96e863b18",
"status" : "failed",
"time" : {
"start" : 1721015509247,
"stop" : 1721015509276,
"duration" : 29
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '1'}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码过长'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码过短",
"uid" : "fd64392edbae973f",
"parentUid" : "01f104312821adc032c340c96e863b18",
"status" : "failed",
"time" : {
"start" : 1721015509291,
"stop" : 1721015509331,
"duration" : 40
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码过短'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "d57c2d7e4a5351e1",
"parentUid" : "01f104312821adc032c340c96e863b18",
"status" : "failed",
"time" : {
"start" : 1721015509346,
"stop" : 1721015509371,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'GET'", "None", "'正向用例'", "'http://36.139.193.99:8088/refresh'", "{'message': '刷新成功'}", "'高'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "72761ac453ae24f7",
"parentUid" : "01f104312821adc032c340c96e863b18",
"status" : "failed",
"time" : {
"start" : 1721015509625,
"stop" : 1721015509658,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'DELETE'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'", "{'message': '删除维度成功'}", "'中'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'select'", "'ids'" ]
} ],
"uid" : "01f104312821adc032c340c96e863b18"
}, {
"name" : "AssertionError: 断言失败, 用例数据为:{'ids': '1812696305089748992'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":true,\"message\":\"删除维度成功!\",\"value\":\"\",\"code\":200}",
"children" : [ {
"name" : "正向用例",
"uid" : "ae6557b0196ebf3f",
"parentUid" : "afc649fac59ed876105e9e72cf63e746",
"status" : "failed",
"time" : {
"start" : 1721015510171,
"stop" : 1721015510201,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'DELETE'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'", "{'message': '删除维度成功'}", "'中'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'select'", "'ids'" ]
} ],
"uid" : "afc649fac59ed876105e9e72cf63e746"
} ],
"uid" : "8fb3a91ba5aaf9de24cc8a92edc82b5d"
} ]
}
\ No newline at end of file
{
"uid" : "83edc06c07f9ae9e47eb6dd1b683e4e2",
"name" : "packages",
"children" : [ {
"name" : "test_case",
"children" : [ {
"name" : "test_basic.test_case",
"children" : [ {
"name" : "正向用例-用户名和密码正确",
"uid" : "b6f199268924eda5",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "passed",
"time" : {
"start" : 1721015508821,
"stop" : 1721015508874,
"duration" : 53
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'正向用例-用户名和密码正确'", "'http://36.139.193.99:8088/auth'", "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400}", "'高'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名为空-密码正确",
"uid" : "227afaebb1cd08da",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "passed",
"time" : {
"start" : 1721015508881,
"stop" : 1721015508911,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名为空-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名过短-密码正确",
"uid" : "18c9ae039fc34574",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "passed",
"time" : {
"start" : 1721015508921,
"stop" : 1721015508943,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名过短-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名过长-密码正确",
"uid" : "97129a0488d10506",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "passed",
"time" : {
"start" : 1721015508961,
"stop" : 1721015508994,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名过长-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名为特殊字符-密码正确",
"uid" : "d8e2cfa116528f24",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "passed",
"time" : {
"start" : 1721015509011,
"stop" : 1721015509041,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '♡♣♤♥♦♧♨♩ε', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名为特殊字符-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码为空",
"uid" : "cf2367dcaff14656",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "failed",
"time" : {
"start" : 1721015509051,
"stop" : 1721015509081,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码为空'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码过长",
"uid" : "72d697fa34152bb7",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "failed",
"time" : {
"start" : 1721015509247,
"stop" : 1721015509276,
"duration" : 29
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '1'}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码过长'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码过短",
"uid" : "fd64392edbae973f",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "failed",
"time" : {
"start" : 1721015509291,
"stop" : 1721015509331,
"duration" : 40
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码过短'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "d57c2d7e4a5351e1",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "failed",
"time" : {
"start" : 1721015509346,
"stop" : 1721015509371,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'GET'", "None", "'正向用例'", "'http://36.139.193.99:8088/refresh'", "{'message': '刷新成功'}", "'高'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "1fe7b9a6b59ab340",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "passed",
"time" : {
"start" : 1721015509388,
"stop" : 1721015509421,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'", "{'message': '添加维度成功!'}", "'高'", "'维度管理'", "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'delete'", "None" ]
}, {
"name" : "正向用例",
"uid" : "6cc3dac6ac75a610",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "passed",
"time" : {
"start" : 1721015509436,
"stop" : 1721015509461,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'设置默认维度'", "{'code': 'test_dem_xyz_123'}", "'PUT'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'", "{'message': '设置默认维度成功!'}", "'中'", "'维度管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "c7bc7d60342c12ef",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "passed",
"time" : {
"start" : 1721015509471,
"stop" : 1721015509521,
"duration" : 50
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'", "{'message': '添加组织成功!'}", "'高'", "'组织管理'", "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}", "'select|delete'", "'demId'" ]
}, {
"name" : "正向用例",
"uid" : "dab13890b023630d",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "passed",
"time" : {
"start" : 1721015509531,
"stop" : 1721015509551,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}", "'post'", "'query|json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'", "{'state': True, 'message': '保存组织参数成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "455a4ab887c89b43",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "passed",
"time" : {
"start" : 1721015509564,
"stop" : 1721015509611,
"duration" : 47
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_org'", "'post'", "'form'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'", "{'state': True, 'message': '删除组织成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "72761ac453ae24f7",
"parentUid" : "304cb4d11947250e273692025b6b64cd",
"status" : "failed",
"time" : {
"start" : 1721015509625,
"stop" : 1721015509658,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'DELETE'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'", "{'message': '删除维度成功'}", "'中'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'select'", "'ids'" ]
} ],
"uid" : "test_basic.test_case"
}, {
"name" : "test_bpm_dependency.test_pytest_decorator",
"children" : [ {
"name" : "bpm-场景测试-登录-正向",
"uid" : "4f1b074e9624da25",
"parentUid" : "f4c84a1862dfa4943125b332b8ba7afa",
"status" : "passed",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509711,
"duration" : 38
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "bpm-场景测试-添加维度-正向",
"uid" : "4e9a2e5e031bc082",
"parentUid" : "f4c84a1862dfa4943125b332b8ba7afa",
"status" : "passed",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509741,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "正向用例",
"uid" : "ea5cfa6f2d41ee86",
"parentUid" : "f4c84a1862dfa4943125b332b8ba7afa",
"status" : "passed",
"time" : {
"start" : 1721015509741,
"stop" : 1721015509771,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "{'code': '需要更新'}", "{'isDelete': '0'}", "'正向用例'" ]
}, {
"name" : "反向用例1",
"uid" : "4267fdae78018a0",
"parentUid" : "f4c84a1862dfa4943125b332b8ba7afa",
"status" : "passed",
"time" : {
"start" : 1721015509791,
"stop" : 1721015509816,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "{'code': ''}", "{'message': '必填:code维度编码必填!'}", "'反向用例1'" ]
}, {
"name" : "反向用例2",
"uid" : "c5318f7b5f3f4c94",
"parentUid" : "f4c84a1862dfa4943125b332b8ba7afa",
"status" : "passed",
"time" : {
"start" : 1721015509824,
"stop" : 1721015509845,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "{'': 'abctest'}", "{'message': \"Required String parameter 'code' is not present\"}", "'反向用例2'" ]
} ],
"uid" : "test_bpm_dependency.test_pytest_decorator"
}, {
"name" : "test_lao_zhang.test_case",
"children" : [ {
"name" : "正向用例",
"uid" : "fc0746e5dd6e5c7",
"parentUid" : "96c478eb3787e05501dd57d6988e2681",
"status" : "passed",
"time" : {
"start" : 1721015509931,
"stop" : 1721015509974,
"duration" : 43
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'", "{'message': '添加维度成功!'}", "'高'", "'维度管理'", "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'delete'", "None" ]
}, {
"name" : "正向用例",
"uid" : "1ad087c20ec34a2f",
"parentUid" : "96c478eb3787e05501dd57d6988e2681",
"status" : "passed",
"time" : {
"start" : 1721015509981,
"stop" : 1721015510006,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'设置默认维度'", "{'code': 'test_dem_xyz_123'}", "'PUT'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'", "{'message': '设置默认维度成功!'}", "'中'", "'维度管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "a0cdc25f805aa36e",
"parentUid" : "96c478eb3787e05501dd57d6988e2681",
"status" : "passed",
"time" : {
"start" : 1721015510013,
"stop" : 1721015510070,
"duration" : 57
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'", "{'message': '添加组织成功!'}", "'高'", "'组织管理'", "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}", "'select|delete'", "'demId'" ]
}, {
"name" : "正向用例",
"uid" : "e424f5c7765fbab5",
"parentUid" : "96c478eb3787e05501dd57d6988e2681",
"status" : "passed",
"time" : {
"start" : 1721015510071,
"stop" : 1721015510121,
"duration" : 50
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}", "'post'", "'query|json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'", "{'state': True, 'message': '保存组织参数成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "5fe4c7580aedb74f",
"parentUid" : "96c478eb3787e05501dd57d6988e2681",
"status" : "passed",
"time" : {
"start" : 1721015510131,
"stop" : 1721015510163,
"duration" : 32
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_org'", "'post'", "'form'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'", "{'state': True, 'message': '删除组织成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "ae6557b0196ebf3f",
"parentUid" : "96c478eb3787e05501dd57d6988e2681",
"status" : "failed",
"time" : {
"start" : 1721015510171,
"stop" : 1721015510201,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'DELETE'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'", "{'message': '删除维度成功'}", "'中'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'select'", "'ids'" ]
} ],
"uid" : "test_lao_zhang.test_case"
} ],
"uid" : "3b2e467b921b0ea8d4803b9c79d92d0c"
} ]
}
\ No newline at end of file
"Status","Start Time","Stop Time","Duration in ms","Parent Suite","Suite","Sub Suite","Test Class","Test Method","Name","Description"
"passed","Mon Jul 15 11:51:48 CST 2024","Mon Jul 15 11:51:48 CST 2024","53","test_case.test_basic","test_case","TestBPM","","","正向用例-用户名和密码正确",""
"failed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","29","test_case.test_basic","test_case","TestBPM","","","反向用例-用户名正确-密码过长",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","25","test_case.test_basic","test_case","TestBPM","","","正向用例",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","25","test_case.test_bpm_dependency","test_pytest_decorator","TestBPM","","","反向用例1",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:50 CST 2024","25","test_case.test_lao_zhang","test_case","TestBPM","","","正向用例",""
"passed","Mon Jul 15 11:51:48 CST 2024","Mon Jul 15 11:51:48 CST 2024","22","test_case.test_basic","test_case","TestBPM","","","反向用例-用户名过短-密码正确",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","38","test_case.test_bpm_dependency","test_pytest_decorator","TestBPM","","","bpm-场景测试-登录-正向",""
"failed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","30","test_case.test_basic","test_case","TestBPM","","","反向用例-用户名正确-密码为空",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","43","test_case.test_lao_zhang","test_case","TestBPM","","","正向用例",""
"passed","Mon Jul 15 11:51:48 CST 2024","Mon Jul 15 11:51:48 CST 2024","30","test_case.test_basic","test_case","TestBPM","","","反向用例-用户名为空-密码正确",""
"passed","Mon Jul 15 11:51:50 CST 2024","Mon Jul 15 11:51:50 CST 2024","32","test_case.test_lao_zhang","test_case","TestBPM","","","正向用例",""
"failed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","33","test_case.test_basic","test_case","TestBPM","","","正向用例",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","30","test_case.test_bpm_dependency","test_pytest_decorator","TestBPM","","","bpm-场景测试-添加维度-正向",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","47","test_case.test_basic","test_case","TestBPM","","","正向用例",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","21","test_case.test_bpm_dependency","test_pytest_decorator","TestBPM","","","反向用例2",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","33","test_case.test_basic","test_case","TestBPM","","","正向用例",""
"failed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","25","test_case.test_basic","test_case","TestBPM","","","正向用例",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","50","test_case.test_basic","test_case","TestBPM","","","正向用例",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","30","test_case.test_bpm_dependency","test_pytest_decorator","TestBPM","","","正向用例",""
"failed","Mon Jul 15 11:51:50 CST 2024","Mon Jul 15 11:51:50 CST 2024","30","test_case.test_lao_zhang","test_case","TestBPM","","","正向用例",""
"failed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","40","test_case.test_basic","test_case","TestBPM","","","反向用例-用户名正确-密码过短",""
"passed","Mon Jul 15 11:51:50 CST 2024","Mon Jul 15 11:51:50 CST 2024","50","test_case.test_lao_zhang","test_case","TestBPM","","","正向用例",""
"passed","Mon Jul 15 11:51:50 CST 2024","Mon Jul 15 11:51:50 CST 2024","57","test_case.test_lao_zhang","test_case","TestBPM","","","正向用例",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","20","test_case.test_basic","test_case","TestBPM","","","正向用例",""
"passed","Mon Jul 15 11:51:48 CST 2024","Mon Jul 15 11:51:48 CST 2024","33","test_case.test_basic","test_case","TestBPM","","","反向用例-用户名过长-密码正确",""
"passed","Mon Jul 15 11:51:49 CST 2024","Mon Jul 15 11:51:49 CST 2024","30","test_case.test_basic","test_case","TestBPM","","","反向用例-用户名为特殊字符-密码正确",""
{
"uid" : "98d3104e051c652961429bf95fa0b5d6",
"name" : "suites",
"children" : [ {
"name" : "test_case.test_basic",
"children" : [ {
"name" : "test_case",
"children" : [ {
"name" : "TestBPM",
"children" : [ {
"name" : "正向用例-用户名和密码正确",
"uid" : "b6f199268924eda5",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "passed",
"time" : {
"start" : 1721015508821,
"stop" : 1721015508874,
"duration" : 53
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'正向用例-用户名和密码正确'", "'http://36.139.193.99:8088/auth'", "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400}", "'高'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名为空-密码正确",
"uid" : "227afaebb1cd08da",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "passed",
"time" : {
"start" : 1721015508881,
"stop" : 1721015508911,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名为空-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名过短-密码正确",
"uid" : "18c9ae039fc34574",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "passed",
"time" : {
"start" : 1721015508921,
"stop" : 1721015508943,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名过短-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名过长-密码正确",
"uid" : "97129a0488d10506",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "passed",
"time" : {
"start" : 1721015508961,
"stop" : 1721015508994,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名过长-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名为特殊字符-密码正确",
"uid" : "d8e2cfa116528f24",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "passed",
"time" : {
"start" : 1721015509011,
"stop" : 1721015509041,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '♡♣♤♥♦♧♨♩ε', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名为特殊字符-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码为空",
"uid" : "cf2367dcaff14656",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "failed",
"time" : {
"start" : 1721015509051,
"stop" : 1721015509081,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码为空'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码过长",
"uid" : "72d697fa34152bb7",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "failed",
"time" : {
"start" : 1721015509247,
"stop" : 1721015509276,
"duration" : 29
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '1'}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码过长'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码过短",
"uid" : "fd64392edbae973f",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "failed",
"time" : {
"start" : 1721015509291,
"stop" : 1721015509331,
"duration" : 40
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码过短'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "d57c2d7e4a5351e1",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "failed",
"time" : {
"start" : 1721015509346,
"stop" : 1721015509371,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'GET'", "None", "'正向用例'", "'http://36.139.193.99:8088/refresh'", "{'message': '刷新成功'}", "'高'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "1fe7b9a6b59ab340",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "passed",
"time" : {
"start" : 1721015509388,
"stop" : 1721015509421,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'", "{'message': '添加维度成功!'}", "'高'", "'维度管理'", "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'delete'", "None" ]
}, {
"name" : "正向用例",
"uid" : "6cc3dac6ac75a610",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "passed",
"time" : {
"start" : 1721015509436,
"stop" : 1721015509461,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'设置默认维度'", "{'code': 'test_dem_xyz_123'}", "'PUT'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'", "{'message': '设置默认维度成功!'}", "'中'", "'维度管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "c7bc7d60342c12ef",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "passed",
"time" : {
"start" : 1721015509471,
"stop" : 1721015509521,
"duration" : 50
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'", "{'message': '添加组织成功!'}", "'高'", "'组织管理'", "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}", "'select|delete'", "'demId'" ]
}, {
"name" : "正向用例",
"uid" : "dab13890b023630d",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "passed",
"time" : {
"start" : 1721015509531,
"stop" : 1721015509551,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}", "'post'", "'query|json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'", "{'state': True, 'message': '保存组织参数成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "455a4ab887c89b43",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "passed",
"time" : {
"start" : 1721015509564,
"stop" : 1721015509611,
"duration" : 47
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_org'", "'post'", "'form'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'", "{'state': True, 'message': '删除组织成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "72761ac453ae24f7",
"parentUid" : "ee030a43b1e728d770eb1c77b9142943",
"status" : "failed",
"time" : {
"start" : 1721015509625,
"stop" : 1721015509658,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'DELETE'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'", "{'message': '删除维度成功'}", "'中'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'select'", "'ids'" ]
} ],
"uid" : "ee030a43b1e728d770eb1c77b9142943"
} ],
"uid" : "4e71032b69da49fa4dc153f5a1fef586"
} ],
"uid" : "d6c27516cfb7fd4d4410f19a31d4e57b"
}, {
"name" : "test_case.test_bpm_dependency",
"children" : [ {
"name" : "test_pytest_decorator",
"children" : [ {
"name" : "TestBPM",
"children" : [ {
"name" : "bpm-场景测试-登录-正向",
"uid" : "4f1b074e9624da25",
"parentUid" : "54d5e14af6886e7a3e2cd203cbf268ce",
"status" : "passed",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509711,
"duration" : 38
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "bpm-场景测试-添加维度-正向",
"uid" : "4e9a2e5e031bc082",
"parentUid" : "54d5e14af6886e7a3e2cd203cbf268ce",
"status" : "passed",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509741,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "正向用例",
"uid" : "ea5cfa6f2d41ee86",
"parentUid" : "54d5e14af6886e7a3e2cd203cbf268ce",
"status" : "passed",
"time" : {
"start" : 1721015509741,
"stop" : 1721015509771,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "{'code': '需要更新'}", "{'isDelete': '0'}", "'正向用例'" ]
}, {
"name" : "反向用例1",
"uid" : "4267fdae78018a0",
"parentUid" : "54d5e14af6886e7a3e2cd203cbf268ce",
"status" : "passed",
"time" : {
"start" : 1721015509791,
"stop" : 1721015509816,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "{'code': ''}", "{'message': '必填:code维度编码必填!'}", "'反向用例1'" ]
}, {
"name" : "反向用例2",
"uid" : "c5318f7b5f3f4c94",
"parentUid" : "54d5e14af6886e7a3e2cd203cbf268ce",
"status" : "passed",
"time" : {
"start" : 1721015509824,
"stop" : 1721015509845,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "{'': 'abctest'}", "{'message': \"Required String parameter 'code' is not present\"}", "'反向用例2'" ]
} ],
"uid" : "54d5e14af6886e7a3e2cd203cbf268ce"
} ],
"uid" : "ebf0d047a75eb0c8f26e5a25fee8dd40"
} ],
"uid" : "727cdc55e0284d10bada9eae3e5356f7"
}, {
"name" : "test_case.test_lao_zhang",
"children" : [ {
"name" : "test_case",
"children" : [ {
"name" : "TestBPM",
"children" : [ {
"name" : "正向用例",
"uid" : "fc0746e5dd6e5c7",
"parentUid" : "9de6ed16dab2b07fc49b7387ee031fc5",
"status" : "passed",
"time" : {
"start" : 1721015509931,
"stop" : 1721015509974,
"duration" : 43
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'", "{'message': '添加维度成功!'}", "'高'", "'维度管理'", "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'delete'", "None" ]
}, {
"name" : "正向用例",
"uid" : "1ad087c20ec34a2f",
"parentUid" : "9de6ed16dab2b07fc49b7387ee031fc5",
"status" : "passed",
"time" : {
"start" : 1721015509981,
"stop" : 1721015510006,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'设置默认维度'", "{'code': 'test_dem_xyz_123'}", "'PUT'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'", "{'message': '设置默认维度成功!'}", "'中'", "'维度管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "a0cdc25f805aa36e",
"parentUid" : "9de6ed16dab2b07fc49b7387ee031fc5",
"status" : "passed",
"time" : {
"start" : 1721015510013,
"stop" : 1721015510070,
"duration" : 57
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'", "{'message': '添加组织成功!'}", "'高'", "'组织管理'", "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}", "'select|delete'", "'demId'" ]
}, {
"name" : "正向用例",
"uid" : "e424f5c7765fbab5",
"parentUid" : "9de6ed16dab2b07fc49b7387ee031fc5",
"status" : "passed",
"time" : {
"start" : 1721015510071,
"stop" : 1721015510121,
"duration" : 50
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}", "'post'", "'query|json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'", "{'state': True, 'message': '保存组织参数成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "5fe4c7580aedb74f",
"parentUid" : "9de6ed16dab2b07fc49b7387ee031fc5",
"status" : "passed",
"time" : {
"start" : 1721015510131,
"stop" : 1721015510163,
"duration" : 32
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_org'", "'post'", "'form'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'", "{'state': True, 'message': '删除组织成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "ae6557b0196ebf3f",
"parentUid" : "9de6ed16dab2b07fc49b7387ee031fc5",
"status" : "failed",
"time" : {
"start" : 1721015510171,
"stop" : 1721015510201,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'DELETE'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'", "{'message': '删除维度成功'}", "'中'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'select'", "'ids'" ]
} ],
"uid" : "9de6ed16dab2b07fc49b7387ee031fc5"
} ],
"uid" : "480ba742f14b6fd962bc5cb59e738f43"
} ],
"uid" : "f807542b498ef7f359918df354af54f0"
} ]
}
\ No newline at end of file
{
"uid" : "18c9ae039fc34574",
"name" : "反向用例-用户名过短-密码正确",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "c75e95c5293a2f59a8de238e57454e2c",
"time" : {
"start" : 1721015508921,
"stop" : 1721015508943,
"duration" : 22
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "27879f9966a71178",
"name" : "log",
"source" : "27879f9966a71178.txt",
"type" : "text/plain",
"size" : 435
}, {
"uid" : "e05a3b851949459a",
"name" : "stdout",
"source" : "e05a3b851949459a.txt",
"type" : "text/plain",
"size" : 455
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'a', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"
}, {
"name" : "case_method",
"value" : "'POST'"
}, {
"name" : "case_mime",
"value" : "'application/json'"
}, {
"name" : "case_title",
"value" : "'反向用例-用户名过短-密码正确'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/auth'"
}, {
"name" : "expect_data",
"value" : "{'state': False, 'message': '账户错误或该租户未启用'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "18c9ae039fc34574.json",
"parameterValues" : [ "'登录系统'", "{'username': 'a', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名过短-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "1ad087c20ec34a2f",
"name" : "正向用例",
"fullName" : "test_case.test_lao_zhang.test_case.TestBPM#test_bpm",
"historyId" : "56957926302f06b75969c6b498f201d0",
"time" : {
"start" : 1721015509981,
"stop" : 1721015510006,
"duration" : 25
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "req_fix",
"time" : {
"start" : 1721015509851,
"stop" : 1721015509894,
"duration" : 43
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "db_fix",
"time" : {
"start" : 1721015509894,
"stop" : 1721015509926,
"duration" : 32
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "3f8aad5ab10b9c6c",
"name" : "log",
"source" : "3f8aad5ab10b9c6c.txt",
"type" : "text/plain",
"size" : 383
}, {
"uid" : "1ef1960aa877fdfb",
"name" : "stdout",
"source" : "1ef1960aa877fdfb.txt",
"type" : "text/plain",
"size" : 248
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510211,
"stop" : 1721015510211,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "设置默认维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-张三"
}, {
"name" : "parentSuite",
"value" : "test_case.test_lao_zhang"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_lao_zhang.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'设置默认维度'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_dem_xyz_123'}"
}, {
"name" : "case_method",
"value" : "'PUT'"
}, {
"name" : "case_mime",
"value" : "'query'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"
}, {
"name" : "expect_data",
"value" : "{'message': '设置默认维度成功!'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "1ad087c20ec34a2f.json",
"parameterValues" : [ "'设置默认维度'", "{'code': 'test_dem_xyz_123'}", "'PUT'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'", "{'message': '设置默认维度成功!'}", "'中'", "'维度管理'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "1fe7b9a6b59ab340",
"name" : "正向用例",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "ccc47dd491dda4f012668830aede7239",
"time" : {
"start" : 1721015509388,
"stop" : 1721015509421,
"duration" : 33
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "dea1f5a3b5f6c841",
"name" : "log",
"source" : "dea1f5a3b5f6c841.txt",
"type" : "text/plain",
"size" : 351
}, {
"uid" : "1ef90e8a9f2ef806",
"name" : "stdout",
"source" : "1ef90e8a9f2ef806.txt",
"type" : "text/plain",
"size" : 359
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "添加维度"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加维度'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}"
}, {
"name" : "case_method",
"value" : "'post'"
}, {
"name" : "case_mime",
"value" : "'json'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加维度成功!'}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"
}, {
"name" : "sql_type",
"value" : "'delete'"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "1fe7b9a6b59ab340.json",
"parameterValues" : [ "'添加维度'", "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'", "{'message': '添加维度成功!'}", "'高'", "'维度管理'", "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'delete'", "None" ]
}
\ No newline at end of file
{
"uid" : "227afaebb1cd08da",
"name" : "反向用例-用户名为空-密码正确",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "4a35e629ced594be4e64e255839f5624",
"time" : {
"start" : 1721015508881,
"stop" : 1721015508911,
"duration" : 30
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "2c063d9151ca66f8",
"name" : "log",
"source" : "2c063d9151ca66f8.txt",
"type" : "text/plain",
"size" : 328
}, {
"uid" : "d14c338af7199f58",
"name" : "stdout",
"source" : "d14c338af7199f58.txt",
"type" : "text/plain",
"size" : 454
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': '', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"
}, {
"name" : "case_method",
"value" : "'POST'"
}, {
"name" : "case_mime",
"value" : "'application/json'"
}, {
"name" : "case_title",
"value" : "'反向用例-用户名为空-密码正确'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/auth'"
}, {
"name" : "expect_data",
"value" : "{'state': False, 'message': '账户错误或该租户未启用'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "227afaebb1cd08da.json",
"parameterValues" : [ "'登录系统'", "{'username': '', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名为空-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "4267fdae78018a0",
"name" : "反向用例1",
"fullName" : "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_get_dem_msg",
"historyId" : "8b5c6ab7c7d5d427ca8434dcfe2f2220",
"time" : {
"start" : 1721015509791,
"stop" : 1721015509816,
"duration" : 25
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "set_depends_value",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509673,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "get_depends_value",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509711,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "74dc8cbff3bf855",
"name" : "log",
"source" : "74dc8cbff3bf855.txt",
"type" : "text/plain",
"size" : 528
}, {
"uid" : "f7f0c11174730a56",
"name" : "stdout",
"source" : "f7f0c11174730a56.txt",
"type" : "text/plain",
"size" : 13
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "set_depends_value::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "get_depends_value::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "story",
"value" : "根据维度编码获取维度信息"
}, {
"name" : "epic",
"value" : "bpm-场景测试"
}, {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "tag",
"value" : "dependency(depends=['TestBPM::test_add_dem'])"
}, {
"name" : "parentSuite",
"value" : "test_case.test_bpm_dependency"
}, {
"name" : "suite",
"value" : "test_pytest_decorator"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_bpm_dependency.test_pytest_decorator"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "case_data",
"value" : "{'code': ''}"
}, {
"name" : "expect_data",
"value" : "{'message': '必填:code维度编码必填!'}"
}, {
"name" : "title",
"value" : "'反向用例1'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ "dependency(depends=['TestBPM::test_add_dem'])" ]
},
"source" : "4267fdae78018a0.json",
"parameterValues" : [ "{'code': ''}", "{'message': '必填:code维度编码必填!'}", "'反向用例1'" ]
}
\ No newline at end of file
{
"uid" : "455a4ab887c89b43",
"name" : "正向用例",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "817beae3f290f38d2fbd5f74a7b72a55",
"time" : {
"start" : 1721015509564,
"stop" : 1721015509611,
"duration" : 47
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "bbf7d9eea2edbea",
"name" : "log",
"source" : "bbf7d9eea2edbea.txt",
"type" : "text/plain",
"size" : 348
}, {
"uid" : "ee5b60659958abeb",
"name" : "stdout",
"source" : "ee5b60659958abeb.txt",
"type" : "text/plain",
"size" : 221
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "删除组织"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'删除组织'"
}, {
"name" : "case_data",
"value" : "'test_org'"
}, {
"name" : "case_method",
"value" : "'post'"
}, {
"name" : "case_mime",
"value" : "'form'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '删除组织成功!'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "455a4ab887c89b43.json",
"parameterValues" : [ "'删除组织'", "'test_org'", "'post'", "'form'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'", "{'state': True, 'message': '删除组织成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "4e9a2e5e031bc082",
"name" : "bpm-场景测试-添加维度-正向",
"fullName" : "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_add_dem",
"historyId" : "128da70acc78e495205cae38c86a3095",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509741,
"duration" : 30
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "set_depends_value",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509673,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "get_depends_value",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509711,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "75b1aedf6663b5b6",
"name" : "log",
"source" : "75b1aedf6663b5b6.txt",
"type" : "text/plain",
"size" : 466
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "set_depends_value::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "get_depends_value::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "epic",
"value" : "bpm-场景测试"
}, {
"name" : "story",
"value" : "添加维度"
}, {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "tag",
"value" : "dependency(depends=['TestBPM::test_login'])"
}, {
"name" : "parentSuite",
"value" : "test_case.test_bpm_dependency"
}, {
"name" : "suite",
"value" : "test_pytest_decorator"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_bpm_dependency.test_pytest_decorator"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ "dependency(depends=['TestBPM::test_login'])" ]
},
"source" : "4e9a2e5e031bc082.json",
"parameterValues" : [ ]
}
\ No newline at end of file
{
"uid" : "4f1b074e9624da25",
"name" : "bpm-场景测试-登录-正向",
"fullName" : "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_login",
"historyId" : "4569b0471702313459c9b42c94979bb4",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509711,
"duration" : 38
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "set_depends_value",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509673,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "6bf441c14871f960",
"name" : "log",
"source" : "6bf441c14871f960.txt",
"type" : "text/plain",
"size" : 234
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 1,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "set_depends_value::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "epic",
"value" : "bpm-场景测试"
}, {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "tag",
"value" : "dependency"
}, {
"name" : "parentSuite",
"value" : "test_case.test_bpm_dependency"
}, {
"name" : "suite",
"value" : "test_pytest_decorator"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_bpm_dependency.test_pytest_decorator"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ "dependency" ]
},
"source" : "4f1b074e9624da25.json",
"parameterValues" : [ ]
}
\ No newline at end of file
{
"uid" : "5fe4c7580aedb74f",
"name" : "正向用例",
"fullName" : "test_case.test_lao_zhang.test_case.TestBPM#test_bpm",
"historyId" : "d62e434428362512a9058f68faafe2f2",
"time" : {
"start" : 1721015510131,
"stop" : 1721015510163,
"duration" : 32
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "req_fix",
"time" : {
"start" : 1721015509851,
"stop" : 1721015509894,
"duration" : 43
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "db_fix",
"time" : {
"start" : 1721015509894,
"stop" : 1721015509926,
"duration" : 32
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "3ba60454a928158e",
"name" : "log",
"source" : "3ba60454a928158e.txt",
"type" : "text/plain",
"size" : 352
}, {
"uid" : "8e2506d2d4794ccf",
"name" : "stdout",
"source" : "8e2506d2d4794ccf.txt",
"type" : "text/plain",
"size" : 221
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510211,
"stop" : 1721015510211,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "删除组织"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-张三"
}, {
"name" : "parentSuite",
"value" : "test_case.test_lao_zhang"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_lao_zhang.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'删除组织'"
}, {
"name" : "case_data",
"value" : "'test_org'"
}, {
"name" : "case_method",
"value" : "'post'"
}, {
"name" : "case_mime",
"value" : "'form'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '删除组织成功!'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "5fe4c7580aedb74f.json",
"parameterValues" : [ "'删除组织'", "'test_org'", "'post'", "'form'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'", "{'state': True, 'message': '删除组织成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "6cc3dac6ac75a610",
"name" : "正向用例",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "ab9675ee712bd87eed823fadbd2abe6a",
"time" : {
"start" : 1721015509436,
"stop" : 1721015509461,
"duration" : 25
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "5c8d8cfc484267f",
"name" : "log",
"source" : "5c8d8cfc484267f.txt",
"type" : "text/plain",
"size" : 379
}, {
"uid" : "b93d190c069c422",
"name" : "stdout",
"source" : "b93d190c069c422.txt",
"type" : "text/plain",
"size" : 248
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "设置默认维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'设置默认维度'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_dem_xyz_123'}"
}, {
"name" : "case_method",
"value" : "'PUT'"
}, {
"name" : "case_mime",
"value" : "'query'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"
}, {
"name" : "expect_data",
"value" : "{'message': '设置默认维度成功!'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "6cc3dac6ac75a610.json",
"parameterValues" : [ "'设置默认维度'", "{'code': 'test_dem_xyz_123'}", "'PUT'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'", "{'message': '设置默认维度成功!'}", "'中'", "'维度管理'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "72761ac453ae24f7",
"name" : "正向用例",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "5abfadd4bc6f48931308e01525d1aa96",
"time" : {
"start" : 1721015509625,
"stop" : 1721015509658,
"duration" : 33
},
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败,描述失败的原因",
"statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB7A0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812696302778687488'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB7A0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812696302778687488'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败,描述失败的原因",
"statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB7A0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812696302778687488'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB7A0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812696302778687488'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "21fed71ea3954314",
"name" : "log",
"source" : "21fed71ea3954314.txt",
"type" : "text/plain",
"size" : 656
}, {
"uid" : "d63e19da329e7efd",
"name" : "stdout",
"source" : "d63e19da329e7efd.txt",
"type" : "text/plain",
"size" : 278
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : true
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '需要更新'}"
}, {
"name" : "case_method",
"value" : "'DELETE'"
}, {
"name" : "case_mime",
"value" : "'query'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "72761ac453ae24f7.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'DELETE'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'", "{'message': '删除维度成功'}", "'中'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'select'", "'ids'" ]
}
\ No newline at end of file
{
"uid" : "72d697fa34152bb7",
"name" : "反向用例-用户名正确-密码过长",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "63bcb2c305b7f0bcb7fd2d55d671e0a6",
"time" : {
"start" : 1721015509247,
"stop" : 1721015509276,
"duration" : 29
},
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败,描述失败的原因",
"statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AAF0F70>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AAF0F70>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败,描述失败的原因",
"statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AAF0F70>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AAF0F70>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "9a3af2716ec3d46a",
"name" : "log",
"source" : "9a3af2716ec3d46a.txt",
"type" : "text/plain",
"size" : 706
}, {
"uid" : "7926247755c0ca63",
"name" : "stdout",
"source" : "7926247755c0ca63.txt",
"type" : "text/plain",
"size" : 263
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : true
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'admin', 'password': '1'}"
}, {
"name" : "case_method",
"value" : "'POST'"
}, {
"name" : "case_mime",
"value" : "'application/json'"
}, {
"name" : "case_title",
"value" : "'反向用例-用户名正确-密码过长'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/auth'"
}, {
"name" : "expect_data",
"value" : "{'state': False, 'message': '账户错误或该租户未启用'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "72d697fa34152bb7.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': '1'}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码过长'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "97129a0488d10506",
"name" : "反向用例-用户名过长-密码正确",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "6a5ad61f25e888eed5239bf5b93834c2",
"time" : {
"start" : 1721015508961,
"stop" : 1721015508994,
"duration" : 33
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "98bb8c28d5484296",
"name" : "log",
"source" : "98bb8c28d5484296.txt",
"type" : "text/plain",
"size" : 435
}, {
"uid" : "e9c3ff75a6429ed9",
"name" : "stdout",
"source" : "e9c3ff75a6429ed9.txt",
"type" : "text/plain",
"size" : 564
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"
}, {
"name" : "case_method",
"value" : "'POST'"
}, {
"name" : "case_mime",
"value" : "'application/json'"
}, {
"name" : "case_title",
"value" : "'反向用例-用户名过长-密码正确'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/auth'"
}, {
"name" : "expect_data",
"value" : "{'state': False, 'message': '账户错误或该租户未启用'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "97129a0488d10506.json",
"parameterValues" : [ "'登录系统'", "{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名过长-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "a0cdc25f805aa36e",
"name" : "正向用例",
"fullName" : "test_case.test_lao_zhang.test_case.TestBPM#test_bpm",
"historyId" : "5410146ab95dd5aa26e6bad748d7205e",
"time" : {
"start" : 1721015510013,
"stop" : 1721015510070,
"duration" : 57
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "req_fix",
"time" : {
"start" : 1721015509851,
"stop" : 1721015509894,
"duration" : 43
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "db_fix",
"time" : {
"start" : 1721015509894,
"stop" : 1721015509926,
"duration" : 32
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "22a13c80979b19ac",
"name" : "log",
"source" : "22a13c80979b19ac.txt",
"type" : "text/plain",
"size" : 349
}, {
"uid" : "68a11131f139cfe0",
"name" : "stdout",
"source" : "68a11131f139cfe0.txt",
"type" : "text/plain",
"size" : 495
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510211,
"stop" : 1721015510211,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM-张三"
}, {
"name" : "parentSuite",
"value" : "test_case.test_lao_zhang"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_lao_zhang.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_method",
"value" : "'post'"
}, {
"name" : "case_mime",
"value" : "'json'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功!'}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "a0cdc25f805aa36e.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'", "{'message': '添加组织成功!'}", "'高'", "'组织管理'", "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}", "'select|delete'", "'demId'" ]
}
\ No newline at end of file
{
"uid" : "ae6557b0196ebf3f",
"name" : "正向用例",
"fullName" : "test_case.test_lao_zhang.test_case.TestBPM#test_bpm",
"historyId" : "6dbe591942a5c7741e0eaae5fd698f18",
"time" : {
"start" : 1721015510171,
"stop" : 1721015510201,
"duration" : 30
},
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败, 用例数据为:{'ids': '1812696305089748992'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":true,\"message\":\"删除维度成功!\",\"value\":\"\",\"code\":200}",
"statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x0000018E4AB84310>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4ABE7040>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB2FDC0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812696305089748992'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_lao_zhang\\test_case.py:62: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x0000018E4AB84310>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4ABE7040>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB2FDC0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812696305089748992'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n # log.error(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\n # raise AssertionError(\"断言失败,描述失败的原因\")\n> raise AssertionError(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\nE AssertionError: 断言失败, 用例数据为:{'ids': '1812696305089748992'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":true,\"message\":\"删除维度成功!\",\"value\":\"\",\"code\":200}\n\ntest_case\\test_lao_zhang\\test_case.py:66: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "req_fix",
"time" : {
"start" : 1721015509851,
"stop" : 1721015509894,
"duration" : 43
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "db_fix",
"time" : {
"start" : 1721015509894,
"stop" : 1721015509926,
"duration" : 32
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败, 用例数据为:{'ids': '1812696305089748992'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":true,\"message\":\"删除维度成功!\",\"value\":\"\",\"code\":200}",
"statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x0000018E4AB84310>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4ABE7040>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB2FDC0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812696305089748992'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_lao_zhang\\test_case.py:62: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x0000018E4AB84310>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4ABE7040>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB2FDC0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812696305089748992'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n # log.error(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\n # raise AssertionError(\"断言失败,描述失败的原因\")\n> raise AssertionError(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\nE AssertionError: 断言失败, 用例数据为:{'ids': '1812696305089748992'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":true,\"message\":\"删除维度成功!\",\"value\":\"\",\"code\":200}\n\ntest_case\\test_lao_zhang\\test_case.py:66: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "a7b99f95232d51",
"name" : "log",
"source" : "a7b99f95232d51.txt",
"type" : "text/plain",
"size" : 845
}, {
"uid" : "561d5e865fe31d13",
"name" : "stdout",
"source" : "561d5e865fe31d13.txt",
"type" : "text/plain",
"size" : 278
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : true
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510211,
"stop" : 1721015510211,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-张三"
}, {
"name" : "parentSuite",
"value" : "test_case.test_lao_zhang"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_lao_zhang.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case_data",
"value" : "{'ids': '需要更新'}"
}, {
"name" : "case_method",
"value" : "'DELETE'"
}, {
"name" : "case_mime",
"value" : "'query'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"
}, {
"name" : "expect_data",
"value" : "{'message': '删除维度成功'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "update_key",
"value" : "'ids'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "ae6557b0196ebf3f.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'DELETE'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'", "{'message': '删除维度成功'}", "'中'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'select'", "'ids'" ]
}
\ No newline at end of file
{
"uid" : "b6f199268924eda5",
"name" : "正向用例-用户名和密码正确",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "81b63d12303454254c2f6e7bbd67d858",
"time" : {
"start" : 1721015508821,
"stop" : 1721015508874,
"duration" : 53
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "49de7804f85f3a4c",
"name" : "log",
"source" : "49de7804f85f3a4c.txt",
"type" : "text/plain",
"size" : 563
}, {
"uid" : "3406f55b56368dc3",
"name" : "stdout",
"source" : "3406f55b56368dc3.txt",
"type" : "text/plain",
"size" : 715
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"
}, {
"name" : "case_method",
"value" : "'POST'"
}, {
"name" : "case_mime",
"value" : "'application/json'"
}, {
"name" : "case_title",
"value" : "'正向用例-用户名和密码正确'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/auth'"
}, {
"name" : "expect_data",
"value" : "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "b6f199268924eda5.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'正向用例-用户名和密码正确'", "'http://36.139.193.99:8088/auth'", "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400}", "'高'", "'认证接口'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "c5318f7b5f3f4c94",
"name" : "反向用例2",
"fullName" : "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_get_dem_msg",
"historyId" : "b4daa31cff4b552b412448af5e4ed813",
"time" : {
"start" : 1721015509824,
"stop" : 1721015509845,
"duration" : 21
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "set_depends_value",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509673,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "get_depends_value",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509711,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "2582e5074045aede",
"name" : "log",
"source" : "2582e5074045aede.txt",
"type" : "text/plain",
"size" : 531
}, {
"uid" : "dab9bfb448f2fd10",
"name" : "stdout",
"source" : "dab9bfb448f2fd10.txt",
"type" : "text/plain",
"size" : 13
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "set_depends_value::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "get_depends_value::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "story",
"value" : "根据维度编码获取维度信息"
}, {
"name" : "epic",
"value" : "bpm-场景测试"
}, {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "tag",
"value" : "dependency(depends=['TestBPM::test_add_dem'])"
}, {
"name" : "parentSuite",
"value" : "test_case.test_bpm_dependency"
}, {
"name" : "suite",
"value" : "test_pytest_decorator"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_bpm_dependency.test_pytest_decorator"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "case_data",
"value" : "{'': 'abctest'}"
}, {
"name" : "expect_data",
"value" : "{'message': \"Required String parameter 'code' is not present\"}"
}, {
"name" : "title",
"value" : "'反向用例2'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ "dependency(depends=['TestBPM::test_add_dem'])" ]
},
"source" : "c5318f7b5f3f4c94.json",
"parameterValues" : [ "{'': 'abctest'}", "{'message': \"Required String parameter 'code' is not present\"}", "'反向用例2'" ]
}
\ No newline at end of file
{
"uid" : "c7bc7d60342c12ef",
"name" : "正向用例",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "3ad648c8f08b059e000e7d84b04cb5ed",
"time" : {
"start" : 1721015509471,
"stop" : 1721015509521,
"duration" : 50
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "ab9f48ef25d400fc",
"name" : "log",
"source" : "ab9f48ef25d400fc.txt",
"type" : "text/plain",
"size" : 345
}, {
"uid" : "3529d9af35a0d530",
"name" : "stdout",
"source" : "3529d9af35a0d530.txt",
"type" : "text/plain",
"size" : 495
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加组织'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "case_method",
"value" : "'post'"
}, {
"name" : "case_mime",
"value" : "'json'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加组织成功!'}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}"
}, {
"name" : "sql_type",
"value" : "'select|delete'"
}, {
"name" : "update_key",
"value" : "'demId'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "c7bc7d60342c12ef.json",
"parameterValues" : [ "'添加组织'", "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'", "{'message': '添加组织成功!'}", "'高'", "'组织管理'", "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}", "'select|delete'", "'demId'" ]
}
\ No newline at end of file
{
"uid" : "cf2367dcaff14656",
"name" : "反向用例-用户名正确-密码为空",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "f640363898931f48a2631389cf661c1a",
"time" : {
"start" : 1721015509051,
"stop" : 1721015509081,
"duration" : 30
},
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败,描述失败的原因",
"statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB49CA0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB49CA0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败,描述失败的原因",
"statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB49CA0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB49CA0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "aded56688dffed86",
"name" : "log",
"source" : "aded56688dffed86.txt",
"type" : "text/plain",
"size" : 706
}, {
"uid" : "d50bce2e13293440",
"name" : "stdout",
"source" : "d50bce2e13293440.txt",
"type" : "text/plain",
"size" : 262
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : true
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'admin', 'password': ''}"
}, {
"name" : "case_method",
"value" : "'POST'"
}, {
"name" : "case_mime",
"value" : "'application/json'"
}, {
"name" : "case_title",
"value" : "'反向用例-用户名正确-密码为空'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/auth'"
}, {
"name" : "expect_data",
"value" : "{'state': False, 'message': '账户错误或该租户未启用'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "cf2367dcaff14656.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码为空'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "d57c2d7e4a5351e1",
"name" : "正向用例",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "0726b7ece66163239f4822447c1bd114",
"time" : {
"start" : 1721015509346,
"stop" : 1721015509371,
"duration" : 25
},
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败,描述失败的原因",
"statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB0B0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '刷新成功' == None\nE + where None = <built-in method get of dict object at 0x0000018E4AC59B40>('message')\nE + where <built-in method get of dict object at 0x0000018E4AC59B40> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB0B0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败,描述失败的原因",
"statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB0B0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '刷新成功' == None\nE + where None = <built-in method get of dict object at 0x0000018E4AC59B40>('message')\nE + where <built-in method get of dict object at 0x0000018E4AC59B40> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB0B0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "97df77c4a34bfb1f",
"name" : "log",
"source" : "97df77c4a34bfb1f.txt",
"type" : "text/plain",
"size" : 601
}, {
"uid" : "39ee197f614405f5",
"name" : "stdout",
"source" : "39ee197f614405f5.txt",
"type" : "text/plain",
"size" : 386
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : true
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "刷新token"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'刷新token'"
}, {
"name" : "case_data",
"value" : "None"
}, {
"name" : "case_method",
"value" : "'GET'"
}, {
"name" : "case_mime",
"value" : "None"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/refresh'"
}, {
"name" : "expect_data",
"value" : "{'message': '刷新成功'}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "d57c2d7e4a5351e1.json",
"parameterValues" : [ "'刷新token'", "None", "'GET'", "None", "'正向用例'", "'http://36.139.193.99:8088/refresh'", "{'message': '刷新成功'}", "'高'", "'认证接口'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "d8e2cfa116528f24",
"name" : "反向用例-用户名为特殊字符-密码正确",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "84712d074d431df54c5e53fe70699f96",
"time" : {
"start" : 1721015509011,
"stop" : 1721015509041,
"duration" : 30
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "b10859c5024877b9",
"name" : "log",
"source" : "b10859c5024877b9.txt",
"type" : "text/plain",
"size" : 435
}, {
"uid" : "f320940be6156153",
"name" : "stdout",
"source" : "f320940be6156153.txt",
"type" : "text/plain",
"size" : 480
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': '♡♣♤♥♦♧♨♩ε', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"
}, {
"name" : "case_method",
"value" : "'POST'"
}, {
"name" : "case_mime",
"value" : "'application/json'"
}, {
"name" : "case_title",
"value" : "'反向用例-用户名为特殊字符-密码正确'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/auth'"
}, {
"name" : "expect_data",
"value" : "{'state': False, 'message': '账户错误或该租户未启用'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "d8e2cfa116528f24.json",
"parameterValues" : [ "'登录系统'", "{'username': '♡♣♤♥♦♧♨♩ε', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名为特殊字符-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "dab13890b023630d",
"name" : "正向用例",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "764d3ad32e20031839427f75fe32737a",
"time" : {
"start" : 1721015509531,
"stop" : 1721015509551,
"duration" : 20
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "ed783233eb616daf",
"name" : "log",
"source" : "ed783233eb616daf.txt",
"type" : "text/plain",
"size" : 374
}, {
"uid" : "e88a430d6089691e",
"name" : "stdout",
"source" : "e88a430d6089691e.txt",
"type" : "text/plain",
"size" : 317
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "保存组织参数"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'保存组织参数'"
}, {
"name" : "case_data",
"value" : "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}"
}, {
"name" : "case_method",
"value" : "'post'"
}, {
"name" : "case_mime",
"value" : "'query|json'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '保存组织参数成功!'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "dab13890b023630d.json",
"parameterValues" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}", "'post'", "'query|json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'", "{'state': True, 'message': '保存组织参数成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "e424f5c7765fbab5",
"name" : "正向用例",
"fullName" : "test_case.test_lao_zhang.test_case.TestBPM#test_bpm",
"historyId" : "a846fa27705c7e18d3cf0d1b13ce62eb",
"time" : {
"start" : 1721015510071,
"stop" : 1721015510121,
"duration" : 50
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "req_fix",
"time" : {
"start" : 1721015509851,
"stop" : 1721015509894,
"duration" : 43
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "db_fix",
"time" : {
"start" : 1721015509894,
"stop" : 1721015509926,
"duration" : 32
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "e323aa041941120b",
"name" : "log",
"source" : "e323aa041941120b.txt",
"type" : "text/plain",
"size" : 378
}, {
"uid" : "f219135bd45d35d",
"name" : "stdout",
"source" : "f219135bd45d35d.txt",
"type" : "text/plain",
"size" : 317
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510211,
"stop" : 1721015510211,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "保存组织参数"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-张三"
}, {
"name" : "parentSuite",
"value" : "test_case.test_lao_zhang"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_lao_zhang.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'保存组织参数'"
}, {
"name" : "case_data",
"value" : "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}"
}, {
"name" : "case_method",
"value" : "'post'"
}, {
"name" : "case_mime",
"value" : "'query|json'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"
}, {
"name" : "expect_data",
"value" : "{'state': True, 'message': '保存组织参数成功!'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'组织管理'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "e424f5c7765fbab5.json",
"parameterValues" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}", "'post'", "'query|json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'", "{'state': True, 'message': '保存组织参数成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "ea5cfa6f2d41ee86",
"name" : "正向用例",
"fullName" : "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_get_dem_msg",
"historyId" : "3fe626704418069130cfcd5208110f60",
"time" : {
"start" : 1721015509741,
"stop" : 1721015509771,
"duration" : 30
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "set_depends_value",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509673,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "get_depends_value",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509711,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "e6d72b1623aa52e5",
"name" : "log",
"source" : "e6d72b1623aa52e5.txt",
"type" : "text/plain",
"size" : 539
}, {
"uid" : "1e3eaa27445b767d",
"name" : "stdout",
"source" : "1e3eaa27445b767d.txt",
"type" : "text/plain",
"size" : 13
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "set_depends_value::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "get_depends_value::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "story",
"value" : "根据维度编码获取维度信息"
}, {
"name" : "epic",
"value" : "bpm-场景测试"
}, {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "tag",
"value" : "dependency(depends=['TestBPM::test_add_dem'])"
}, {
"name" : "parentSuite",
"value" : "test_case.test_bpm_dependency"
}, {
"name" : "suite",
"value" : "test_pytest_decorator"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_bpm_dependency.test_pytest_decorator"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "case_data",
"value" : "{'code': '需要更新'}"
}, {
"name" : "expect_data",
"value" : "{'isDelete': '0'}"
}, {
"name" : "title",
"value" : "'正向用例'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ "dependency(depends=['TestBPM::test_add_dem'])" ]
},
"source" : "ea5cfa6f2d41ee86.json",
"parameterValues" : [ "{'code': '需要更新'}", "{'isDelete': '0'}", "'正向用例'" ]
}
\ No newline at end of file
{
"uid" : "fc0746e5dd6e5c7",
"name" : "正向用例",
"fullName" : "test_case.test_lao_zhang.test_case.TestBPM#test_bpm",
"historyId" : "66a9541ee6ddd173bc3735e2e4285b95",
"time" : {
"start" : 1721015509931,
"stop" : 1721015509974,
"duration" : 43
},
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "req_fix",
"time" : {
"start" : 1721015509851,
"stop" : 1721015509894,
"duration" : 43
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "db_fix",
"time" : {
"start" : 1721015509894,
"stop" : 1721015509926,
"duration" : 32
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "c4f5579adac8f4a5",
"name" : "log",
"source" : "c4f5579adac8f4a5.txt",
"type" : "text/plain",
"size" : 590
}, {
"uid" : "9afeb67ed132cc7c",
"name" : "stdout",
"source" : "9afeb67ed132cc7c.txt",
"type" : "text/plain",
"size" : 359
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : false
},
"afterStages" : [ {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510211,
"stop" : 1721015510211,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "添加维度"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM-张三"
}, {
"name" : "parentSuite",
"value" : "test_case.test_lao_zhang"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_lao_zhang.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'添加维度'"
}, {
"name" : "case_data",
"value" : "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}"
}, {
"name" : "case_method",
"value" : "'post'"
}, {
"name" : "case_mime",
"value" : "'json'"
}, {
"name" : "case_title",
"value" : "'正向用例'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"
}, {
"name" : "expect_data",
"value" : "{'message': '添加维度成功!'}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "module_name",
"value" : "'维度管理'"
}, {
"name" : "sql_data",
"value" : "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"
}, {
"name" : "sql_type",
"value" : "'delete'"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "fc0746e5dd6e5c7.json",
"parameterValues" : [ "'添加维度'", "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'", "{'message': '添加维度成功!'}", "'高'", "'维度管理'", "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'delete'", "None" ]
}
\ No newline at end of file
{
"uid" : "fd64392edbae973f",
"name" : "反向用例-用户名正确-密码过短",
"fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
"historyId" : "423b926d9c9c8e8a56af3847b1819589",
"time" : {
"start" : 1721015509291,
"stop" : 1721015509331,
"duration" : 40
},
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败,描述失败的原因",
"statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AAF0C40>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert False == None\nE + where None = <built-in method get of dict object at 0x0000018E4AC3DF40>('state')\nE + where <built-in method get of dict object at 0x0000018E4AC3DF40> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AAF0C40>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "db_fix",
"time" : {
"start" : 1721015508791,
"stop" : 1721015508821,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix",
"time" : {
"start" : 1721015508741,
"stop" : 1721015508791,
"duration" : 50
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"testStage" : {
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败,描述失败的原因",
"statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AAF0C40>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert False == None\nE + where None = <built-in method get of dict object at 0x0000018E4AC3DF40>('state')\nE + where <built-in method get of dict object at 0x0000018E4AC3DF40> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AAF0C40>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "776550ffaf8dccb0",
"name" : "log",
"source" : "776550ffaf8dccb0.txt",
"type" : "text/plain",
"size" : 706
}, {
"uid" : "4d0cd821f8a9dba0",
"name" : "stdout",
"source" : "4d0cd821f8a9dba0.txt",
"type" : "text/plain",
"size" : 851
} ],
"parameters" : [ ],
"hasContent" : true,
"stepsCount" : 0,
"attachmentsCount" : 2,
"shouldDisplayMessage" : true
},
"afterStages" : [ {
"name" : "db_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
}, {
"name" : "req_fix::0",
"time" : {
"start" : 1721015510221,
"stop" : 1721015510221,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"hasContent" : false,
"stepsCount" : 0,
"attachmentsCount" : 0,
"shouldDisplayMessage" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM-Basic"
}, {
"name" : "parentSuite",
"value" : "test_case.test_basic"
}, {
"name" : "suite",
"value" : "test_case"
}, {
"name" : "subSuite",
"value" : "TestBPM"
}, {
"name" : "host",
"value" : "LAPTOP-O09782E1"
}, {
"name" : "thread",
"value" : "18996-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_basic.test_case"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api_name",
"value" : "'登录系统'"
}, {
"name" : "case_data",
"value" : "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"
}, {
"name" : "case_method",
"value" : "'POST'"
}, {
"name" : "case_mime",
"value" : "'application/json'"
}, {
"name" : "case_title",
"value" : "'反向用例-用户名正确-密码过短'"
}, {
"name" : "case_url",
"value" : "'http://36.139.193.99:8088/auth'"
}, {
"name" : "expect_data",
"value" : "{'state': False, 'message': '账户错误或该租户未启用'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "module_name",
"value" : "'认证接口'"
}, {
"name" : "sql_data",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "update_key",
"value" : "None"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "fd64392edbae973f.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码过短'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}
\ No newline at end of file
{
"uid" : "ab17fc5a4eb3bca4b216b548c7f9fcbc",
"name" : "timeline",
"children" : [ {
"name" : "LAPTOP-O09782E1",
"children" : [ {
"name" : "18996-MainThread",
"children" : [ {
"name" : "正向用例",
"uid" : "c7bc7d60342c12ef",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509471,
"stop" : 1721015509521,
"duration" : 50
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'", "{'message': '添加组织成功!'}", "'高'", "'组织管理'", "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}", "'select|delete'", "'demId'" ]
}, {
"name" : "bpm-场景测试-登录-正向",
"uid" : "4f1b074e9624da25",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509711,
"duration" : 38
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "正向用例",
"uid" : "1fe7b9a6b59ab340",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509388,
"stop" : 1721015509421,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'", "{'message': '添加维度成功!'}", "'高'", "'维度管理'", "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'delete'", "None" ]
}, {
"name" : "正向用例",
"uid" : "ea5cfa6f2d41ee86",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509741,
"stop" : 1721015509771,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "{'code': '需要更新'}", "{'isDelete': '0'}", "'正向用例'" ]
}, {
"name" : "正向用例",
"uid" : "d57c2d7e4a5351e1",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "failed",
"time" : {
"start" : 1721015509346,
"stop" : 1721015509371,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "'GET'", "None", "'正向用例'", "'http://36.139.193.99:8088/refresh'", "{'message': '刷新成功'}", "'高'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名为空-密码正确",
"uid" : "227afaebb1cd08da",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015508881,
"stop" : 1721015508911,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名为空-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "e424f5c7765fbab5",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015510071,
"stop" : 1721015510121,
"duration" : 50
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}", "'post'", "'query|json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'", "{'state': True, 'message': '保存组织参数成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名为特殊字符-密码正确",
"uid" : "d8e2cfa116528f24",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509011,
"stop" : 1721015509041,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '♡♣♤♥♦♧♨♩ε', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名为特殊字符-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "a0cdc25f805aa36e",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015510013,
"stop" : 1721015510070,
"duration" : 57
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'", "{'message': '添加组织成功!'}", "'高'", "'组织管理'", "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}", "'select|delete'", "'demId'" ]
}, {
"name" : "正向用例",
"uid" : "dab13890b023630d",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509531,
"stop" : 1721015509551,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}", "'post'", "'query|json'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'", "{'state': True, 'message': '保存组织参数成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "72761ac453ae24f7",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "failed",
"time" : {
"start" : 1721015509625,
"stop" : 1721015509658,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'DELETE'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'", "{'message': '删除维度成功'}", "'中'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'select'", "'ids'" ]
}, {
"name" : "bpm-场景测试-添加维度-正向",
"uid" : "4e9a2e5e031bc082",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509741,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ ]
}, {
"name" : "反向用例-用户名过长-密码正确",
"uid" : "97129a0488d10506",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015508961,
"stop" : 1721015508994,
"duration" : 33
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名过长-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "ae6557b0196ebf3f",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "failed",
"time" : {
"start" : 1721015510171,
"stop" : 1721015510201,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "'DELETE'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'", "{'message': '删除维度成功'}", "'中'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'select'", "'ids'" ]
}, {
"name" : "反向用例-用户名正确-密码过长",
"uid" : "72d697fa34152bb7",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "failed",
"time" : {
"start" : 1721015509247,
"stop" : 1721015509276,
"duration" : 29
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '1'}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码过长'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例1",
"uid" : "4267fdae78018a0",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509791,
"stop" : 1721015509816,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "{'code': ''}", "{'message': '必填:code维度编码必填!'}", "'反向用例1'" ]
}, {
"name" : "正向用例-用户名和密码正确",
"uid" : "b6f199268924eda5",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015508821,
"stop" : 1721015508874,
"duration" : 53
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'正向用例-用户名和密码正确'", "'http://36.139.193.99:8088/auth'", "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400}", "'高'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "1ad087c20ec34a2f",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509981,
"stop" : 1721015510006,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'设置默认维度'", "{'code': 'test_dem_xyz_123'}", "'PUT'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'", "{'message': '设置默认维度成功!'}", "'中'", "'维度管理'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码为空",
"uid" : "cf2367dcaff14656",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "failed",
"time" : {
"start" : 1721015509051,
"stop" : 1721015509081,
"duration" : 30
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码为空'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例2",
"uid" : "c5318f7b5f3f4c94",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509824,
"stop" : 1721015509845,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "{'': 'abctest'}", "{'message': \"Required String parameter 'code' is not present\"}", "'反向用例2'" ]
}, {
"name" : "正向用例",
"uid" : "fc0746e5dd6e5c7",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509931,
"stop" : 1721015509974,
"duration" : 43
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}", "'post'", "'json'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'", "{'message': '添加维度成功!'}", "'高'", "'维度管理'", "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'", "'delete'", "None" ]
}, {
"name" : "正向用例",
"uid" : "5fe4c7580aedb74f",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015510131,
"stop" : 1721015510163,
"duration" : 32
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_org'", "'post'", "'form'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'", "{'state': True, 'message': '删除组织成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "455a4ab887c89b43",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509564,
"stop" : 1721015509611,
"duration" : 47
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'test_org'", "'post'", "'form'", "'正向用例'", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'", "{'state': True, 'message': '删除组织成功!'}", "'中'", "'组织管理'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名正确-密码过短",
"uid" : "fd64392edbae973f",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "failed",
"time" : {
"start" : 1721015509291,
"stop" : 1721015509331,
"duration" : 40
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名正确-密码过短'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "反向用例-用户名过短-密码正确",
"uid" : "18c9ae039fc34574",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015508921,
"stop" : 1721015508943,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}", "'POST'", "'application/json'", "'反向用例-用户名过短-密码正确'", "'http://36.139.193.99:8088/auth'", "{'state': False, 'message': '账户错误或该租户未启用'}", "'中'", "'认证接口'", "None", "None", "None" ]
}, {
"name" : "正向用例",
"uid" : "6cc3dac6ac75a610",
"parentUid" : "b27025100b361e8cbd68b4f48dce6c83",
"status" : "passed",
"time" : {
"start" : 1721015509436,
"stop" : 1721015509461,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'设置默认维度'", "{'code': 'test_dem_xyz_123'}", "'PUT'", "'query'", "'正向用例'", "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'", "{'message': '设置默认维度成功!'}", "'中'", "'维度管理'", "None", "None", "None" ]
} ],
"uid" : "b27025100b361e8cbd68b4f48dce6c83"
} ],
"uid" : "7e33cee26d6ca920df2dc9409741f061"
} ]
}
\ No newline at end of file
launch_status failed=6 1721015538000000000
launch_status broken=0 1721015538000000000
launch_status passed=20 1721015538000000000
launch_status skipped=0 1721015538000000000
launch_status unknown=0 1721015538000000000
launch_time duration=1380 1721015538000000000
launch_time min_duration=20 1721015538000000000
launch_time max_duration=57 1721015538000000000
launch_time sum_duration=881 1721015538000000000
launch_problems product_defects=6 1721015538000000000
launch_retries retries=0 1721015538000000000
launch_retries run=26 1721015538000000000
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Allure Report summary mail</title>
</head>
<body>
Mail body
</body>
</html>
launch_status_failed 6
launch_status_broken 0
launch_status_passed 20
launch_status_skipped 0
launch_status_unknown 0
launch_time_duration 1380
launch_time_min_duration 20
launch_time_max_duration 57
launch_time_sum_duration 881
launch_problems_product_defects 6
launch_retries_retries 0
launch_retries_run 26
module.exports = __webpack_public_path__ + "favicon.ico";
\ No newline at end of file
[ {
"data" : {
"Product defects" : 6
}
} ]
\ No newline at end of file
[ {
"data" : {
"duration" : 1380
}
} ]
\ No newline at end of file
[ {
"data" : {
"failed" : 6,
"broken" : 0,
"skipped" : 0,
"passed" : 20,
"unknown" : 0,
"total" : 26
}
} ]
\ No newline at end of file
{
"b4daa31cff4b552b412448af5e4ed813" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "c5318f7b5f3f4c94",
"status" : "passed",
"time" : {
"start" : 1721015509824,
"stop" : 1721015509845,
"duration" : 21
}
} ]
},
"63bcb2c305b7f0bcb7fd2d55d671e0a6" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "72d697fa34152bb7",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败,描述失败的原因",
"time" : {
"start" : 1721015509247,
"stop" : 1721015509276,
"duration" : 29
}
} ]
},
"423b926d9c9c8e8a56af3847b1819589" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "fd64392edbae973f",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败,描述失败的原因",
"time" : {
"start" : 1721015509291,
"stop" : 1721015509331,
"duration" : 40
}
} ]
},
"f640363898931f48a2631389cf661c1a" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "cf2367dcaff14656",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败,描述失败的原因",
"time" : {
"start" : 1721015509051,
"stop" : 1721015509081,
"duration" : 30
}
} ]
},
"5abfadd4bc6f48931308e01525d1aa96" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "72761ac453ae24f7",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败,描述失败的原因",
"time" : {
"start" : 1721015509625,
"stop" : 1721015509658,
"duration" : 33
}
} ]
},
"d62e434428362512a9058f68faafe2f2" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "5fe4c7580aedb74f",
"status" : "passed",
"time" : {
"start" : 1721015510131,
"stop" : 1721015510163,
"duration" : 32
}
} ]
},
"8b5c6ab7c7d5d427ca8434dcfe2f2220" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "4267fdae78018a0",
"status" : "passed",
"time" : {
"start" : 1721015509791,
"stop" : 1721015509816,
"duration" : 25
}
} ]
},
"ccc47dd491dda4f012668830aede7239" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "1fe7b9a6b59ab340",
"status" : "passed",
"time" : {
"start" : 1721015509388,
"stop" : 1721015509421,
"duration" : 33
}
} ]
},
"0726b7ece66163239f4822447c1bd114" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "d57c2d7e4a5351e1",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败,描述失败的原因",
"time" : {
"start" : 1721015509346,
"stop" : 1721015509371,
"duration" : 25
}
} ]
},
"6dbe591942a5c7741e0eaae5fd698f18" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "ae6557b0196ebf3f",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败, 用例数据为:{'ids': '1812696305089748992'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":true,\"message\":\"删除维度成功!\",\"value\":\"\",\"code\":200}",
"time" : {
"start" : 1721015510171,
"stop" : 1721015510201,
"duration" : 30
}
} ]
},
"81b63d12303454254c2f6e7bbd67d858" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "b6f199268924eda5",
"status" : "passed",
"time" : {
"start" : 1721015508821,
"stop" : 1721015508874,
"duration" : 53
}
} ]
},
"128da70acc78e495205cae38c86a3095" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "4e9a2e5e031bc082",
"status" : "passed",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509741,
"duration" : 30
}
} ]
},
"84712d074d431df54c5e53fe70699f96" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "d8e2cfa116528f24",
"status" : "passed",
"time" : {
"start" : 1721015509011,
"stop" : 1721015509041,
"duration" : 30
}
} ]
},
"4a35e629ced594be4e64e255839f5624" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "227afaebb1cd08da",
"status" : "passed",
"time" : {
"start" : 1721015508881,
"stop" : 1721015508911,
"duration" : 30
}
} ]
},
"6a5ad61f25e888eed5239bf5b93834c2" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "97129a0488d10506",
"status" : "passed",
"time" : {
"start" : 1721015508961,
"stop" : 1721015508994,
"duration" : 33
}
} ]
},
"ab9675ee712bd87eed823fadbd2abe6a" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "6cc3dac6ac75a610",
"status" : "passed",
"time" : {
"start" : 1721015509436,
"stop" : 1721015509461,
"duration" : 25
}
} ]
},
"56957926302f06b75969c6b498f201d0" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "1ad087c20ec34a2f",
"status" : "passed",
"time" : {
"start" : 1721015509981,
"stop" : 1721015510006,
"duration" : 25
}
} ]
},
"817beae3f290f38d2fbd5f74a7b72a55" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "455a4ab887c89b43",
"status" : "passed",
"time" : {
"start" : 1721015509564,
"stop" : 1721015509611,
"duration" : 47
}
} ]
},
"c75e95c5293a2f59a8de238e57454e2c" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "18c9ae039fc34574",
"status" : "passed",
"time" : {
"start" : 1721015508921,
"stop" : 1721015508943,
"duration" : 22
}
} ]
},
"3ad648c8f08b059e000e7d84b04cb5ed" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "c7bc7d60342c12ef",
"status" : "passed",
"time" : {
"start" : 1721015509471,
"stop" : 1721015509521,
"duration" : 50
}
} ]
},
"a846fa27705c7e18d3cf0d1b13ce62eb" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "e424f5c7765fbab5",
"status" : "passed",
"time" : {
"start" : 1721015510071,
"stop" : 1721015510121,
"duration" : 50
}
} ]
},
"66a9541ee6ddd173bc3735e2e4285b95" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "fc0746e5dd6e5c7",
"status" : "passed",
"time" : {
"start" : 1721015509931,
"stop" : 1721015509974,
"duration" : 43
}
} ]
},
"5410146ab95dd5aa26e6bad748d7205e" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "a0cdc25f805aa36e",
"status" : "passed",
"time" : {
"start" : 1721015510013,
"stop" : 1721015510070,
"duration" : 57
}
} ]
},
"4569b0471702313459c9b42c94979bb4" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "4f1b074e9624da25",
"status" : "passed",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509711,
"duration" : 38
}
} ]
},
"3fe626704418069130cfcd5208110f60" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "ea5cfa6f2d41ee86",
"status" : "passed",
"time" : {
"start" : 1721015509741,
"stop" : 1721015509771,
"duration" : 30
}
} ]
},
"764d3ad32e20031839427f75fe32737a" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "dab13890b023630d",
"status" : "passed",
"time" : {
"start" : 1721015509531,
"stop" : 1721015509551,
"duration" : 20
}
} ]
}
}
\ No newline at end of file
[ {
"data" : {
"run" : 26,
"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" : 3,
"items" : [ {
"uid" : "a17acae1eab7e54410f7c3ce8da43ed7",
"name" : "BPM-Basic",
"statistic" : {
"failed" : 2,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 3
}
}, {
"uid" : "190def5ec1bc096add1d6e9232694ef3",
"name" : "BPM-张三",
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 2
}
}, {
"uid" : "e910ba08e15c3fed7dc9b37fbb7f6731",
"name" : "bpm-场景测试",
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 2,
"unknown" : 0,
"total" : 2
}
} ]
}
\ No newline at end of file
[ {
"data" : {
"Product defects" : 6
}
} ]
\ No newline at end of file
{
"total" : 1,
"items" : [ {
"uid" : "8fb3a91ba5aaf9de24cc8a92edc82b5d",
"name" : "Product defects",
"statistic" : {
"failed" : 6,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 6
}
} ]
}
\ No newline at end of file
[ {
"data" : {
"duration" : 1380
}
} ]
\ No newline at end of file
[ {
"uid" : "b6f199268924eda5",
"name" : "正向用例-用户名和密码正确",
"time" : {
"start" : 1721015508821,
"stop" : 1721015508874,
"duration" : 53
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "72d697fa34152bb7",
"name" : "反向用例-用户名正确-密码过长",
"time" : {
"start" : 1721015509247,
"stop" : 1721015509276,
"duration" : 29
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "6cc3dac6ac75a610",
"name" : "正向用例",
"time" : {
"start" : 1721015509436,
"stop" : 1721015509461,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4267fdae78018a0",
"name" : "反向用例1",
"time" : {
"start" : 1721015509791,
"stop" : 1721015509816,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "1ad087c20ec34a2f",
"name" : "正向用例",
"time" : {
"start" : 1721015509981,
"stop" : 1721015510006,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "18c9ae039fc34574",
"name" : "反向用例-用户名过短-密码正确",
"time" : {
"start" : 1721015508921,
"stop" : 1721015508943,
"duration" : 22
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4f1b074e9624da25",
"name" : "bpm-场景测试-登录-正向",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509711,
"duration" : 38
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "cf2367dcaff14656",
"name" : "反向用例-用户名正确-密码为空",
"time" : {
"start" : 1721015509051,
"stop" : 1721015509081,
"duration" : 30
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "fc0746e5dd6e5c7",
"name" : "正向用例",
"time" : {
"start" : 1721015509931,
"stop" : 1721015509974,
"duration" : 43
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "227afaebb1cd08da",
"name" : "反向用例-用户名为空-密码正确",
"time" : {
"start" : 1721015508881,
"stop" : 1721015508911,
"duration" : 30
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "5fe4c7580aedb74f",
"name" : "正向用例",
"time" : {
"start" : 1721015510131,
"stop" : 1721015510163,
"duration" : 32
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "72761ac453ae24f7",
"name" : "正向用例",
"time" : {
"start" : 1721015509625,
"stop" : 1721015509658,
"duration" : 33
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "4e9a2e5e031bc082",
"name" : "bpm-场景测试-添加维度-正向",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509741,
"duration" : 30
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "455a4ab887c89b43",
"name" : "正向用例",
"time" : {
"start" : 1721015509564,
"stop" : 1721015509611,
"duration" : 47
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "c5318f7b5f3f4c94",
"name" : "反向用例2",
"time" : {
"start" : 1721015509824,
"stop" : 1721015509845,
"duration" : 21
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "1fe7b9a6b59ab340",
"name" : "正向用例",
"time" : {
"start" : 1721015509388,
"stop" : 1721015509421,
"duration" : 33
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "d57c2d7e4a5351e1",
"name" : "正向用例",
"time" : {
"start" : 1721015509346,
"stop" : 1721015509371,
"duration" : 25
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "c7bc7d60342c12ef",
"name" : "正向用例",
"time" : {
"start" : 1721015509471,
"stop" : 1721015509521,
"duration" : 50
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "ea5cfa6f2d41ee86",
"name" : "正向用例",
"time" : {
"start" : 1721015509741,
"stop" : 1721015509771,
"duration" : 30
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "ae6557b0196ebf3f",
"name" : "正向用例",
"time" : {
"start" : 1721015510171,
"stop" : 1721015510201,
"duration" : 30
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "fd64392edbae973f",
"name" : "反向用例-用户名正确-密码过短",
"time" : {
"start" : 1721015509291,
"stop" : 1721015509331,
"duration" : 40
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "e424f5c7765fbab5",
"name" : "正向用例",
"time" : {
"start" : 1721015510071,
"stop" : 1721015510121,
"duration" : 50
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "a0cdc25f805aa36e",
"name" : "正向用例",
"time" : {
"start" : 1721015510013,
"stop" : 1721015510070,
"duration" : 57
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "dab13890b023630d",
"name" : "正向用例",
"time" : {
"start" : 1721015509531,
"stop" : 1721015509551,
"duration" : 20
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "97129a0488d10506",
"name" : "反向用例-用户名过长-密码正确",
"time" : {
"start" : 1721015508961,
"stop" : 1721015508994,
"duration" : 33
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "d8e2cfa116528f24",
"name" : "反向用例-用户名为特殊字符-密码正确",
"time" : {
"start" : 1721015509011,
"stop" : 1721015509041,
"duration" : 30
},
"status" : "passed",
"severity" : "normal"
} ]
\ No newline at end of file
[ {
"data" : {
"failed" : 6,
"broken" : 0,
"skipped" : 0,
"passed" : 20,
"unknown" : 0,
"total" : 26
}
} ]
\ No newline at end of file
[ {
"data" : {
"run" : 26,
"retry" : 0
}
} ]
\ No newline at end of file
[ {
"uid" : "227afaebb1cd08da",
"name" : "反向用例-用户名为空-密码正确",
"time" : {
"start" : 1721015508881,
"stop" : 1721015508911,
"duration" : 30
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "97129a0488d10506",
"name" : "反向用例-用户名过长-密码正确",
"time" : {
"start" : 1721015508961,
"stop" : 1721015508994,
"duration" : 33
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "a0cdc25f805aa36e",
"name" : "正向用例",
"time" : {
"start" : 1721015510013,
"stop" : 1721015510070,
"duration" : 57
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "72761ac453ae24f7",
"name" : "正向用例",
"time" : {
"start" : 1721015509625,
"stop" : 1721015509658,
"duration" : 33
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "ea5cfa6f2d41ee86",
"name" : "正向用例",
"time" : {
"start" : 1721015509741,
"stop" : 1721015509771,
"duration" : 30
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "c7bc7d60342c12ef",
"name" : "正向用例",
"time" : {
"start" : 1721015509471,
"stop" : 1721015509521,
"duration" : 50
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "72d697fa34152bb7",
"name" : "反向用例-用户名正确-密码过长",
"time" : {
"start" : 1721015509247,
"stop" : 1721015509276,
"duration" : 29
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "d57c2d7e4a5351e1",
"name" : "正向用例",
"time" : {
"start" : 1721015509346,
"stop" : 1721015509371,
"duration" : 25
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "ae6557b0196ebf3f",
"name" : "正向用例",
"time" : {
"start" : 1721015510171,
"stop" : 1721015510201,
"duration" : 30
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "e424f5c7765fbab5",
"name" : "正向用例",
"time" : {
"start" : 1721015510071,
"stop" : 1721015510121,
"duration" : 50
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "b6f199268924eda5",
"name" : "正向用例-用户名和密码正确",
"time" : {
"start" : 1721015508821,
"stop" : 1721015508874,
"duration" : 53
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "dab13890b023630d",
"name" : "正向用例",
"time" : {
"start" : 1721015509531,
"stop" : 1721015509551,
"duration" : 20
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "d8e2cfa116528f24",
"name" : "反向用例-用户名为特殊字符-密码正确",
"time" : {
"start" : 1721015509011,
"stop" : 1721015509041,
"duration" : 30
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "5fe4c7580aedb74f",
"name" : "正向用例",
"time" : {
"start" : 1721015510131,
"stop" : 1721015510163,
"duration" : 32
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "1ad087c20ec34a2f",
"name" : "正向用例",
"time" : {
"start" : 1721015509981,
"stop" : 1721015510006,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4f1b074e9624da25",
"name" : "bpm-场景测试-登录-正向",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509711,
"duration" : 38
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "6cc3dac6ac75a610",
"name" : "正向用例",
"time" : {
"start" : 1721015509436,
"stop" : 1721015509461,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4267fdae78018a0",
"name" : "反向用例1",
"time" : {
"start" : 1721015509791,
"stop" : 1721015509816,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "18c9ae039fc34574",
"name" : "反向用例-用户名过短-密码正确",
"time" : {
"start" : 1721015508921,
"stop" : 1721015508943,
"duration" : 22
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4e9a2e5e031bc082",
"name" : "bpm-场景测试-添加维度-正向",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509741,
"duration" : 30
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "c5318f7b5f3f4c94",
"name" : "反向用例2",
"time" : {
"start" : 1721015509824,
"stop" : 1721015509845,
"duration" : 21
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "cf2367dcaff14656",
"name" : "反向用例-用户名正确-密码为空",
"time" : {
"start" : 1721015509051,
"stop" : 1721015509081,
"duration" : 30
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "1fe7b9a6b59ab340",
"name" : "正向用例",
"time" : {
"start" : 1721015509388,
"stop" : 1721015509421,
"duration" : 33
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "fc0746e5dd6e5c7",
"name" : "正向用例",
"time" : {
"start" : 1721015509931,
"stop" : 1721015509974,
"duration" : 43
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "455a4ab887c89b43",
"name" : "正向用例",
"time" : {
"start" : 1721015509564,
"stop" : 1721015509611,
"duration" : 47
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "fd64392edbae973f",
"name" : "反向用例-用户名正确-密码过短",
"time" : {
"start" : 1721015509291,
"stop" : 1721015509331,
"duration" : 40
},
"status" : "failed",
"severity" : "normal"
} ]
\ No newline at end of file
[ {
"uid" : "b6f199268924eda5",
"name" : "正向用例-用户名和密码正确",
"time" : {
"start" : 1721015508821,
"stop" : 1721015508874,
"duration" : 53
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "72d697fa34152bb7",
"name" : "反向用例-用户名正确-密码过长",
"time" : {
"start" : 1721015509247,
"stop" : 1721015509276,
"duration" : 29
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "6cc3dac6ac75a610",
"name" : "正向用例",
"time" : {
"start" : 1721015509436,
"stop" : 1721015509461,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4267fdae78018a0",
"name" : "反向用例1",
"time" : {
"start" : 1721015509791,
"stop" : 1721015509816,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "1ad087c20ec34a2f",
"name" : "正向用例",
"time" : {
"start" : 1721015509981,
"stop" : 1721015510006,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "18c9ae039fc34574",
"name" : "反向用例-用户名过短-密码正确",
"time" : {
"start" : 1721015508921,
"stop" : 1721015508943,
"duration" : 22
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "4f1b074e9624da25",
"name" : "bpm-场景测试-登录-正向",
"time" : {
"start" : 1721015509673,
"stop" : 1721015509711,
"duration" : 38
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "cf2367dcaff14656",
"name" : "反向用例-用户名正确-密码为空",
"time" : {
"start" : 1721015509051,
"stop" : 1721015509081,
"duration" : 30
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "fc0746e5dd6e5c7",
"name" : "正向用例",
"time" : {
"start" : 1721015509931,
"stop" : 1721015509974,
"duration" : 43
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "227afaebb1cd08da",
"name" : "反向用例-用户名为空-密码正确",
"time" : {
"start" : 1721015508881,
"stop" : 1721015508911,
"duration" : 30
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "5fe4c7580aedb74f",
"name" : "正向用例",
"time" : {
"start" : 1721015510131,
"stop" : 1721015510163,
"duration" : 32
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "72761ac453ae24f7",
"name" : "正向用例",
"time" : {
"start" : 1721015509625,
"stop" : 1721015509658,
"duration" : 33
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "4e9a2e5e031bc082",
"name" : "bpm-场景测试-添加维度-正向",
"time" : {
"start" : 1721015509711,
"stop" : 1721015509741,
"duration" : 30
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "455a4ab887c89b43",
"name" : "正向用例",
"time" : {
"start" : 1721015509564,
"stop" : 1721015509611,
"duration" : 47
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "c5318f7b5f3f4c94",
"name" : "反向用例2",
"time" : {
"start" : 1721015509824,
"stop" : 1721015509845,
"duration" : 21
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "1fe7b9a6b59ab340",
"name" : "正向用例",
"time" : {
"start" : 1721015509388,
"stop" : 1721015509421,
"duration" : 33
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "d57c2d7e4a5351e1",
"name" : "正向用例",
"time" : {
"start" : 1721015509346,
"stop" : 1721015509371,
"duration" : 25
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "c7bc7d60342c12ef",
"name" : "正向用例",
"time" : {
"start" : 1721015509471,
"stop" : 1721015509521,
"duration" : 50
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "ea5cfa6f2d41ee86",
"name" : "正向用例",
"time" : {
"start" : 1721015509741,
"stop" : 1721015509771,
"duration" : 30
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "ae6557b0196ebf3f",
"name" : "正向用例",
"time" : {
"start" : 1721015510171,
"stop" : 1721015510201,
"duration" : 30
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "fd64392edbae973f",
"name" : "反向用例-用户名正确-密码过短",
"time" : {
"start" : 1721015509291,
"stop" : 1721015509331,
"duration" : 40
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "e424f5c7765fbab5",
"name" : "正向用例",
"time" : {
"start" : 1721015510071,
"stop" : 1721015510121,
"duration" : 50
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "a0cdc25f805aa36e",
"name" : "正向用例",
"time" : {
"start" : 1721015510013,
"stop" : 1721015510070,
"duration" : 57
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "dab13890b023630d",
"name" : "正向用例",
"time" : {
"start" : 1721015509531,
"stop" : 1721015509551,
"duration" : 20
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "97129a0488d10506",
"name" : "反向用例-用户名过长-密码正确",
"time" : {
"start" : 1721015508961,
"stop" : 1721015508994,
"duration" : 33
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "d8e2cfa116528f24",
"name" : "反向用例-用户名为特殊字符-密码正确",
"time" : {
"start" : 1721015509011,
"stop" : 1721015509041,
"duration" : 30
},
"status" : "passed",
"severity" : "normal"
} ]
\ No newline at end of file
{
"total" : 3,
"items" : [ {
"uid" : "d6c27516cfb7fd4d4410f19a31d4e57b",
"name" : "test_case.test_basic",
"statistic" : {
"failed" : 5,
"broken" : 0,
"skipped" : 0,
"passed" : 10,
"unknown" : 0,
"total" : 15
}
}, {
"uid" : "f807542b498ef7f359918df354af54f0",
"name" : "test_case.test_lao_zhang",
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 5,
"unknown" : 0,
"total" : 6
}
}, {
"uid" : "727cdc55e0284d10bada9eae3e5356f7",
"name" : "test_case.test_bpm_dependency",
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 5,
"unknown" : 0,
"total" : 5
}
} ]
}
\ No newline at end of file
{
"reportName" : "Allure Report",
"testRuns" : [ ],
"statistic" : {
"failed" : 6,
"broken" : 0,
"skipped" : 0,
"passed" : 20,
"unknown" : 0,
"total" : 26
},
"time" : {
"start" : 1721015508821,
"stop" : 1721015510201,
"duration" : 1380,
"minDuration" : 20,
"maxDuration" : 57,
"sumDuration" : 881
}
}
\ No newline at end of file
{"uuid": "44f6da30-eaf5-4703-b8e1-11b2b014a368", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509564, "stop": 1721015509564}], "start": 1721015509564, "stop": 1721015509621}
\ No newline at end of file
{"uuid": "b8be4153-720c-49e7-84a8-2b1f6561de6a", "befores": [{"name": "level", "status": "passed", "start": 1721015509346, "stop": 1721015509346}], "start": 1721015509346, "stop": 1721015509381}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/orgParam/saveOrgParams?orgCode=test_org HTTP/11" 200 None
\ No newline at end of file
{"uuid": "8f0b5404-1f9e-4fb2-b298-7f7240590f94", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509247, "stop": 1721015509247}], "start": 1721015509247, "stop": 1721015509281}
\ No newline at end of file
{"uuid": "68be4d30-45b0-493a-b2c0-140b4a272ed0", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015510131, "stop": 1721015510131}], "start": 1721015510131, "stop": 1721015510163}
\ No newline at end of file
{"uuid": "6ed01ee6-d2d3-48d4-b6e1-72143c63b758", "befores": [{"name": "api_name", "status": "passed", "start": 1721015508959, "stop": 1721015508959}], "start": 1721015508959, "stop": 1721015509005}
\ No newline at end of file
{"uuid": "a262635d-1dcf-4348-9df9-069bffc42e0e", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509625, "stop": 1721015509625}], "start": 1721015509625, "stop": 1721015509666}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败, 用例数据为:{'ids': '1812696305089748992'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":true,\"message\":\"删除维度成功!\",\"value\":\"\",\"code\":200}", "trace": "self = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x0000018E4AB84310>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4ABE7040>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB2FDC0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812696305089748992'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_lao_zhang\\test_case.py:62: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_lao_zhang.test_case.TestBPM object at 0x0000018E4AB84310>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4ABE7040>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB2FDC0>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812696305089748992'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-张三\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n # log.error(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\n # raise AssertionError(\"断言失败,描述失败的原因\")\n> raise AssertionError(f\"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}\")\nE AssertionError: 断言失败, 用例数据为:{'ids': '1812696305089748992'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{\"state\":true,\"message\":\"删除维度成功!\",\"value\":\"\",\"code\":200}\n\ntest_case\\test_lao_zhang\\test_case.py:66: AssertionError"}, "attachments": [{"name": "log", "source": "8cec880b-18ff-47b3-a50c-38a835cc72d8-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "5f03123d-672a-4de8-8765-7b37bb68aafc-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'DELETE'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '需要更新'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1721015510171, "stop": 1721015510201, "uuid": "69a98d41-a60c-43e3-b135-3bb40f1a647c", "historyId": "6dbe591942a5c7741e0eaae5fd698f18", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/org/deleteOrg HTTP/11" 200 None
\ No newline at end of file
{"uuid": "2c6a5638-ab2b-42b5-973e-f5dde49da54e", "befores": [{"name": "level", "status": "passed", "start": 1721015508821, "stop": 1721015508821}], "start": 1721015508821, "stop": 1721015508879}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812696302778687488 HTTP/11" 200 None
ERROR  root:__init__.py:72 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "bea0804b-5f91-4d6a-8d71-ffa67fdef2aa", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015508921, "stop": 1721015508921}], "start": 1721015508921, "stop": 1721015508951}
\ No newline at end of file
{"uuid": "d60f70d9-9a93-4ba8-8d14-3b510fdb939f", "befores": [{"name": "case_title", "status": "passed", "start": 1721015508959, "stop": 1721015508959}], "start": 1721015508959, "stop": 1721015509001}
\ No newline at end of file
{"uuid": "fa3f0ae1-a962-4cb5-bebf-1c6512bd3089", "befores": [{"name": "case_url", "status": "passed", "start": 1721015510131, "stop": 1721015510131}], "start": 1721015510131, "stop": 1721015510163}
\ No newline at end of file
{"uuid": "1147c547-98ee-4919-a400-aa7f15d1e510", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509564, "stop": 1721015509564}], "start": 1721015509564, "stop": 1721015509625}
\ No newline at end of file
{"uuid": "57ddf96f-9e7e-43d4-afc5-63f48e7ef250", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509471, "stop": 1721015509471}], "start": 1721015509471, "stop": 1721015509521}
\ No newline at end of file
{"uuid": "b5a5c4b5-e4c3-4180-9de3-528dd20f5165", "children": ["04e61266-fcd6-4f25-967f-132c525756a6", "8b3eefc8-849e-456d-b246-9073de5ab501", "c1cdbacb-3a05-450d-a48e-a6b43673469c", "fba96fb8-a68e-4834-b2d9-0b19fe8c9120", "5bdd7eaf-7332-4e1b-b9b3-752addc5f5f4", "69a98d41-a60c-43e3-b135-3bb40f1a647c"], "befores": [{"name": "req_fix", "status": "passed", "start": 1721015509851, "stop": 1721015509894}], "afters": [{"name": "req_fix::0", "status": "passed", "start": 1721015510221, "stop": 1721015510221}], "start": 1721015509851, "stop": 1721015510221}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': ''} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812696301365207040"}
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:72 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "1a8f2095-6e05-42ed-b7b2-fbd7eecb5a54", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509247, "stop": 1721015509247}], "start": 1721015509247, "stop": 1721015509287}
\ No newline at end of file
{"uuid": "aaeb3df7-1b27-48bd-8638-51868a5835cb", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509291, "stop": 1721015509291}], "start": 1721015509291, "stop": 1721015509341}
\ No newline at end of file
{"uuid": "64b249a4-0715-41f2-9be3-b8e87e4c9a21", "befores": [{"name": "level", "status": "passed", "start": 1721015509564, "stop": 1721015509564}], "start": 1721015509564, "stop": 1721015509625}
\ No newline at end of file
{"uuid": "ab1928b5-dc41-47f0-a0d2-853ca9925565", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509434, "stop": 1721015509434}], "start": 1721015509434, "stop": 1721015509466}
\ No newline at end of file
{"uuid": "6cc717d5-4d58-4248-a069-bc1ac28a9654", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509531, "stop": 1721015509531}], "start": 1721015509531, "stop": 1721015509561}
\ No newline at end of file
{"uuid": "2c671aad-6bcb-465f-a62a-fd74ac219a46", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509926, "stop": 1721015509926}], "start": 1721015509926, "stop": 1721015509974}
\ No newline at end of file
{"uuid": "ff9bbab1-a837-4ab7-bdb7-15c72b67af50", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509625, "stop": 1721015509625}], "start": 1721015509625, "stop": 1721015509666}
\ No newline at end of file
{"uuid": "b7278900-4850-40e4-8d82-56c954875a0c", "befores": [{"name": "case_method", "status": "passed", "start": 1721015508959, "stop": 1721015508959}], "start": 1721015508959, "stop": 1721015509001}
\ No newline at end of file
{"uuid": "ec9ab88c-b3cd-427b-8263-34fb091a3153", "befores": [{"name": "level", "status": "passed", "start": 1721015509531, "stop": 1721015509531}], "start": 1721015509531, "stop": 1721015509564}
\ No newline at end of file
{"uuid": "ad3cfbb7-56d8-4e6e-9cae-e5de580816b0", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509051, "stop": 1721015509051}], "start": 1721015509051, "stop": 1721015509241}
\ No newline at end of file
{"uuid": "4bf87a21-ee9f-4300-8954-cb72d839b0bc", "befores": [{"name": "module_name", "status": "passed", "start": 1721015508958, "stop": 1721015508959}], "start": 1721015508958, "stop": 1721015509005}
\ No newline at end of file
{"uuid": "70233742-8548-4e19-a0ee-965f993ee21f", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509011, "stop": 1721015509011}], "start": 1721015509011, "stop": 1721015509041}
\ No newline at end of file
{"uuid": "9285b1a8-a3bf-40fd-a830-8b3ee3f67262", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015508821, "stop": 1721015508821}], "start": 1721015508821, "stop": 1721015508874}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "8af36367-28d6-46e1-9595-0e061a32f865-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "f23b7d19-3b1a-4996-af18-b3a96e9692d0-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'设置默认维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'PUT'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'code': 'test_dem_xyz_123'}"}, {"name": "expect_data", "value": "{'message': '设置默认维度成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015509436, "stop": 1721015509461, "uuid": "b14be7ff-2e86-40f4-8875-4782dc0396ee", "historyId": "ab9675ee712bd87eed823fadbd2abe6a", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "设置默认维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "accc5dd6-33cb-495e-848b-a61458db46de", "befores": [{"name": "update_key", "status": "passed", "start": 1721015508881, "stop": 1721015508881}], "start": 1721015508881, "stop": 1721015508911}
\ No newline at end of file
{"uuid": "7345516b-0f17-49cd-9138-5e967f4269e9", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015508821, "stop": 1721015508821}], "start": 1721015508821, "stop": 1721015508874}
\ No newline at end of file
{"uuid": "b5b9afe1-7ac7-457d-96e5-0a7fcf63896d", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509434, "stop": 1721015509434}], "start": 1721015509434, "stop": 1721015509466}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': '1'} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账号或密码错误","code":200,"logId":"1812696302187290624"}
post http://36.139.193.99:8088/api/org/v1/org/deleteOrg form test_org {'state': True, 'message': '删除组织成功!'} None None None
{"state":true,"message":"删除组织成功!","value":"","code":200}
断言成功
{"uuid": "d0c7555b-1b6c-443b-afbe-69c58bfaebd9", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509434, "stop": 1721015509434}], "start": 1721015509434, "stop": 1721015509461}
\ No newline at end of file
{"uuid": "fcd3b925-7c8c-40d2-881c-ec98e0851206", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015508821, "stop": 1721015508821}], "start": 1721015508821, "stop": 1721015508878}
\ No newline at end of file
post http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams query|json {'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]} {'state': True, 'message': '保存组织参数成功!'} None None None
{"state":true,"message":"保存组织参数成功!","value":"","code":200}
断言成功
{"uuid": "7031c7ee-8631-4979-932a-0be3ce81cd5e", "befores": [{"name": "case_data", "status": "passed", "start": 1721015508821, "stop": 1721015508821}], "start": 1721015508821, "stop": 1721015508874}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMDE4NTEsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
POST http://36.139.193.99:8088/auth application/json {'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMDE4NTAsImlhdCI6MTcyMTAxNTQ1MH0.Yt0HKq0ODKh-4o9wuihEdj2tek8NWCqrvaeReRifeJx-gEJ0oQAWRNyF16N1_CQBVqWGNfRzuaMRxzbKJh5DEA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
断言成功
{"uuid": "e2daa010-2a8a-4f3e-9f5c-7b58956844c7", "befores": [{"name": "case_method", "status": "passed", "start": 1721015510131, "stop": 1721015510131}], "start": 1721015510131, "stop": 1721015510163}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过长", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AAF0F70>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AAF0F70>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "11e3bfc3-9e5f-4d2c-93ca-77c411eed79a-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "1ea15012-8f4e-4bc6-9ee2-541e8265a661-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码过长'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': '1'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015509247, "stop": 1721015509276, "uuid": "98738d64-99bf-4c1a-a30c-356ab694fbb1", "historyId": "63bcb2c305b7f0bcb7fd2d55d671e0a6", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "5fdc6938-f25e-4201-91f0-c42a0ac9061b", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509926, "stop": 1721015509926}], "start": 1721015509926, "stop": 1721015509974}
\ No newline at end of file
{"uuid": "b011ea6b-85a2-4178-9457-64da556230eb", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015508959, "stop": 1721015508959}], "start": 1721015508959, "stop": 1721015509001}
\ No newline at end of file
{"uuid": "7fb34225-0eb6-4382-b9ca-4e24d563d8f8", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509625, "stop": 1721015509625}], "start": 1721015509625, "stop": 1721015509666}
\ No newline at end of file
{"uuid": "ef990732-3b37-42b7-954f-3419bab5252f", "befores": [{"name": "level", "status": "passed", "start": 1721015509981, "stop": 1721015509981}], "start": 1721015509981, "stop": 1721015510013}
\ No newline at end of file
{"uuid": "26574ed4-794e-466e-bc6b-b1a9dfa9ae52", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015510013, "stop": 1721015510013}], "start": 1721015510013, "stop": 1721015510071}
\ No newline at end of file
{"uuid": "df2e1f25-f74e-41ef-b39a-e625fc484386", "befores": [{"name": "level", "status": "passed", "start": 1721015510071, "stop": 1721015510071}], "start": 1721015510071, "stop": 1721015510121}
\ No newline at end of file
{"uuid": "8d96390c-20ce-4623-898e-a3c80606a3db", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509051, "stop": 1721015509051}], "start": 1721015509051, "stop": 1721015509241}
\ No newline at end of file
PUT http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem query {'code': 'test_dem_xyz_123'} {'message': '设置默认维度成功!'} None None None
{"state":true,"message":"设置默认维度成功!","value":"","code":200}
断言成功
{"uuid": "d952b349-abee-4a43-bb44-7f67ecdadfc1", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509291, "stop": 1721015509291}], "start": 1721015509291, "stop": 1721015509338}
\ No newline at end of file
{"uuid": "0e38af28-50c2-4216-9b89-0417da29de5b", "befores": [{"name": "module_name", "status": "passed", "start": 1721015510131, "stop": 1721015510131}], "start": 1721015510131, "stop": 1721015510163}
\ No newline at end of file
{"uuid": "f5f7ca9f-1fda-4b57-a2d7-8834e677272c", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015508881, "stop": 1721015508881}], "start": 1721015508881, "stop": 1721015508911}
\ No newline at end of file
{"uuid": "9121de5a-372e-4da9-903a-a797068252af", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509291, "stop": 1721015509291}], "start": 1721015509291, "stop": 1721015509341}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
\ No newline at end of file
{"name": "bpm-场景测试-添加维度-正向", "status": "passed", "attachments": [{"name": "log", "source": "dac82d29-0e50-44f0-80b7-35dce55dcea7-attachment.txt", "type": "text/plain"}], "start": 1721015509711, "stop": 1721015509741, "uuid": "20e291ab-5681-4e96-b27f-966d87a7e6fd", "historyId": "128da70acc78e495205cae38c86a3095", "testCaseId": "128da70acc78e495205cae38c86a3095", "fullName": "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_add_dem", "labels": [{"name": "epic", "value": "bpm-场景测试"}, {"name": "story", "value": "添加维度"}, {"name": "feature", "value": "维度管理"}, {"name": "tag", "value": "dependency(depends=['TestBPM::test_login'])"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_pytest_decorator"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_pytest_decorator"}]}
\ No newline at end of file
{"uuid": "8ebd80aa-aae7-49fe-ba35-b7891c5aa833", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509247, "stop": 1721015509247}], "start": 1721015509247, "stop": 1721015509287}
\ No newline at end of file
{"uuid": "d5c906bd-e633-43fd-8bf5-4baf1234794d", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015510131, "stop": 1721015510131}], "start": 1721015510131, "stop": 1721015510163}
\ No newline at end of file
{"uuid": "4a8136e0-ffef-4a13-9d27-41de0dedf530", "befores": [{"name": "level", "status": "passed", "start": 1721015510131, "stop": 1721015510131}], "start": 1721015510131, "stop": 1721015510163}
\ No newline at end of file
{"uuid": "f86d3a66-e459-4eea-9fdf-73697d6e27a7", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509388, "stop": 1721015509388}], "start": 1721015509388, "stop": 1721015509421}
\ No newline at end of file
{"uuid": "eab147d5-0453-41ce-bf14-c147b58644eb", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509247, "stop": 1721015509247}], "start": 1721015509247, "stop": 1721015509287}
\ No newline at end of file
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "cf11d952-6a90-43d1-9626-9e9d11467f1b-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "4d26827c-59d2-4e0a-ad81-6575f5c1500c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"}, {"name": "case_mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功!'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "sql_data", "value": "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}"}, {"name": "update_key", "value": "'demId'"}], "start": 1721015510013, "stop": 1721015510070, "uuid": "c1cdbacb-3a05-450d-a48e-a6b43673469c", "historyId": "5410146ab95dd5aa26e6bad748d7205e", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB0B0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '刷新成功' == None\nE + where None = <built-in method get of dict object at 0x0000018E4AC59B40>('message')\nE + where <built-in method get of dict object at 0x0000018E4AC59B40> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB0B0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "790ed19d-0e8d-4f0f-ba0c-7d61e321f71c-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "e593e7c7-61df-4af8-8f0b-39dfbbc4a5b8-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'刷新token'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'GET'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/refresh'"}, {"name": "case_mime", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新成功'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015509346, "stop": 1721015509371, "uuid": "f6beedc0-302a-4126-b972-038a952d8b3f", "historyId": "0726b7ece66163239f4822447c1bd114", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "46c4e76a-2319-46ee-aede-7f07eb20b499", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509564, "stop": 1721015509564}], "start": 1721015509564, "stop": 1721015509621}
\ No newline at end of file
{"uuid": "81abc08f-9826-4cff-888a-0e5ed94629c2", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509346, "stop": 1721015509346}], "start": 1721015509346, "stop": 1721015509381}
\ No newline at end of file
{"uuid": "2b46202e-d2d2-4d7f-9b4e-26e8492d392f", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509388, "stop": 1721015509388}], "start": 1721015509388, "stop": 1721015509421}
\ No newline at end of file
{"uuid": "ba49b50e-f390-48c3-9101-7d3bf1cc5944", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509531, "stop": 1721015509531}], "start": 1721015509531, "stop": 1721015509561}
\ No newline at end of file
{"uuid": "ffa5a3a0-fc5f-46fc-a9bd-1babf2d10f72", "children": ["5dc52ca5-6bcd-4eb9-b571-5c0229e22999", "20e291ab-5681-4e96-b27f-966d87a7e6fd", "6178761d-fa2c-4bd6-a119-66c8cce371fa", "18537c9a-ce34-452b-8b24-4f70a525fcae", "9ae27a31-865d-4d92-841d-db306de6b0e0"], "befores": [{"name": "set_depends_value", "status": "passed", "start": 1721015509673, "stop": 1721015509673}], "afters": [{"name": "set_depends_value::0", "status": "passed", "start": 1721015510221, "stop": 1721015510221}], "start": 1721015509673, "stop": 1721015510221}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': '', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1812696300660563968"}
断言成功
{"uuid": "062975e5-e8e3-4ad6-957c-2dd0f00d4996", "befores": [{"name": "case_data", "status": "passed", "start": 1721015508881, "stop": 1721015508881}], "start": 1721015508881, "stop": 1721015508911}
\ No newline at end of file
{"uuid": "c89a52e2-de36-43c2-b118-53e0513512ca", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015510171, "stop": 1721015510171}], "start": 1721015510171, "stop": 1721015510211}
\ No newline at end of file
{"uuid": "af160c5a-6264-4e44-8a23-8d0b89f9d54c", "befores": [{"name": "case_url", "status": "passed", "start": 1721015510013, "stop": 1721015510013}], "start": 1721015510013, "stop": 1721015510071}
\ No newline at end of file
{"uuid": "28eb8549-e75e-435a-9383-ca4c24b6fa76", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509564, "stop": 1721015509564}], "start": 1721015509564, "stop": 1721015509621}
\ No newline at end of file
{"uuid": "c86c69f4-0e99-4d43-9275-3a3153209c5a", "befores": [{"name": "title", "status": "passed", "start": 1721015509741, "stop": 1721015509741}], "start": 1721015509741, "stop": 1721015509771}
\ No newline at end of file
{"uuid": "90463bee-f8c7-4062-a4a7-da50484463b7", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509531, "stop": 1721015509531}], "start": 1721015509531, "stop": 1721015509551}
\ No newline at end of file
{"uuid": "650c5b0e-c632-4e85-b532-b7d6589cd1b9", "befores": [{"name": "level", "status": "passed", "start": 1721015509011, "stop": 1721015509011}], "start": 1721015509011, "stop": 1721015509041}
\ No newline at end of file
{"name": "反向用例-用户名过短-密码正确", "status": "passed", "attachments": [{"name": "log", "source": "cc1cfc51-ad40-41ed-95aa-dca65cc2c4c8-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "64fa3679-d54f-408f-a872-9e862d12a504-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名过短-密码正确'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'a', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015508921, "stop": 1721015508943, "uuid": "8ba5ae8c-2386-44c3-8b20-2d93605b11af", "historyId": "c75e95c5293a2f59a8de238e57454e2c", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "72a09dcc-dd9f-414e-8306-0862287480be", "befores": [{"name": "module_name", "status": "passed", "start": 1721015510171, "stop": 1721015510171}], "start": 1721015510171, "stop": 1721015510211}
\ No newline at end of file
{"uuid": "95e69f93-05cf-45a5-a0ad-a582c9dfe628", "befores": [{"name": "api_name", "status": "passed", "start": 1721015508881, "stop": 1721015508881}], "start": 1721015508881, "stop": 1721015508911}
\ No newline at end of file
{"uuid": "dd51dbcb-29fa-479b-b5ba-288a90810d28", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509926, "stop": 1721015509926}], "start": 1721015509926, "stop": 1721015509974}
\ No newline at end of file
{"uuid": "8d26d753-bf4a-4ec4-ba2c-f555a6c5d28e", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509564, "stop": 1721015509564}], "start": 1721015509564, "stop": 1721015509621}
\ No newline at end of file
{"uuid": "66d09387-30a1-4867-a9e7-150ad59a9ce6", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509531, "stop": 1721015509531}], "start": 1721015509531, "stop": 1721015509563}
\ No newline at end of file
{"name": "反向用例-用户名过长-密码正确", "status": "passed", "attachments": [{"name": "log", "source": "878630e1-3b80-4a0b-8d43-8c1c3ad1e9dc-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "d704c64c-3529-4887-92c3-a245a256b5f4-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名过长-密码正确'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015508961, "stop": 1721015508994, "uuid": "2345ca90-1277-4ce5-90bd-2c763ff248c6", "historyId": "6a5ad61f25e888eed5239bf5b93834c2", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "cf0ebe8c-dc83-419e-8238-028d854eb461", "befores": [{"name": "api_name", "status": "passed", "start": 1721015508921, "stop": 1721015508921}], "start": 1721015508921, "stop": 1721015508951}
\ No newline at end of file
post http://36.139.193.99:8088/api/org/v1/org/addOrg json {'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'} {'message': '添加组织成功!'} select|delete {'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123";', 'delete': 'delete from uc_org where CODE_="test_org";'} demId
{"state":true,"message":"添加组织成功!","value":"","code":200}
断言成功
{"uuid": "6dc09d3b-2959-4cf0-8f33-f764aa6d89f5", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509011, "stop": 1721015509011}], "start": 1721015509011, "stop": 1721015509041}
\ No newline at end of file
{"uuid": "2015773d-53b1-48d4-8094-9978044b0ff6", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509471, "stop": 1721015509471}], "start": 1721015509471, "stop": 1721015509521}
\ No newline at end of file
{"uuid": "58766113-523d-4332-8bce-82a325554401", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509434, "stop": 1721015509434}], "start": 1721015509434, "stop": 1721015509466}
\ No newline at end of file
{"uuid": "f56479c1-060e-4350-abae-21f90958b218", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509926, "stop": 1721015509926}], "start": 1721015509926, "stop": 1721015509974}
\ No newline at end of file
{"uuid": "e2e9afe9-dd24-4d95-9447-ca8206337ea1", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509011, "stop": 1721015509011}], "start": 1721015509011, "stop": 1721015509041}
\ No newline at end of file
{"name": "bpm-场景测试-登录-正向", "status": "passed", "attachments": [{"name": "log", "source": "ec4abf4a-3bbf-4466-bc96-4816f777406a-attachment.txt", "type": "text/plain"}], "start": 1721015509673, "stop": 1721015509711, "uuid": "5dc52ca5-6bcd-4eb9-b571-5c0229e22999", "historyId": "4569b0471702313459c9b42c94979bb4", "testCaseId": "4569b0471702313459c9b42c94979bb4", "fullName": "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_login", "labels": [{"name": "epic", "value": "bpm-场景测试"}, {"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "tag", "value": "dependency"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_pytest_decorator"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_pytest_decorator"}]}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "c19f975d-43b4-4cc9-9b18-128bd5ab9d1a-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "2b5e7364-0be1-4b95-8b0b-7cac6b19b297-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'设置默认维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'PUT'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'code': 'test_dem_xyz_123'}"}, {"name": "expect_data", "value": "{'message': '设置默认维度成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015509981, "stop": 1721015510006, "uuid": "8b3eefc8-849e-456d-b246-9073de5ab501", "historyId": "56957926302f06b75969c6b498f201d0", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "设置默认维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"uuid": "1d2b3be8-5c65-4589-9f87-acf3b420f551", "befores": [{"name": "case_title", "status": "passed", "start": 1721015508821, "stop": 1721015508821}], "start": 1721015508821, "stop": 1721015508879}
\ No newline at end of file
{"uuid": "cc6945aa-dde4-46bd-8b27-8a8c7c5a3ac0", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509346, "stop": 1721015509346}], "start": 1721015509346, "stop": 1721015509381}
\ No newline at end of file
{"uuid": "1b05a29f-5014-4e96-9c8c-529d70d09fd5", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509388, "stop": 1721015509388}], "start": 1721015509388, "stop": 1721015509421}
\ No newline at end of file
{"uuid": "b37e817d-0ee8-4dc0-8b47-4e41334b24a7", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509787, "stop": 1721015509787}], "start": 1721015509787, "stop": 1721015509818}
\ No newline at end of file
{"uuid": "dddc2f70-9f88-42ed-9026-b6d7a2af62f8", "befores": [{"name": "case_title", "status": "passed", "start": 1721015510071, "stop": 1721015510071}], "start": 1721015510071, "stop": 1721015510121}
\ No newline at end of file
{"uuid": "858447c6-3c02-4025-92d4-aa7a52282e31", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509388, "stop": 1721015509388}], "start": 1721015509388, "stop": 1721015509421}
\ No newline at end of file
{"uuid": "7b3d49ef-5335-4bc8-b79e-5bac0ef55c06", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509981, "stop": 1721015509981}], "start": 1721015509981, "stop": 1721015510006}
\ No newline at end of file
{"uuid": "0ee078a9-1420-4765-8803-52d71dfd99ab", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509247, "stop": 1721015509247}], "start": 1721015509247, "stop": 1721015509287}
\ No newline at end of file
{"uuid": "77eb54db-802c-41e8-966d-8fe9f7b54d9c", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509926, "stop": 1721015509926}], "start": 1721015509926, "stop": 1721015509974}
\ No newline at end of file
{"uuid": "2a00fa52-78f8-4e8a-83e1-61676515c30b", "befores": [{"name": "title", "status": "passed", "start": 1721015509821, "stop": 1721015509821}], "start": 1721015509821, "stop": 1721015509848}
\ No newline at end of file
{"uuid": "b5e54b25-0a70-43d4-9a87-cffb15b1b4ea", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509471, "stop": 1721015509471}], "start": 1721015509471, "stop": 1721015509521}
\ No newline at end of file
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '需要更新'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":true,"message":"删除维度成功!","value":"","code":200}
{"uuid": "6c0b9110-b30c-42a8-ac85-5cc072196c5e", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509926, "stop": 1721015509926}], "start": 1721015509926, "stop": 1721015509974}
\ No newline at end of file
{"uuid": "7d0f59e6-075c-457c-9010-410965273b45", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015510171, "stop": 1721015510171}], "start": 1721015510171, "stop": 1721015510211}
\ No newline at end of file
{"uuid": "2891de91-2a37-4a75-ae65-11282bd15d4f", "befores": [{"name": "level", "status": "passed", "start": 1721015510013, "stop": 1721015510013}], "start": 1721015510013, "stop": 1721015510071}
\ No newline at end of file
{"uuid": "d9f5eaca-3d4a-4388-811e-00ed39155316", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509981, "stop": 1721015509981}], "start": 1721015509981, "stop": 1721015510011}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
ERROR  root:__init__.py:72 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "3401767e-c5a6-43af-b681-078dfb02b240", "befores": [{"name": "case_url", "status": "passed", "start": 1721015508921, "stop": 1721015508921}], "start": 1721015508921, "stop": 1721015508951}
\ No newline at end of file
DEBUG  pytest_dependency:pytest_dependency.py:87 check dependencies of test_get_dem_msg[case_data0-expect_data0-\u6b63\u5411\u7528\u4f8b] in module scope ...
DEBUG  pytest_dependency:pytest_dependency.py:92 ... TestBPM::test_add_dem succeeded
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /api/demension/v1/dem/getDem?code=jSReKzhOgdbl HTTP/11" 200 None
\ No newline at end of file
{"uuid": "aa5976b1-9427-49de-8f28-215c2de7652d", "befores": [{"name": "case_data", "status": "passed", "start": 1721015510171, "stop": 1721015510171}], "start": 1721015510171, "stop": 1721015510211}
\ No newline at end of file
{"uuid": "12fdd606-618a-4f09-a6d4-da3d5f9a9143", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509625, "stop": 1721015509625}], "start": 1721015509625, "stop": 1721015509666}
\ No newline at end of file
{"uuid": "4eba4f8e-5308-45d8-8e68-49fcec8ab3d2", "befores": [{"name": "case_method", "status": "passed", "start": 1721015510013, "stop": 1721015510013}], "start": 1721015510013, "stop": 1721015510071}
\ No newline at end of file
{"uuid": "495d13fa-ce3c-4107-8678-28463103746d", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015510171, "stop": 1721015510171}], "start": 1721015510171, "stop": 1721015510211}
\ No newline at end of file
{"uuid": "3e2b19da-aaba-4a13-82f2-624bd2fb71c7", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509434, "stop": 1721015509434}], "start": 1721015509434, "stop": 1721015509461}
\ No newline at end of file
{"uuid": "cbde7273-9e21-4d8b-92d1-1a3771012409", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509051, "stop": 1721015509051}], "start": 1721015509051, "stop": 1721015509243}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'a', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1812696300815753216"}
断言成功
{"uuid": "e201e18f-8074-4931-a133-5837e1859139", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509011, "stop": 1721015509011}], "start": 1721015509011, "stop": 1721015509041}
\ No newline at end of file
{"uuid": "1a188aa4-8787-4673-80e8-a1bba22df01b", "children": ["a6993aed-6927-4e93-9c9e-ffed533fd3b8", "0012c88d-e81d-42d7-8a1f-01319b060d55", "8ba5ae8c-2386-44c3-8b20-2d93605b11af", "2345ca90-1277-4ce5-90bd-2c763ff248c6", "a99f5301-532c-488c-af60-40d17b00676c", "108c8b43-1c31-4dae-a824-48642d430a39", "98738d64-99bf-4c1a-a30c-356ab694fbb1", "1555fd3d-be7c-4cc1-915f-38e80848c7a3", "f6beedc0-302a-4126-b972-038a952d8b3f", "4112de8d-0523-4f97-bcd9-ecf92a85efd3", "b14be7ff-2e86-40f4-8875-4782dc0396ee", "a53d0cce-ebac-4200-b625-e989142fd8a4", "8059977c-65a1-4c67-adaa-4fb975838ccc", "dfc367c6-56e0-45c2-a34a-b80d66a77674", "4a6671d0-3807-4a0b-b920-2f64bebcfb7d"], "befores": [{"name": "db_fix", "status": "passed", "start": 1721015508791, "stop": 1721015508821}], "afters": [{"name": "db_fix::0", "status": "passed", "start": 1721015510221, "stop": 1721015510221}], "start": 1721015508791, "stop": 1721015510221}
\ No newline at end of file
{"uuid": "2414ae7a-2e6d-4176-b957-c306b9b38b7c", "befores": [{"name": "case_title", "status": "passed", "start": 1721015510013, "stop": 1721015510013}], "start": 1721015510013, "stop": 1721015510071}
\ No newline at end of file
{"uuid": "7babde07-b0df-4d14-a433-4aa0338eaf3b", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509247, "stop": 1721015509247}], "start": 1721015509247, "stop": 1721015509281}
\ No newline at end of file
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/demension/v1/dem/addDem HTTP/11" 200 None
\ No newline at end of file
{"uuid": "175c79c8-477a-4ae2-857b-7cc2fbea1bf7", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509741, "stop": 1721015509741}], "start": 1721015509741, "stop": 1721015509771}
\ No newline at end of file
{"uuid": "7211e73e-0e85-4d2e-a6ea-783d1bbe1376", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509388, "stop": 1721015509388}], "start": 1721015509388, "stop": 1721015509431}
\ No newline at end of file
{"uuid": "e3e5627e-1f04-48cd-8f42-e95ca0f93180", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015510071, "stop": 1721015510071}], "start": 1721015510071, "stop": 1721015510121}
\ No newline at end of file
{"uuid": "f1b18cac-1485-45e5-968a-ade3af96ffc9", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509471, "stop": 1721015509471}], "start": 1721015509471, "stop": 1721015509521}
\ No newline at end of file
{"name": "反向用例-用户名为空-密码正确", "status": "passed", "attachments": [{"name": "log", "source": "ec7e9c9e-cf19-408d-8346-dde4de000365-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "3c8e0cd0-6af3-4466-8808-004d4a4bcbd0-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名为空-密码正确'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': '', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015508881, "stop": 1721015508911, "uuid": "0012c88d-e81d-42d7-8a1f-01319b060d55", "historyId": "4a35e629ced594be4e64e255839f5624", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "34a089c3-91d2-4d28-9101-dfa711df304d", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509926, "stop": 1721015509926}], "start": 1721015509926, "stop": 1721015509974}
\ No newline at end of file
{"uuid": "f96dc34f-d186-4c1b-87e7-c8fc252204fb", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015510071, "stop": 1721015510071}], "start": 1721015510071, "stop": 1721015510121}
\ No newline at end of file
post http://36.139.193.99:8088/api/demension/v1/dem/addDem json {'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'} {'message': '添加维度成功!'} delete DELETE FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; None
{"state":true,"message":"添加维度成功!","value":"","code":200}
断言成功
{"uuid": "9e07ffbd-57ce-480e-8a33-13706f51567c", "befores": [{"name": "update_key", "status": "passed", "start": 1721015510071, "stop": 1721015510071}], "start": 1721015510071, "stop": 1721015510121}
\ No newline at end of file
{"uuid": "5238b878-fc31-46c4-bec3-c69583bd8e1a", "befores": [{"name": "title", "status": "passed", "start": 1721015509787, "stop": 1721015509787}], "start": 1721015509787, "stop": 1721015509818}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "086b8a5b-c194-4b86-955f-05fbceed4ed0-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "1f05ece3-4113-41a7-94c4-aa9c398c8859-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'删除组织'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"}, {"name": "case_mime", "value": "'form'"}, {"name": "case_data", "value": "'test_org'"}, {"name": "expect_data", "value": "{'state': True, 'message': '删除组织成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015509564, "stop": 1721015509611, "uuid": "dfc367c6-56e0-45c2-a34a-b80d66a77674", "historyId": "817beae3f290f38d2fbd5f74a7b72a55", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "删除组织"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
DEBUG  pytest_dependency:pytest_dependency.py:87 check dependencies of test_get_dem_msg[case_data2-expect_data2-\u53cd\u5411\u7528\u4f8b2] in module scope ...
DEBUG  pytest_dependency:pytest_dependency.py:92 ... TestBPM::test_add_dem succeeded
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /api/demension/v1/dem/getDem?=abctest HTTP/11" 500 None
\ No newline at end of file
{"uuid": "3129dbed-9146-4fbc-a7e8-546dde311198", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509346, "stop": 1721015509346}], "start": 1721015509346, "stop": 1721015509381}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "afd85394-3d0d-4098-8263-57e25f3ca2ae-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "b400f72b-9e51-4b6d-836d-c251a9d87e51-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'添加维度'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "case_mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}"}, {"name": "expect_data", "value": "{'message': '添加维度成功!'}"}, {"name": "sql_type", "value": "'delete'"}, {"name": "sql_data", "value": "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "None"}], "start": 1721015509388, "stop": 1721015509421, "uuid": "4112de8d-0523-4f97-bcd9-ecf92a85efd3", "historyId": "ccc47dd491dda4f012668830aede7239", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "6b22aec2-6635-4c79-a2cb-572f0f0808ec", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509531, "stop": 1721015509531}], "start": 1721015509531, "stop": 1721015509561}
\ No newline at end of file
{"uuid": "45423aa4-420d-4547-beff-92334ce7829c", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015508881, "stop": 1721015508881}], "start": 1721015508881, "stop": 1721015508911}
\ No newline at end of file
{"uuid": "4e967b96-d40b-4f76-8c3c-78a70d2deeff", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015510171, "stop": 1721015510171}], "start": 1721015510171, "stop": 1721015510211}
\ No newline at end of file
{"uuid": "ceae8b3a-6e36-4c0d-8efc-37ab6b003d81", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509291, "stop": 1721015509291}], "start": 1721015509291, "stop": 1721015509341}
\ No newline at end of file
{"uuid": "2bcceb01-0e3a-42fd-afb6-385f54812ae3", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015510071, "stop": 1721015510071}], "start": 1721015510071, "stop": 1721015510121}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码过短", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AAF0C40>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert False == None\nE + where None = <built-in method get of dict object at 0x0000018E4AC3DF40>('state')\nE + where <built-in method get of dict object at 0x0000018E4AC3DF40> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AAF0C40>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过短', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIE...5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=', 'username': 'admin'}\nexpect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None, update_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "aafb2cf7-c47d-4793-a0a2-9071b224481d-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "23ccf52c-4778-42bf-bafd-65056c6945e8-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码过短'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8=F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015509291, "stop": 1721015509331, "uuid": "1555fd3d-be7c-4cc1-915f-38e80848c7a3", "historyId": "423b926d9c9c8e8a56af3847b1819589", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "0e113929-5b1a-43d3-8f56-6ca0ead7981a", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509625, "stop": 1721015509625}], "start": 1721015509625, "stop": 1721015509666}
\ No newline at end of file
{"uuid": "550bf206-8c42-4be0-9705-c43d874c1b21", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509247, "stop": 1721015509247}], "start": 1721015509247, "stop": 1721015509281}
\ No newline at end of file
{"uuid": "be3a87d4-9b2f-410a-bf59-df8b48e4e682", "befores": [{"name": "case_data", "status": "passed", "start": 1721015508921, "stop": 1721015508921}], "start": 1721015508921, "stop": 1721015508951}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /refresh HTTP/11" 200 None
ERROR  root:__init__.py:72 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "c11d08bf-b43f-4c9e-b858-5d5cd80e42b7", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509625, "stop": 1721015509625}], "start": 1721015509625, "stop": 1721015509666}
\ No newline at end of file
{"uuid": "e3e0f1d2-fc68-44db-a84d-b79065f13b14", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015510131, "stop": 1721015510131}], "start": 1721015510131, "stop": 1721015510163}
\ No newline at end of file
{"uuid": "1cf9de61-353e-4d95-ab64-5c7d22f60269", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509531, "stop": 1721015509531}], "start": 1721015509531, "stop": 1721015509551}
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': '♡♣♤♥♦♧♨♩ε', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1812696301201629184"}
断言成功
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB7A0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812696302778687488'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '删除维度成功' == '删除维度成功!'\nE \nE - 删除维度成功!\nE ? -\nE + 删除维度成功\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB7A0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '维度管理', api_name = '根据维度编码删除维度', level = '中'\ncase_title = '正向用例', case_method = 'DELETE', case_url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', case_mime = 'query'\ncase_data = {'ids': '1812696302778687488'}, expect_data = {'message': '删除维度成功'}, sql_type = 'select'\nsql_data = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', update_key = 'ids'\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "0893336d-2bb0-4fcc-aaf2-078bec178308-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "c03f2a5d-149c-4abe-b59a-f07619e58ec7-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'根据维度编码删除维度'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'DELETE'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "case_mime", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '需要更新'}"}, {"name": "expect_data", "value": "{'message': '删除维度成功'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "sql_data", "value": "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1721015509625, "stop": 1721015509658, "uuid": "4a6671d0-3807-4a0b-b920-2f64bebcfb7d", "historyId": "5abfadd4bc6f48931308e01525d1aa96", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "9404bfa5-e69c-4824-bca6-d888b51e9df4", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509531, "stop": 1721015509531}], "start": 1721015509531, "stop": 1721015509564}
\ No newline at end of file
{"uuid": "64e6ffd0-bed5-4791-8527-c0de73587420", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015508959, "stop": 1721015508959}], "start": 1721015508959, "stop": 1721015509001}
\ No newline at end of file
{"uuid": "cfeead10-2bfe-414e-a5a5-035845fb2d73", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509926, "stop": 1721015509926}], "start": 1721015509926, "stop": 1721015509974}
\ No newline at end of file
{"uuid": "60375cca-a36f-445a-abe2-6a9ffb4dfa92", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509564, "stop": 1721015509564}], "start": 1721015509564, "stop": 1721015509625}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/org/deleteOrg HTTP/11" 200 None
\ No newline at end of file
{"uuid": "bcb4cb05-81ce-4ff2-8ced-5c14a85cc074", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509434, "stop": 1721015509434}], "start": 1721015509434, "stop": 1721015509461}
\ No newline at end of file
{"uuid": "b675906a-99ca-4e01-8874-e649354d87fa", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509434, "stop": 1721015509434}], "start": 1721015509434, "stop": 1721015509461}
\ No newline at end of file
post http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams query|json {'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]} {'state': True, 'message': '保存组织参数成功!'} None None None
{"state":true,"message":"保存组织参数成功!","value":"","code":200}
断言成功
{"uuid": "9653ad1a-5b02-4b44-b9db-2f653e3f9435", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509926, "stop": 1721015509926}], "start": 1721015509926, "stop": 1721015509974}
\ No newline at end of file
{"uuid": "ac686355-13f9-421a-9b8c-eae163ab733f", "befores": [{"name": "case_url", "status": "passed", "start": 1721015510071, "stop": 1721015510071}], "start": 1721015510071, "stop": 1721015510121}
\ No newline at end of file
{"uuid": "3299ae1e-02a4-41f1-8d3a-032a44294752", "befores": [{"name": "level", "status": "passed", "start": 1721015509051, "stop": 1721015509051}], "start": 1721015509051, "stop": 1721015509243}
\ No newline at end of file
{"uuid": "fdf1dd52-5156-4f17-bd36-d41f69055255", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509741, "stop": 1721015509741}], "start": 1721015509741, "stop": 1721015509771}
\ No newline at end of file
{"uuid": "710ac201-8192-4289-a1ad-1102a3a07d07", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509011, "stop": 1721015509011}], "start": 1721015509011, "stop": 1721015509041}
\ No newline at end of file
{"uuid": "4d245aae-fdef-4fb3-b681-b72846eb7f12", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509247, "stop": 1721015509247}], "start": 1721015509247, "stop": 1721015509281}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
\ No newline at end of file
{"uuid": "f57c528c-171c-4b67-9173-7760ec7a3503", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509625, "stop": 1721015509625}], "start": 1721015509625, "stop": 1721015509671}
\ No newline at end of file
{"uuid": "a29e6086-6e2f-43ee-9d56-a6f757ebc016", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509471, "stop": 1721015509471}], "start": 1721015509471, "stop": 1721015509521}
\ No newline at end of file
{"uuid": "03f1fc9e-ac7a-42cf-b9a3-7404737cf7b2", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509564, "stop": 1721015509564}], "start": 1721015509564, "stop": 1721015509621}
\ No newline at end of file
{"uuid": "61967220-7a86-4cc2-90ae-32864c076e3a", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509041, "stop": 1721015509041}], "start": 1721015509041, "stop": 1721015509244}
\ No newline at end of file
{"uuid": "36e7ee85-feff-4559-9f1f-bac4d2a64d87", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509531, "stop": 1721015509531}], "start": 1721015509531, "stop": 1721015509561}
\ No newline at end of file
{"uuid": "c56b8b6e-5086-49fd-8a15-f82881283098", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509051, "stop": 1721015509051}], "start": 1721015509051, "stop": 1721015509244}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "PUT /api/demension/v1/dem/setDefaultDem?code=test_dem_xyz_123 HTTP/11" 200 None
\ No newline at end of file
{"uuid": "17c00dcd-6a2d-4d68-b867-5c035907aad8", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509051, "stop": 1721015509051}], "start": 1721015509051, "stop": 1721015509231}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "DELETE /api/demension/v1/dem/deleteDemByIds?ids=1812696305089748992 HTTP/11" 200 None
ERROR  root:__init__.py:72 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19报错,错误为:断言失败, 用例数据为:{'ids': '1812696305089748992'}, 期望数据为:{'message': '删除维度成功'}, 服务器返回的数据为:{"state":true,"message":"删除维度成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "d5e2d5b6-5291-4e32-88a2-bcc23b17d081", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509011, "stop": 1721015509011}], "start": 1721015509011, "stop": 1721015509041}
\ No newline at end of file
{"uuid": "13701119-5a50-468b-ac73-4309534e990d", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509471, "stop": 1721015509471}], "start": 1721015509471, "stop": 1721015509530}
\ No newline at end of file
{"uuid": "534538c5-429a-4c4b-97f8-075c056f0c05", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015508921, "stop": 1721015508921}], "start": 1721015508921, "stop": 1721015508951}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "611fbe04-64ed-479c-9817-a50c394b815e-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "e20f88eb-e8a7-499a-b9aa-31f231d40a82-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "case_data", "value": "{'code': '需要更新'}"}, {"name": "expect_data", "value": "{'isDelete': '0'}"}, {"name": "title", "value": "'正向用例'"}], "start": 1721015509741, "stop": 1721015509771, "uuid": "6178761d-fa2c-4bd6-a119-66c8cce371fa", "historyId": "3fe626704418069130cfcd5208110f60", "testCaseId": "2d43949fe9fc94a14d91b8791ac4ed5c", "fullName": "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_get_dem_msg", "labels": [{"name": "story", "value": "根据维度编码获取维度信息"}, {"name": "epic", "value": "bpm-场景测试"}, {"name": "feature", "value": "维度管理"}, {"name": "tag", "value": "dependency(depends=['TestBPM::test_add_dem'])"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_pytest_decorator"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_pytest_decorator"}]}
\ No newline at end of file
{"uuid": "17a5144f-4722-43bb-9a0c-1364d5420ed9", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509291, "stop": 1721015509291}], "start": 1721015509291, "stop": 1721015509341}
\ No newline at end of file
{"uuid": "e6c70fe3-c800-49a2-9c38-65e96bb160ea", "befores": [{"name": "update_key", "status": "passed", "start": 1721015508959, "stop": 1721015508959}], "start": 1721015508959, "stop": 1721015508994}
\ No newline at end of file
{"uuid": "942ee272-2002-4caf-a5b0-0888dc3e91f7", "befores": [{"name": "module_name", "status": "passed", "start": 1721015510013, "stop": 1721015510013}], "start": 1721015510013, "stop": 1721015510071}
\ No newline at end of file
{"uuid": "f1e009eb-d74a-4a7c-b4c2-eebcb7dd5be2", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509981, "stop": 1721015509981}], "start": 1721015509981, "stop": 1721015510013}
\ No newline at end of file
{"uuid": "3adc3d03-1365-4e24-8d64-798db36a0a61", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509434, "stop": 1721015509434}], "start": 1721015509434, "stop": 1721015509461}
\ No newline at end of file
{"uuid": "07877fc5-6933-41e2-a605-c1f1682a0cd1", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509531, "stop": 1721015509531}], "start": 1721015509531, "stop": 1721015509564}
\ No newline at end of file
{"uuid": "37875ec2-d03f-4c55-9247-d65ed40fa9e3", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015510013, "stop": 1721015510013}], "start": 1721015510013, "stop": 1721015510071}
\ No newline at end of file
{"uuid": "51cf275b-08a5-4676-be77-b20aa9c018cb", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509821, "stop": 1721015509821}], "start": 1721015509821, "stop": 1721015509848}
\ No newline at end of file
{"uuid": "28445430-4eda-43e8-bfb8-a5690e606966", "befores": [{"name": "module_name", "status": "passed", "start": 1721015508921, "stop": 1721015508921}], "start": 1721015508921, "stop": 1721015508951}
\ No newline at end of file
{"uuid": "e797330c-3049-4093-b236-1541b6faa260", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509247, "stop": 1721015509247}], "start": 1721015509247, "stop": 1721015509281}
\ No newline at end of file
{"uuid": "934a1bc7-3b62-4011-b2de-b2f10cb0cbf9", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509011, "stop": 1721015509011}], "start": 1721015509011, "stop": 1721015509041}
\ No newline at end of file
{"uuid": "434ceb72-c1ae-4ddc-b495-bcf89f2c6dc2", "children": ["04e61266-fcd6-4f25-967f-132c525756a6", "8b3eefc8-849e-456d-b246-9073de5ab501", "c1cdbacb-3a05-450d-a48e-a6b43673469c", "fba96fb8-a68e-4834-b2d9-0b19fe8c9120", "5bdd7eaf-7332-4e1b-b9b3-752addc5f5f4", "69a98d41-a60c-43e3-b135-3bb40f1a647c"], "befores": [{"name": "db_fix", "status": "passed", "start": 1721015509894, "stop": 1721015509926}], "afters": [{"name": "db_fix::0", "status": "passed", "start": 1721015510211, "stop": 1721015510211}], "start": 1721015509894, "stop": 1721015510211}
\ No newline at end of file
{"uuid": "9ad15c06-9946-487b-bffc-00bf7bd114f3", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509247, "stop": 1721015509247}], "start": 1721015509247, "stop": 1721015509281}
\ No newline at end of file
{"uuid": "c102aeb2-2040-45ec-be52-96566997b25c", "befores": [{"name": "case_data", "status": "passed", "start": 1721015510131, "stop": 1721015510131}], "start": 1721015510131, "stop": 1721015510163}
\ No newline at end of file
{"uuid": "50836444-be63-4488-8777-932d69240232", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509625, "stop": 1721015509625}], "start": 1721015509625, "stop": 1721015509666}
\ No newline at end of file
{"uuid": "e69402a5-8379-4ede-8e92-de21a0f3892a", "befores": [{"name": "level", "status": "passed", "start": 1721015509291, "stop": 1721015509291}], "start": 1721015509291, "stop": 1721015509341}
\ No newline at end of file
{"uuid": "5c800756-316e-4b96-bb65-a60f0310a591", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509531, "stop": 1721015509531}], "start": 1721015509531, "stop": 1721015509564}
\ No newline at end of file
{"uuid": "9640e061-821b-49a4-acc9-7bba697462a9", "befores": [{"name": "update_key", "status": "passed", "start": 1721015508821, "stop": 1721015508821}], "start": 1721015508821, "stop": 1721015508874}
\ No newline at end of file
{"uuid": "c03a9b84-39f8-47c5-9c29-8681fe9d0f77", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509011, "stop": 1721015509011}], "start": 1721015509011, "stop": 1721015509041}
\ No newline at end of file
{"name": "正向用例-用户名和密码正确", "status": "passed", "attachments": [{"name": "log", "source": "36ffc0c8-7c89-4005-9f90-ccabdfca7ab8-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "23d4e5ce-ab24-4e9e-b673-9edf09f32b18-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例-用户名和密码正确'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015508821, "stop": 1721015508874, "uuid": "a6993aed-6927-4e93-9c9e-ffed533fd3b8", "historyId": "81b63d12303454254c2f6e7bbd67d858", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "552ac4a1-7447-4d7e-8293-ea246ac04845", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509346, "stop": 1721015509346}], "start": 1721015509346, "stop": 1721015509381}
\ No newline at end of file
{"uuid": "aaf6514d-8169-4e49-a466-ec537ee21078", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509346, "stop": 1721015509346}], "start": 1721015509346, "stop": 1721015509381}
\ No newline at end of file
{"uuid": "88c24435-71f0-456d-912a-d348248cbf9c", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509981, "stop": 1721015509981}], "start": 1721015509981, "stop": 1721015510006}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/orgParam/saveOrgParams?orgCode=test_org HTTP/11" 200 None
\ No newline at end of file
{"uuid": "0eaca70d-ca2c-4d3a-8807-fe2e13a94eb6", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509926, "stop": 1721015509926}], "start": 1721015509926, "stop": 1721015509974}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "03b5dc31-da53-4538-b6d7-ac1281af0590-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "21be8afd-ae2d-48db-b06f-4c25347f6ec9-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'保存组织参数'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}, {"name": "case_mime", "value": "'query|json'"}, {"name": "case_data", "value": "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}"}, {"name": "expect_data", "value": "{'state': True, 'message': '保存组织参数成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015510071, "stop": 1721015510121, "uuid": "fba96fb8-a68e-4834-b2d9-0b19fe8c9120", "historyId": "a846fa27705c7e18d3cf0d1b13ce62eb", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "保存组织参数"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"uuid": "846bb18c-d48d-4348-a387-e5303fcbbb9e", "befores": [{"name": "level", "status": "passed", "start": 1721015508959, "stop": 1721015508959}], "start": 1721015508959, "stop": 1721015509001}
\ No newline at end of file
{"uuid": "101f524e-03fe-47af-8971-5fb7766ab929", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509471, "stop": 1721015509471}], "start": 1721015509471, "stop": 1721015509521}
\ No newline at end of file
{"uuid": "d50ce2cd-e87b-41fd-8964-c4ff7804ca07", "befores": [{"name": "level", "status": "passed", "start": 1721015509388, "stop": 1721015509388}], "start": 1721015509388, "stop": 1721015509421}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
ERROR  root:__init__.py:72 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18报错,错误为:断言失败,描述失败的原因
\ No newline at end of file
{"uuid": "b12ff2ac-5d07-4a3f-a799-e3a156397a58", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509011, "stop": 1721015509011}], "start": 1721015509011, "stop": 1721015509041}
\ No newline at end of file
{"uuid": "e295a7e9-b891-4609-abc5-ec9ad54e146d", "befores": [{"name": "case_url", "status": "passed", "start": 1721015508881, "stop": 1721015508881}], "start": 1721015508881, "stop": 1721015508911}
\ No newline at end of file
{"uuid": "db4d4ed5-82bb-4cd1-8880-ffcee6916c36", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509787, "stop": 1721015509787}], "start": 1721015509787, "stop": 1721015509818}
\ No newline at end of file
{"uuid": "3d9311df-4241-441e-b09f-a705b860c308", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509434, "stop": 1721015509434}], "start": 1721015509434, "stop": 1721015509461}
\ No newline at end of file
{"uuid": "e5536208-a4db-46d8-b6b5-4be37d26b3e0", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015510013, "stop": 1721015510013}], "start": 1721015510013, "stop": 1721015510071}
\ No newline at end of file
{"uuid": "08c4c85f-f3c6-444a-933c-fe10e0f9d011", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509388, "stop": 1721015509388}], "start": 1721015509388, "stop": 1721015509421}
\ No newline at end of file
{"uuid": "205540d9-f19f-46b0-ade9-b21523550f7e", "befores": [{"name": "case_data", "status": "passed", "start": 1721015510071, "stop": 1721015510071}], "start": 1721015510071, "stop": 1721015510121}
\ No newline at end of file
{"uuid": "36dfaf51-6bff-46aa-8e52-75e6edccd276", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509625, "stop": 1721015509625}], "start": 1721015509625, "stop": 1721015509666}
\ No newline at end of file
{"name": "反向用例-用户名为特殊字符-密码正确", "status": "passed", "attachments": [{"name": "log", "source": "2f873f07-332c-485e-8c5c-7fcbbd73270d-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "7ca270e4-650c-4103-acaf-1682cd37d00f-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名为特殊字符-密码正确'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': '♡♣♤♥♦♧♨♩ε', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015509011, "stop": 1721015509041, "uuid": "a99f5301-532c-488c-af60-40d17b00676c", "historyId": "84712d074d431df54c5e53fe70699f96", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "7a809201-bf78-4d83-9172-030c39934cbb", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509981, "stop": 1721015509981}], "start": 1721015509981, "stop": 1721015510011}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/demension/v1/dem/addDem HTTP/11" 200 None
\ No newline at end of file
{"uuid": "89a1fe76-45bc-44f6-b601-4c3234397e53", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015508921, "stop": 1721015508921}], "start": 1721015508921, "stop": 1721015508951}
\ No newline at end of file
{"uuid": "abfe7873-06d4-4d9e-b2c5-5a0a80c051c5", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509346, "stop": 1721015509346}], "start": 1721015509346, "stop": 1721015509381}
\ No newline at end of file
{"uuid": "d3fbb432-f14a-4535-9e9d-763e64c2b2a2", "befores": [{"name": "case_url", "status": "passed", "start": 1721015508959, "stop": 1721015508959}], "start": 1721015508959, "stop": 1721015509001}
\ No newline at end of file
{"uuid": "2f983617-7b23-4772-bb7c-a58e54754d2c", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509471, "stop": 1721015509471}], "start": 1721015509471, "stop": 1721015509521}
\ No newline at end of file
{"uuid": "78bcd646-75a7-47ee-9133-65c132ef1ff8", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509471, "stop": 1721015509471}], "start": 1721015509471, "stop": 1721015509521}
\ No newline at end of file
{"uuid": "753752c0-15be-42d4-adee-815f1137919d", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509346, "stop": 1721015509346}], "start": 1721015509346, "stop": 1721015509381}
\ No newline at end of file
post http://36.139.193.99:8088/api/demension/v1/dem/addDem json {'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'} {'message': '添加维度成功!'} delete DELETE FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; None
{"state":true,"message":"添加维度成功!","value":"","code":200}
断言成功
post http://36.139.193.99:8088/api/org/v1/org/deleteOrg form test_org {'state': True, 'message': '删除组织成功!'} None None None
{"state":true,"message":"删除组织成功!","value":"","code":200}
断言成功
{"name": "反向用例2", "status": "passed", "attachments": [{"name": "log", "source": "71f5d515-2792-4990-8bef-52b50923c2cd-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "f626f2cf-5460-4ef6-ba9d-2c358064bb6f-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "case_data", "value": "{'': 'abctest'}"}, {"name": "expect_data", "value": "{'message': \"Required String parameter 'code' is not present\"}"}, {"name": "title", "value": "'反向用例2'"}], "start": 1721015509824, "stop": 1721015509845, "uuid": "9ae27a31-865d-4d92-841d-db306de6b0e0", "historyId": "b4daa31cff4b552b412448af5e4ed813", "testCaseId": "2d43949fe9fc94a14d91b8791ac4ed5c", "fullName": "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_get_dem_msg", "labels": [{"name": "story", "value": "根据维度编码获取维度信息"}, {"name": "epic", "value": "bpm-场景测试"}, {"name": "feature", "value": "维度管理"}, {"name": "tag", "value": "dependency(depends=['TestBPM::test_add_dem'])"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_pytest_decorator"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_pytest_decorator"}]}
\ No newline at end of file
{"uuid": "7a9af71e-883f-4739-b7ed-cbb2d3e7bed1", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509291, "stop": 1721015509291}], "start": 1721015509291, "stop": 1721015509341}
\ No newline at end of file
{"uuid": "64e8a03e-9381-4a90-a34b-c321f4868aec", "befores": [{"name": "case_title", "status": "passed", "start": 1721015508921, "stop": 1721015508921}], "start": 1721015508921, "stop": 1721015508951}
\ No newline at end of file
{"uuid": "ce5d1008-1c2e-4cd1-bb6f-722a976b1232", "befores": [{"name": "case_method", "status": "passed", "start": 1721015508881, "stop": 1721015508881}], "start": 1721015508881, "stop": 1721015508911}
\ No newline at end of file
{"uuid": "97bedb8c-fe46-46e4-9f41-668ce2b38744", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509981, "stop": 1721015509981}], "start": 1721015509981, "stop": 1721015510013}
\ No newline at end of file
{"uuid": "d1c859a2-3792-434c-90a3-88059f58b119", "befores": [{"name": "level", "status": "passed", "start": 1721015509247, "stop": 1721015509247}], "start": 1721015509247, "stop": 1721015509287}
\ No newline at end of file
{"uuid": "16a451ec-df0c-44a0-9e48-47d635953c2b", "befores": [{"name": "case_method", "status": "passed", "start": 1721015508821, "stop": 1721015508821}], "start": 1721015508821, "stop": 1721015508878}
\ No newline at end of file
{"uuid": "e336578f-0e39-415f-b63e-f6a8b810f990", "befores": [{"name": "level", "status": "passed", "start": 1721015509471, "stop": 1721015509471}], "start": 1721015509471, "stop": 1721015509521}
\ No newline at end of file
{"uuid": "5c398a30-ad18-4f0a-9392-038ad33a0739", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509981, "stop": 1721015509981}], "start": 1721015509981, "stop": 1721015510011}
\ No newline at end of file
{"uuid": "d44d6efb-5a74-44b6-982a-7d07c3250961", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509346, "stop": 1721015509346}], "start": 1721015509346, "stop": 1721015509373}
\ No newline at end of file
{"uuid": "c7d9f740-e830-4a34-89ee-fe45d78b69b2", "children": ["20e291ab-5681-4e96-b27f-966d87a7e6fd", "6178761d-fa2c-4bd6-a119-66c8cce371fa", "18537c9a-ce34-452b-8b24-4f70a525fcae", "9ae27a31-865d-4d92-841d-db306de6b0e0"], "befores": [{"name": "get_depends_value", "status": "passed", "start": 1721015509711, "stop": 1721015509711}], "afters": [{"name": "get_depends_value::0", "status": "passed", "start": 1721015510221, "stop": 1721015510221}], "start": 1721015509711, "stop": 1721015510221}
\ No newline at end of file
{"uuid": "c175af41-6cfb-4698-850f-c29f448a8a58", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509388, "stop": 1721015509388}], "start": 1721015509388, "stop": 1721015509421}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "a66297c6-fa2d-4c1f-ace8-6f896f23dd3d-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "828e0eb5-9281-4ccc-8696-10a916c88075-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'保存组织参数'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}, {"name": "case_mime", "value": "'query|json'"}, {"name": "case_data", "value": "{'query': {'orgCode': 'test_org'}, 'body': [{'alias': 'sr', 'value': 'dog'}]}"}, {"name": "expect_data", "value": "{'state': True, 'message': '保存组织参数成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015509531, "stop": 1721015509551, "uuid": "8059977c-65a1-4c67-adaa-4fb975838ccc", "historyId": "764d3ad32e20031839427f75fe32737a", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "保存组织参数"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"name": "反向用例-用户名正确-密码为空", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB49CA0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n> assert expect_data[key] == result.json().get(key)\nE AssertionError: assert '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB49CA0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码为空', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_key = None\n\n @log_decorator\n @allure.epic(\"BPM-Basic\")\n # @allure.feature(\"模块名称\")\n # @allure.story(\"接口名称\")\n # @allure.title(\"接口标题\")\n # @allure.severity(\"用例级别\")\n @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):\n # 影响allure报告的输出\n allure.dynamic.feature(module_name)\n allure.dynamic.story(api_name)\n allure.dynamic.title(case_title)\n allure.dynamic.severity(level)\n \n print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n \n # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n if sql_type == \"delete\":\n # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n db_fix.delete(sql_data)\n \n # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n elif sql_type == \"select\":\n # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n select_result = db_fix.select(sql_data)\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象调用delete方法执行删除的sql语句。\n db_fix.delete(sql_data[\"delete\"])\n \n # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n select_result = db_fix.select(sql_data[\"select\"])\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n print(result.text)\n \n try:\n for key in expect_data:\n assert expect_data[key] == result.json().get(key)\n except AssertionError:\n> raise AssertionError(\"断言失败,描述失败的原因\")\nE AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "5fa10735-1b0a-43b0-bbdc-fcf6aee443ee-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "11aedd08-a2e6-4f77-bc3f-71f40519e280-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码为空'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': ''}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015509051, "stop": 1721015509081, "uuid": "108c8b43-1c31-4dae-a824-48642d430a39", "historyId": "f640363898931f48a2631389cf661c1a", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
DELETE http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds query {'ids': '需要更新'} {'message': '删除维度成功'} select SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123"; ids
{"state":true,"message":"删除维度成功!","value":"","code":200}
{"uuid": "43594135-a638-4213-a4ac-0b90dd35952d", "befores": [{"name": "update_key", "status": "passed", "start": 1721015510171, "stop": 1721015510171}], "start": 1721015510171, "stop": 1721015510211}
\ No newline at end of file
{"name": "反向用例1", "status": "passed", "attachments": [{"name": "log", "source": "d6f5145a-5484-4ecb-ae50-779ae551ed83-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "90dfe92b-10c0-415c-be5a-3ce863ba94b6-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "case_data", "value": "{'code': ''}"}, {"name": "expect_data", "value": "{'message': '必填:code维度编码必填!'}"}, {"name": "title", "value": "'反向用例1'"}], "start": 1721015509791, "stop": 1721015509816, "uuid": "18537c9a-ce34-452b-8b24-4f70a525fcae", "historyId": "8b5c6ab7c7d5d427ca8434dcfe2f2220", "testCaseId": "2d43949fe9fc94a14d91b8791ac4ed5c", "fullName": "test_case.test_bpm_dependency.test_pytest_decorator.TestBPM#test_get_dem_msg", "labels": [{"name": "story", "value": "根据维度编码获取维度信息"}, {"name": "epic", "value": "bpm-场景测试"}, {"name": "feature", "value": "维度管理"}, {"name": "tag", "value": "dependency(depends=['TestBPM::test_add_dem'])"}, {"name": "parentSuite", "value": "test_case.test_bpm_dependency"}, {"name": "suite", "value": "test_pytest_decorator"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_bpm_dependency.test_pytest_decorator"}]}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "PUT /api/demension/v1/dem/setDefaultDem?code=test_dem_xyz_123 HTTP/11" 200 None
\ No newline at end of file
{"uuid": "f06de950-3394-40ba-be27-e0388d4b0991", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509625, "stop": 1721015509625}], "start": 1721015509625, "stop": 1721015509666}
\ No newline at end of file
{"uuid": "4d6a6fc9-9fa6-432b-bef9-8fa86093c074", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015508821, "stop": 1721015508821}], "start": 1721015508821, "stop": 1721015508874}
\ No newline at end of file
{"uuid": "a5d47b88-1a90-4d29-81cb-eb9f4aab0cda", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509346, "stop": 1721015509346}], "start": 1721015509346, "stop": 1721015509381}
\ No newline at end of file
{"uuid": "e6aee9b6-e0de-4118-a943-9866556ecb70", "befores": [{"name": "case_title", "status": "passed", "start": 1721015508881, "stop": 1721015508881}], "start": 1721015508881, "stop": 1721015508911}
\ No newline at end of file
{"uuid": "0b3d44cb-d10e-40a0-9691-0f0d0f4bedb1", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509388, "stop": 1721015509388}], "start": 1721015509388, "stop": 1721015509421}
\ No newline at end of file
{"uuid": "66dd3c56-76ea-490a-9d63-4efd75e0a464", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509011, "stop": 1721015509011}], "start": 1721015509011, "stop": 1721015509041}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:291 Resetting dropped connection: 36.139.193.99
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
\ No newline at end of file
{"uuid": "338302dd-3e3e-4671-b977-683d5dae620f", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509981, "stop": 1721015509981}], "start": 1721015509981, "stop": 1721015510011}
\ No newline at end of file
{"uuid": "9f38f03e-64d4-4cd7-876d-b3279891940d", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509291, "stop": 1721015509291}], "start": 1721015509291, "stop": 1721015509341}
\ No newline at end of file
{"uuid": "1bec1cc5-6299-4e97-9c49-a8517ce9424b", "befores": [{"name": "api_name", "status": "passed", "start": 1721015508821, "stop": 1721015508821}], "start": 1721015508821, "stop": 1721015508879}
\ No newline at end of file
{"uuid": "5631adc9-74c3-4b48-8d9f-6169c27d3c3b", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509821, "stop": 1721015509821}], "start": 1721015509821, "stop": 1721015509848}
\ No newline at end of file
{"uuid": "40183ba2-0241-447d-8c1e-ae4fdf918629", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509981, "stop": 1721015509981}], "start": 1721015509981, "stop": 1721015510013}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_lao_zhang\test_case.py, 所在的行为:19
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/org/addOrg HTTP/11" 200 None
\ No newline at end of file
{"uuid": "98795477-ab5f-4929-ad99-5738db9f6af7", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509051, "stop": 1721015509051}], "start": 1721015509051, "stop": 1721015509231}
\ No newline at end of file
{"uuid": "1fe45437-1fc8-4d9f-9327-f66dd7893a8e", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509981, "stop": 1721015509981}], "start": 1721015509981, "stop": 1721015510011}
\ No newline at end of file
{"uuid": "9b90870d-e20a-4f1d-bd8d-3099206e789d", "befores": [{"name": "level", "status": "passed", "start": 1721015509625, "stop": 1721015509625}], "start": 1721015509625, "stop": 1721015509671}
\ No newline at end of file
{"uuid": "df0e5bd1-feba-44f5-8ad5-a61730463446", "befores": [{"name": "module_name", "status": "passed", "start": 1721015508821, "stop": 1721015508821}], "start": 1721015508821, "stop": 1721015508879}
\ No newline at end of file
{"uuid": "a879c04c-4b34-43ef-a255-23b69e8c7a1b", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015508959, "stop": 1721015508959}], "start": 1721015508959, "stop": 1721015509001}
\ No newline at end of file
{"uuid": "176117ce-a071-4b55-b2d4-63c446230c13", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509291, "stop": 1721015509291}], "start": 1721015509291, "stop": 1721015509338}
\ No newline at end of file
{"uuid": "bae4e50b-99c4-496c-a18a-56f610b61190", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509051, "stop": 1721015509051}], "start": 1721015509051, "stop": 1721015509241}
\ No newline at end of file
{"uuid": "f4557396-2ac2-4365-823d-436d0b7e0478", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509471, "stop": 1721015509471}], "start": 1721015509471, "stop": 1721015509521}
\ No newline at end of file
{"uuid": "a620fce3-c4ac-48c6-9911-4c699e935a7a", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509011, "stop": 1721015509011}], "start": 1721015509011, "stop": 1721015509041}
\ No newline at end of file
{"uuid": "402f6d75-66cf-4a29-a44c-320adee01b6f", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509346, "stop": 1721015509346}], "start": 1721015509346, "stop": 1721015509381}
\ No newline at end of file
{"uuid": "6fa5090b-0d52-4699-8023-de3a672baa8e", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015509981, "stop": 1721015509981}], "start": 1721015509981, "stop": 1721015510006}
\ No newline at end of file
{"uuid": "941bb3d4-c977-4b29-9ec4-8e24164f8bac", "befores": [{"name": "level", "status": "passed", "start": 1721015508881, "stop": 1721015508881}], "start": 1721015508881, "stop": 1721015508911}
\ No newline at end of file
{"uuid": "cab23944-a36a-4fdf-8667-e2170dd6443f", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015508959, "stop": 1721015508959}], "start": 1721015508959, "stop": 1721015509001}
\ No newline at end of file
{"uuid": "fc600487-4cb2-48be-a632-943c93f93726", "befores": [{"name": "case_data", "status": "passed", "start": 1721015509247, "stop": 1721015509247}], "start": 1721015509247, "stop": 1721015509281}
\ No newline at end of file
DEBUG  pytest_dependency:pytest_dependency.py:87 check dependencies of test_get_dem_msg[case_data1-expect_data1-\u53cd\u5411\u7528\u4f8b1] in module scope ...
DEBUG  pytest_dependency:pytest_dependency.py:92 ... TestBPM::test_add_dem succeeded
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "GET /api/demension/v1/dem/getDem?code= HTTP/11" 500 None
\ No newline at end of file
POST http://36.139.193.99:8088/auth application/json {'username': 'adminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadminadmin', 'password': 'F4/DVgPS/NEruLxVVRqHktsb1R2fVpw81t5VuGfFjwp0G7U4k6spHPr/ejPlw8XxIVilJ+SyIH0G5FbQStFEd/94mmI7+2Dw2c7MXXIERYKjd3XNe4gZR4ANJclCJHNGfE+mtnX5voprYwEo9m6ponCdmmXTMx9cWVEJ4K/nbR8='} {'state': False, 'message': '账户错误或该租户未启用'} None None None
{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1812696301012885504"}
断言成功
{"uuid": "91fef985-1924-48d0-8a9a-44f77240b463", "befores": [{"name": "case_data", "status": "passed", "start": 1721015510013, "stop": 1721015510013}], "start": 1721015510013, "stop": 1721015510071}
\ No newline at end of file
{"uuid": "f9643f6f-a9dc-4bed-ad32-f17c6a11592b", "befores": [{"name": "case_url", "status": "passed", "start": 1721015508821, "stop": 1721015508821}], "start": 1721015508821, "stop": 1721015508878}
\ No newline at end of file
{"uuid": "f4ce7958-e17c-4644-be92-0381608c7db3", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015508921, "stop": 1721015508921}], "start": 1721015508921, "stop": 1721015508951}
\ No newline at end of file
{"uuid": "497667e0-6ac0-432f-8e25-4cc87d98160d", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015509531, "stop": 1721015509531}], "start": 1721015509531, "stop": 1721015509561}
\ No newline at end of file
DEBUG  pytest_dependency:pytest_dependency.py:87 check dependencies of test_add_dem in module scope ...
DEBUG  pytest_dependency:pytest_dependency.py:92 ... TestBPM::test_login succeeded
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/demension/v1/dem/addDem HTTP/11" 200 None
\ No newline at end of file
{"uuid": "f027b5a9-d2ed-4e48-a39c-f7c98572ab19", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509926, "stop": 1721015509926}], "start": 1721015509926, "stop": 1721015509974}
\ No newline at end of file
{"uuid": "ed29dd04-eaa2-4544-bb49-ce7cbfebd2f6", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509051, "stop": 1721015509051}], "start": 1721015509051, "stop": 1721015509231}
\ No newline at end of file
{"uuid": "a7d0afdb-d53c-489b-8f08-2965deadc753", "befores": [{"name": "case_title", "status": "passed", "start": 1721015510131, "stop": 1721015510131}], "start": 1721015510131, "stop": 1721015510163}
\ No newline at end of file
{"uuid": "42bba059-7e3e-40a5-b9b5-bb8068bc00c7", "befores": [{"name": "update_key", "status": "passed", "start": 1721015509564, "stop": 1721015509564}], "start": 1721015509564, "stop": 1721015509611}
\ No newline at end of file
{"uuid": "ac57f527-e479-4fef-be00-4cc90cc6fa5d", "befores": [{"name": "api_name", "status": "passed", "start": 1721015510171, "stop": 1721015510171}], "start": 1721015510171, "stop": 1721015510211}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "7e9d496d-9df7-4862-9e21-ebeb28522591-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "b4355b41-9b70-43f2-817f-c8c5ec7eda87-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'删除组织'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"}, {"name": "case_mime", "value": "'form'"}, {"name": "case_data", "value": "'test_org'"}, {"name": "expect_data", "value": "{'state': True, 'message': '删除组织成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721015510131, "stop": 1721015510163, "uuid": "5bdd7eaf-7332-4e1b-b9b3-752addc5f5f4", "historyId": "d62e434428362512a9058f68faafe2f2", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "删除组织"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "f0f5843f-cb2b-4606-a54b-9b18bc202094-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "fa213937-d180-4dab-9f9a-d2602f13a7cd-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'组织管理'"}, {"name": "api_name", "value": "'添加组织'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"}, {"name": "case_mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'message': '添加组织成功!'}"}, {"name": "sql_type", "value": "'select|delete'"}, {"name": "sql_data", "value": "{'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";', 'delete': 'delete from uc_org where CODE_=\"test_org\";'}"}, {"name": "update_key", "value": "'demId'"}], "start": 1721015509471, "stop": 1721015509521, "uuid": "a53d0cce-ebac-4200-b625-e989142fd8a4", "historyId": "3ad648c8f08b059e000e7d84b04cb5ed", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-Basic"}, {"name": "parentSuite", "value": "test_case.test_basic"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}
\ No newline at end of file
{"uuid": "b3f0ed5e-7ee6-461b-bf74-6a58ee5795ee", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509434, "stop": 1721015509434}], "start": 1721015509434, "stop": 1721015509461}
\ No newline at end of file
{"uuid": "ab5ff982-567f-4404-a9ff-391913acd456", "befores": [{"name": "level", "status": "passed", "start": 1721015509434, "stop": 1721015509434}], "start": 1721015509434, "stop": 1721015509466}
\ No newline at end of file
{"uuid": "3d953045-a3bb-454d-9120-c623b541d738", "befores": [{"name": "api_name", "status": "passed", "start": 1721015510013, "stop": 1721015510013}], "start": 1721015510013, "stop": 1721015510071}
\ No newline at end of file
{"uuid": "2421574c-b2f0-4641-8e32-6e64f33e5ba0", "befores": [{"name": "case_method", "status": "passed", "start": 1721015509471, "stop": 1721015509471}], "start": 1721015509471, "stop": 1721015509521}
\ No newline at end of file
{"uuid": "2fac80df-8355-47b6-b955-33c02d595235", "befores": [{"name": "update_key", "status": "passed", "start": 1721015510013, "stop": 1721015510013}], "start": 1721015510013, "stop": 1721015510070}
\ No newline at end of file
{"uuid": "164d412a-acd5-4a3d-ad5e-35d45ad37e0d", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509564, "stop": 1721015509564}], "start": 1721015509564, "stop": 1721015509625}
\ No newline at end of file
{"uuid": "feccb8cf-708d-4777-ad6b-fdbee50bec12", "befores": [{"name": "case_url", "status": "passed", "start": 1721015510171, "stop": 1721015510171}], "start": 1721015510171, "stop": 1721015510211}
\ No newline at end of file
GET http://36.139.193.99:8088/refresh None None {'message': '刷新成功'} None None None
{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjExMDE4NTEsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
{"uuid": "47371724-8473-48d9-98d7-63a72ac0ee2c", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509434, "stop": 1721015509434}], "start": 1721015509434, "stop": 1721015509466}
\ No newline at end of file
{"uuid": "ff58e2a2-a138-4a5b-8b4b-1b6a30c13d8a", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509291, "stop": 1721015509291}], "start": 1721015509291, "stop": 1721015509341}
\ No newline at end of file
{"uuid": "cd3e685d-5aa7-42f4-a8c2-670f26d37bfb", "children": ["a6993aed-6927-4e93-9c9e-ffed533fd3b8", "0012c88d-e81d-42d7-8a1f-01319b060d55", "8ba5ae8c-2386-44c3-8b20-2d93605b11af", "2345ca90-1277-4ce5-90bd-2c763ff248c6", "a99f5301-532c-488c-af60-40d17b00676c", "108c8b43-1c31-4dae-a824-48642d430a39", "98738d64-99bf-4c1a-a30c-356ab694fbb1", "1555fd3d-be7c-4cc1-915f-38e80848c7a3", "f6beedc0-302a-4126-b972-038a952d8b3f", "4112de8d-0523-4f97-bcd9-ecf92a85efd3", "b14be7ff-2e86-40f4-8875-4782dc0396ee", "a53d0cce-ebac-4200-b625-e989142fd8a4", "8059977c-65a1-4c67-adaa-4fb975838ccc", "dfc367c6-56e0-45c2-a34a-b80d66a77674", "4a6671d0-3807-4a0b-b920-2f64bebcfb7d"], "befores": [{"name": "req_fix", "status": "passed", "start": 1721015508741, "stop": 1721015508791}], "afters": [{"name": "req_fix::0", "status": "passed", "start": 1721015510221, "stop": 1721015510221}], "start": 1721015508741, "stop": 1721015510221}
\ No newline at end of file
DEBUG  urllib3.connectionpool:connectionpool.py:243 Starting new HTTP connection (1): 36.139.193.99:8088
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 200 None
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /auth HTTP/11" 500 None
\ No newline at end of file
{"uuid": "cba86501-a793-4db1-93eb-043fde6931e9", "befores": [{"name": "case_method", "status": "passed", "start": 1721015510171, "stop": 1721015510171}], "start": 1721015510171, "stop": 1721015510211}
\ No newline at end of file
{"uuid": "9e165871-db27-4f01-bd21-2a830cd85157", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015510131, "stop": 1721015510131}], "start": 1721015510131, "stop": 1721015510163}
\ No newline at end of file
{"uuid": "c3ddbd78-38c0-428e-b1cc-7a75ea9f4703", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509051, "stop": 1721015509051}], "start": 1721015509051, "stop": 1721015509241}
\ No newline at end of file
{"uuid": "30db5a27-7595-403b-9596-ea769d4e5044", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509388, "stop": 1721015509388}], "start": 1721015509388, "stop": 1721015509421}
\ No newline at end of file
{"uuid": "f6d1d421-f320-4ed1-b4f0-d8c17fda4a59", "befores": [{"name": "module_name", "status": "passed", "start": 1721015509291, "stop": 1721015509291}], "start": 1721015509291, "stop": 1721015509341}
\ No newline at end of file
{"uuid": "472b4abd-9472-4e9d-9670-1c98b20c2b21", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509388, "stop": 1721015509388}], "start": 1721015509388, "stop": 1721015509421}
\ No newline at end of file
{"uuid": "1bc33754-d459-4361-bade-130c9e82c92f", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509291, "stop": 1721015509291}], "start": 1721015509291, "stop": 1721015509341}
\ No newline at end of file
INFO  root:__init__.py:69 执行的功能名称为:test_bpm, 功能所在的文件为:D:\Project\PythonDoc\test61\test61\APIAutoTest_v3_1\test_case\test_basic\test_case.py, 所在的行为:18
DEBUG  urllib3.connectionpool:connectionpool.py:546 http://36.139.193.99:8088 "POST /api/org/v1/org/addOrg HTTP/11" 200 None
\ No newline at end of file
{"uuid": "d5daea8d-a7e6-4fb4-94cf-4540b14f24a5", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509564, "stop": 1721015509564}], "start": 1721015509564, "stop": 1721015509621}
\ No newline at end of file
PUT http://36.139.193.99:8088/api/demension/v1/dem/setDefaultDem query {'code': 'test_dem_xyz_123'} {'message': '设置默认维度成功!'} None None None
{"state":true,"message":"设置默认维度成功!","value":"","code":200}
断言成功
{"uuid": "dd4e6d1b-710b-4a8e-90c8-3b4522ab4fdc", "befores": [{"name": "module_name", "status": "passed", "start": 1721015508881, "stop": 1721015508881}], "start": 1721015508881, "stop": 1721015508911}
\ No newline at end of file
{"uuid": "83547c17-cc9d-493e-bd66-b826a7863e00", "befores": [{"name": "case_method", "status": "passed", "start": 1721015508921, "stop": 1721015508921}], "start": 1721015508921, "stop": 1721015508951}
\ No newline at end of file
{"uuid": "f5ede392-474f-4be7-bb62-ae4107c5f06d", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015508881, "stop": 1721015508881}], "start": 1721015508881, "stop": 1721015508911}
\ No newline at end of file
{"uuid": "155f1550-fa4b-4177-b5bd-d97321cce731", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015508881, "stop": 1721015508881}], "start": 1721015508881, "stop": 1721015508911}
\ No newline at end of file
{"uuid": "ba8f78fe-a6d3-4a8d-aae8-7b84de86f9f8", "befores": [{"name": "api_name", "status": "passed", "start": 1721015510131, "stop": 1721015510131}], "start": 1721015510131, "stop": 1721015510163}
\ No newline at end of file
{"uuid": "411031cf-680d-4b94-a7ce-cb076c2015cf", "befores": [{"name": "module_name", "status": "passed", "start": 1721015510071, "stop": 1721015510071}], "start": 1721015510071, "stop": 1721015510121}
\ No newline at end of file
{"uuid": "c6472f2a-b160-40aa-9a79-7efcb250f9ec", "befores": [{"name": "case_url", "status": "passed", "start": 1721015509051, "stop": 1721015509051}], "start": 1721015509051, "stop": 1721015509241}
\ No newline at end of file
{"uuid": "35584ba5-9d8f-4f9f-8a2a-62bf6e1ede03", "befores": [{"name": "sql_type", "status": "passed", "start": 1721015510071, "stop": 1721015510071}], "start": 1721015510071, "stop": 1721015510121}
\ No newline at end of file
{"uuid": "5dd7468d-c8e0-49ff-bdbd-4936ec6b5c1a", "befores": [{"name": "case_title", "status": "passed", "start": 1721015510171, "stop": 1721015510171}], "start": 1721015510171, "stop": 1721015510211}
\ No newline at end of file
{"uuid": "bbf96ad4-8c3c-467d-9156-1c6cc9df5cc4", "befores": [{"name": "update_key", "status": "passed", "start": 1721015508921, "stop": 1721015508921}], "start": 1721015508921, "stop": 1721015508951}
\ No newline at end of file
{"uuid": "afcdde96-4ad3-4a81-87a0-d67f10971dfa", "befores": [{"name": "case_method", "status": "passed", "start": 1721015510071, "stop": 1721015510071}], "start": 1721015510071, "stop": 1721015510121}
\ No newline at end of file
{"uuid": "1c062638-c7e9-4d25-adf6-ca53ebcf4f0a", "befores": [{"name": "case_title", "status": "passed", "start": 1721015509346, "stop": 1721015509346}], "start": 1721015509346, "stop": 1721015509381}
\ No newline at end of file
{"uuid": "98d0c610-b2b1-4cbd-8589-80dbd382a8b4", "befores": [{"name": "update_key", "status": "passed", "start": 1721015510131, "stop": 1721015510131}], "start": 1721015510131, "stop": 1721015510163}
\ No newline at end of file
post http://36.139.193.99:8088/api/org/v1/org/addOrg json {'code': 'test_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'} {'message': '添加组织成功!'} select|delete {'select': 'SELECT ID_ FROM uc_demension WHERE `CODE_`="test_dem_xyz_123";', 'delete': 'delete from uc_org where CODE_="test_org";'} demId
{"state":true,"message":"添加组织成功!","value":"","code":200}
断言成功
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "6ab37154-5f1e-427f-8e4e-ea1b41509ee7-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "6faf7852-7574-4b85-bd9c-173198f5ba61-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'维度管理'"}, {"name": "api_name", "value": "'添加维度'"}, {"name": "level", "value": "'高'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_method", "value": "'post'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "case_mime", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'test_dem_xyz_123', 'description': '测试维度', 'isDefault': 0, 'name': 'xyz测试维度'}"}, {"name": "expect_data", "value": "{'message': '添加维度成功!'}"}, {"name": "sql_type", "value": "'delete'"}, {"name": "sql_data", "value": "'DELETE FROM uc_demension WHERE `CODE_`=\"test_dem_xyz_123\";'"}, {"name": "update_key", "value": "None"}], "start": 1721015509931, "stop": 1721015509974, "uuid": "04e61266-fcd6-4f25-967f-132c525756a6", "historyId": "66a9541ee6ddd173bc3735e2e4285b95", "testCaseId": "b91673cbc3de68b5b5a4aeead5d4b8aa", "fullName": "test_case.test_lao_zhang.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM-张三"}, {"name": "parentSuite", "value": "test_case.test_lao_zhang"}, {"name": "suite", "value": "test_case"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "18996-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_lao_zhang.test_case"}]}
\ No newline at end of file
{"uuid": "92224c10-359f-4e3c-906c-3f7a56ddfc65", "befores": [{"name": "api_name", "status": "passed", "start": 1721015509625, "stop": 1721015509625}], "start": 1721015509625, "stop": 1721015509671}
\ No newline at end of file
{"uuid": "b958105c-1c41-4a19-b4ba-e845989c32ec", "befores": [{"name": "expect_data", "status": "passed", "start": 1721015509388, "stop": 1721015509388}], "start": 1721015509388, "stop": 1721015509421}
\ No newline at end of file
{"uuid": "be4afa35-2b5b-4ed7-a479-5586c8dfd203", "befores": [{"name": "level", "status": "passed", "start": 1721015508921, "stop": 1721015508921}], "start": 1721015508921, "stop": 1721015508951}
\ No newline at end of file
{"uuid": "dc725d4c-ebed-47c8-b024-3521f0885a65", "befores": [{"name": "case_mime", "status": "passed", "start": 1721015509564, "stop": 1721015509564}], "start": 1721015509564, "stop": 1721015509621}
\ No newline at end of file
{"uuid": "505a7961-374f-42d6-a650-6fdbe953e622", "befores": [{"name": "api_name", "status": "passed", "start": 1721015510071, "stop": 1721015510071}], "start": 1721015510071, "stop": 1721015510121}
\ No newline at end of file
{"uuid": "0257a8d3-a492-455f-bec5-d6f90c77ebc8", "befores": [{"name": "level", "status": "passed", "start": 1721015509926, "stop": 1721015509926}], "start": 1721015509926, "stop": 1721015509974}
\ No newline at end of file
{"uuid": "a08d87a9-7343-4f3d-b856-9552923c2212", "befores": [{"name": "case_data", "status": "passed", "start": 1721015508959, "stop": 1721015508959}], "start": 1721015508959, "stop": 1721015509001}
\ No newline at end of file
{"uuid": "4120cba5-a3a2-4bd9-9e6b-acd5827333aa", "befores": [{"name": "level", "status": "passed", "start": 1721015510171, "stop": 1721015510171}], "start": 1721015510171, "stop": 1721015510211}
\ No newline at end of file
{"uuid": "a08bf75a-a5da-4be7-a6b8-3480aef50589", "befores": [{"name": "sql_data", "status": "passed", "start": 1721015510013, "stop": 1721015510013}], "start": 1721015510013, "stop": 1721015510071}
\ 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.
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.
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.
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: request_method.py
# Author: lao_zhao
# Datetime: 2024/7/12 14:32
# Description:
#
# ---------------------------------------------------------------------------
import requests
from APIAutoTest_v3_1.common.read_basic_ini import ReadBasicIni
class RequestMethod:
def __init__(self):
"""关联登录成功的状态"""
login_url = ReadBasicIni().get_url("test_host") + "/auth"
login_data = {"username": "admin",
"password": "FMgcBcmzaLp5J8AFyR8XF0MhHRpBhHNFQyDn7HI2nBO0B9RgCEnhVjvXjLMNjwoRKp01dwHueQGZbZcsEdAQQwY1QXvJrr8Z4Jv2Wn5UCC4IKuH9cIeevsc2zSEMmKULN9FJV4e9DBbnTMoxHqyawMlxVN/pidjeA0kkXjOsBE8="}
self.bpm_session = requests.sessions.Session()
self.bpm_session.headers.update({"Authorization": "Bearer "+self.bpm_session.post(url=login_url, json=login_data).json().get("token")})
def request_all(self, req_method, req_url, req_mime, case_data):
"""封装公共的请求方法"""
if req_mime == "application/json" or req_mime == "json":
return self.bpm_session.request(method=req_method, url=req_url, json=case_data)
# 请求体中传参,除了json类型和上传文件以外的任何类型传参,全部使用data
elif req_mime == "application/x-www-form-urlencoded" or req_mime == "x-www-form-urlencoded" or req_mime == "form":
return self.bpm_session.request(method=req_method, url=req_url, data=case_data)
elif req_mime == "multipart/form-data" or req_mime == "form-data":
return self.bpm_session.request(method=req_method, url=req_url, files=case_data)
elif req_mime == "query" or req_mime == "params":
return self.bpm_session.request(method=req_method, url=req_url, params=case_data)
elif req_mime is None:
return self.bpm_session.request(method=req_method, url=req_url)
# 判断请求的媒体类型是否为query|json 或者 json|query,表示在请求体以json类型传参 同时还在地址栏中传参
elif req_mime == "query|json" or req_mime == "json|query":
# 注意:请求体中传参的关键字data,files,json可以同时和params结合使用,但是data,files,json每次之后使用一个参数
return self.bpm_session.request(method=req_method, url=req_url, params=case_data["query"], json=case_data["body"])
else:
raise ValueError("媒体类型的值错误")
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: __init__.py
# Author: lao_zhao
# Datetime: 2024/7/15 10:20
# Description:
#
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: __init__.py
# Author: lao_zhao
# Datetime: 2024/7/12 16:53
# Description:
#
# ---------------------------------------------------------------------------
# 该变量需要和数据配置层中用例的目录名称一致
USERNAME = "basic"
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: conftest.py
# Author: lao_zhao
# Datetime: 2024/7/12 14:40
# Description:
#
# ---------------------------------------------------------------------------
import pytest
from APIAutoTest_v3_1.common.db import DB
from APIAutoTest_v3_1.request_method.request_method import RequestMethod
@pytest.fixture(scope="session")
def req_fix():
req = RequestMethod()
yield req
@pytest.fixture(scope="session")
def db_fix():
db = DB()
yield db
db.close()
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: test_case.py
# Author: lao_zhao
# Datetime: 2024/7/12 14:38
# Description:
#
# ---------------------------------------------------------------------------
import pytest
import allure # 导入allure
from APIAutoTest_v3_1 import log_decorator
from APIAutoTest_v3_1.common.read_excel import ReadExcel
from APIAutoTest_v3_1.test_case.test_basic import USERNAME
class TestBPM:
@log_decorator
@allure.epic("BPM-Basic")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("接口标题")
# @allure.severity("用例级别")
@pytest.mark.parametrize("module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key", ReadExcel(USERNAME).get_data())
def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):
# 影响allure报告的输出
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(case_title)
allure.dynamic.severity(level)
print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)
# 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句
if sql_type == "delete":
# 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix
db_fix.delete(sql_data)
# 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果
elif sql_type == "select":
# 使用DB类对象调用select方法执行查询语句,并接收查询的结果
select_result = db_fix.select(sql_data)
# 将查询结果更新到用例数据中
case_data[update_key] = select_result
# 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句
elif sql_type == "select|delete" or sql_type == "delete|select":
# 使用DB类对象调用delete方法执行删除的sql语句。
db_fix.delete(sql_data["delete"])
# 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果
select_result = db_fix.select(sql_data["select"])
# 将查询结果更新到用例数据中
case_data[update_key] = select_result
result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)
print(result.text)
try:
for key in expect_data:
assert expect_data[key] == result.json().get(key)
except AssertionError:
raise AssertionError("断言失败,描述失败的原因")
else:
print("断言成功")
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: __init__.py
# Author: lao_zhao
# Datetime: 2024/7/12 16:56
# Description:
#
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: conftest.py
# Author: lao_zhao
# Datetime: 2024/7/12 10:03
# Description:
#
# ---------------------------------------------------------------------------
import pytest
data_dict = {}
def set_value(key, value):
# 校验key和value
data_dict[key] = value
def get_value(key):
if key in data_dict.keys():
return data_dict[key]
else:
return "not fount"
@pytest.fixture(scope="session")
def set_depends_value():
yield set_value
@pytest.fixture(scope="session")
def get_depends_value():
yield get_value
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: test_pytest_decorator.py
# Author: lao_zhao
# Datetime: 2024/7/12 9:40
# Description:
#
# ---------------------------------------------------------------------------
import random
import string
import allure
import pytest
import requests
case_datas = [
[{"code": "需要更新"}, {"isDelete":"0"}, "正向用例"],
[{"code": ""}, {"message":"必填:code维度编码必填!"}, "反向用例1"],
[{"": "abctest"}, {"message":"Required String parameter 'code' is not present"}, "反向用例2"]
]
class TestBPM:
host = "http://36.139.193.99:8088"
@allure.epic("bpm-场景测试")
@allure.feature("认证接口")
@allure.story("登录系统")
@allure.title("bpm-场景测试-登录-正向")
@pytest.mark.dependency()
def test_login(self, set_depends_value):
# 获取登录的url
login_url = self.host + "/auth"
# 配置登录数据
login_data = {"username": "admin",
"password": "FMgcBcmzaLp5J8AFyR8XF0MhHRpBhHNFQyDn7HI2nBO0B9RgCEnhVjvXjLMNjwoRKp01dwHueQGZbZcsEdAQQwY1QXvJrr8Z4Jv2Wn5UCC4IKuH9cIeevsc2zSEMmKULN9FJV4e9DBbnTMoxHqyawMlxVN/pidjeA0kkXjOsBE8="}
res = requests.request(method="post", url=login_url, json=login_data)
try:
assert "超级管理员" in res.text
except AssertionError:
raise AssertionError("断言失败")
else:
token = res.json().get("token")
set_depends_value("TOKEN", token)
@allure.epic("bpm-场景测试")
@allure.feature("维度管理")
@allure.story("添加维度")
@allure.title("bpm-场景测试-添加维度-正向")
@pytest.mark.dependency(depends=["TestBPM::test_login"])
def test_add_dem(self, get_depends_value, set_depends_value):
add_dem_url = self.host + "/api/demension/v1/dem/addDem"
dem_code = "".join(random.sample(string.ascii_letters, 12))
add_dem_data = {
"code": dem_code,
"description": "",
"isDefault": 0,
"name": "测试"+"".join(random.sample(string.ascii_letters, 8))
}
token = get_depends_value("TOKEN")
res = requests.post(url=add_dem_url, json=add_dem_data, headers={"Authorization": "Bearer "+token})
try:
assert "成功" in res.text
except AssertionError:
raise AssertionError("断言失败")
else:
set_depends_value("demCode", dem_code)
@allure.epic("bpm-场景测试")
@allure.feature("维度管理")
@allure.story("根据维度编码获取维度信息")
# @allure.title("bpm-场景测试-添加维度-正向")
@pytest.mark.parametrize("case_data, expect_data, title", case_datas)
@pytest.mark.dependency(depends=["TestBPM::test_add_dem"])
def test_get_dem_msg(self, get_depends_value, set_depends_value, case_data, expect_data, title):
allure.dynamic.title(title)
get_dem_msg_url = self.host + "/api/demension/v1/dem/getDem"
# get_dem_msg_data = {"code": get_depends_value("demCode")}
token = get_depends_value("TOKEN")
if "code" in case_data.keys():
if case_data["code"] == "需要更新":
case_data["code"] = get_depends_value("demCode")
res = requests.get(url=get_dem_msg_url, params=case_data, headers={"Authorization": "Bearer "+token})
try:
for key in expect_data:
assert expect_data[key] == res.json().get(key)
except AssertionError:
raise AssertionError("断言失败")
else:
# 判断服务器返回的数据中是否有id
if "id" in res.json():
dem_id = res.json()["id"]
set_depends_value("demId", dem_id)
print("断言成功")
# @pytest.mark.dependency(depends=["TestBPM::test_get_dem_msg"])
# def test_org(self, get_depends_value):
# print(get_depends_value("TOKEN"))
# print(get_depends_value("demId"))
# print(get_depends_value("demCode"))
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: __init__.py
# Author: lao_zhao
# Datetime: 2024/7/12 16:53
# Description:
#
# ---------------------------------------------------------------------------
# 该变量需要和数据配置层中用例的目录名称一致
USERNAME = "lao_zhang"
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: conftest.py
# Author: lao_zhao
# Datetime: 2024/7/12 14:40
# Description:
#
# ---------------------------------------------------------------------------
import pytest
from APIAutoTest_v3_1.common.db import DB
from APIAutoTest_v3_1.request_method.request_method import RequestMethod
@pytest.fixture(scope="session")
def req_fix():
req = RequestMethod()
yield req
@pytest.fixture(scope="session")
def db_fix():
db = DB()
yield db
db.close()
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test61
# FileName: test_case.py
# Author: lao_zhao
# Datetime: 2024/7/12 14:38
# Description:
#
# ---------------------------------------------------------------------------
import allure
import pytest
from APIAutoTest_v3_1 import log_decorator
from APIAutoTest_v3_1.common.read_excel import ReadExcel
from APIAutoTest_v3_1.test_case.test_lao_zhang import USERNAME
class TestBPM:
@log_decorator
@allure.epic("BPM-张三")
# @allure.feature("模块名称")
# @allure.story("接口名称")
# @allure.title("接口标题")
# @allure.severity("用例级别")
@pytest.mark.parametrize("module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key", ReadExcel(USERNAME).get_data())
def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key):
# 影响allure报告的输出
allure.dynamic.feature(module_name)
allure.dynamic.story(api_name)
allure.dynamic.title(case_title)
allure.dynamic.severity(level)
print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)
# 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句
if sql_type == "delete":
# 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix
db_fix.delete(sql_data)
# 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果
elif sql_type == "select":
# 使用DB类对象调用select方法执行查询语句,并接收查询的结果
select_result = db_fix.select(sql_data)
# 将查询结果更新到用例数据中
case_data[update_key] = select_result
# 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句
elif sql_type == "select|delete" or sql_type == "delete|select":
# 使用DB类对象调用delete方法执行删除的sql语句。
db_fix.delete(sql_data["delete"])
# 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果
select_result = db_fix.select(sql_data["select"])
# 将查询结果更新到用例数据中
case_data[update_key] = select_result
result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)
print(result.text)
try:
for key in expect_data:
assert expect_data[key] == result.json().get(key)
except AssertionError:
# log.error(f"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}")
# raise AssertionError("断言失败,描述失败的原因")
raise AssertionError(f"断言失败, 用例数据为:{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{result.text}")
else:
print("断言成功")
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment