Commit d3796025 by HM

my_V_1.0

parent 71b54f1c
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: __init__.py
# Author: H_M
# Datetime: 2024/9/4 18:23
# Description:
# ---------------------------------------------------------------------------
import logging
import os
import time
def log():
logger = logging.getLogger()
logger.level = logging.INFO
log_name = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) + '.log'
log_dir = os.path.join(os.path.join(os.path.dirname(__file__), 'report'), 'log')
file_path = os.path.join(log_dir, log_name)
handle = logging.FileHandler(file_path, mode='a', encoding='utf-8')
formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s -- %(name)s')
handle.setFormatter(formatter)
logger.addHandler(handle)
return logger
log = log()
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: __init__.py
# Author: H_M
# Datetime: 2024/9/4 18:24
# Description:
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: read_ini.py
# Author: H_M
# Datetime: 2024/9/3 17:44
# Description:
# ---------------------------------------------------------------------------
import os
import configparser
from MyApiAutoTest_v3 import log
class BasicReadIni:
def __init__(self):
self.data_config_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'data_config')
ini_path = os.path.join(self.data_config_path, 'basic_config.ini')
print(self.data_config_path)
self.con = configparser.ConfigParser()
self.con.read(ini_path, encoding="utf-8")
def get_host(self, key):
"""根据key获取域名路径"""
try:
return self.con.get('host', key)
except Exception as e:
log.error(f"执行get_host发生错误,错误的key为{key}, 错误为{e}")
def get_sql(self, key):
"""根据key获取sql节点"""
try:
return self.con.get('sql', key)
except Exception as e:
log.error(f"执行get_sql发生错误,错误的key为{key}, 错误为{e}")
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: db.py
# Author: H_M
# Datetime: 2024/9/3 18:50
# Description:
# ---------------------------------------------------------------------------
import logging
import pymysql
from MyApiAutoTest_v2.common.read_ini import ReadIni
from MyApiAutoTest_v3 import log
from MyApiAutoTest_v3.data_config.settings import *
class DB:
def __init__(self):
"""创建数据库连接对象和游标对象"""
ini = ReadIni()
self.conn = pymysql.connect(
host=ini.get_sql(HOST),
port=int(ini.get_sql(PORT)),
user=ini.get_sql(USER),
password=ini.get_sql(PASSWORD),
database=ini.get_sql(DATABASE),
charset="utf8"
)
self.cursor = self.conn.cursor()
def delete(self, sql):
if isinstance(sql, str):
if sql.strip().lower().startswith("delete"):
try:
self.cursor.execute(sql)
self.conn.commit()
except Exception as e:
log.error(f"删除的sql语句错误,错误为{e}")
raise e
else:
log.error(f"不是删除的sql语句,sql语句为:{sql}")
else:
log.error("sql语句不是一个字符串")
def select(self, sql):
res = None
if isinstance(sql, str):
if sql.strip().lower().startswith("select"):
try:
self.cursor.execute(sql)
except Exception as e:
log.error(f"查询的sql语句错误,错误为{e}")
raise e
else:
res = self.cursor.fetchall()
if res:
return res[0][0]
else:
log.error()(f"不是查询的sql语句,sql语句为:{sql}")
else:
log.error("sql语句不是一个字符串")
if __name__ == '__main__':
db = DB()
print(db.select('select ID_ from uc_org where CODE_="limit1";'))
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: read_excel.py
# Author: H_M
# Datetime: 2024/9/3 18:10
# Description:
# ---------------------------------------------------------------------------
import logging
from MyApiAutoTest_v3.common.basic_read_ini import BasicReadIni
from MyApiAutoTest_v3.common.user_read_ini import UserReadIni
import openpyxl
from MyApiAutoTest_v3.common.read_json import read_json
from MyApiAutoTest_v3 import log
from MyApiAutoTest_v3.data_config.settings import *
class ReadExcel:
def __init__(self, username):
"""创建ReadIni对象,获取excel路径,打开工作簿"""
self.ini = UserReadIni(username)
excel_path = self.ini.get_file_path(FILE_EXCEL)
print(excel_path)
try:
wb = openpyxl.load_workbook(excel_path)
self.ws = wb[self.ini.get_table(TABLE_kEY)]
except Exception as e:
log.error(f"打开工作簿错误,可能为excel路径错误,路径为{excel_path}, 也可能为工作表错误,工作表为{self.ini.get_table('table_name')}, 错误为{e}")
raise e
# json文件的路径
case_path = self.ini.get_file_path(FILE_CASE)
expect_path = self.ini.get_file_path(FILE_EXPECT)
sql_path = self.ini.get_file_path(FILE_SQL)
# 获取json文件的数据
self.case_data = read_json(case_path)
self.expect_data = read_json(expect_path)
self.sql_data = read_json(sql_path)
def __get_cell_data(self, column, row):
"""获取excel单元格的数据"""
try:
cell_value = self.ws[column + str(row)].value
except Exception as e:
log.error(f"获取单元格数据错误,其中列为{column}, 行为{row}, 错误信息为{e}")
raise e
else:
if cell_value is None:
return None
elif cell_value.strip():
return cell_value.strip()
def get_module(self, row):
"""获取模块名称"""
return self.__get_cell_data(MODULE, row)
def get_api(self, row):
"""获取接口名称"""
return self.__get_cell_data(API, row)
def get_title(self, row):
"""获取接口名称"""
return self.__get_cell_data(TITLE, row)
def get_level(self, row):
"""获取接口名称"""
return self.__get_cell_data(LEVEL, row)
def get_url(self, row):
"""获取接口url"""
case_url = self.__get_cell_data(URL, row)
if case_url:
return BasicReadIni().get_host(HOST_KEY) + case_url
def get_method(self, row):
"""获取请求方法"""
return self.__get_cell_data(REQ_METHOD, row)
def get_mediatype(self, row):
"""获取媒体类型"""
mediatype = self.__get_cell_data(MIME, row)
if mediatype:
return mediatype.strip().lower()
def get_case_data(self, row):
"""获取用例数据"""
case_data = self.__get_cell_data(CASE_DATA, row)
if case_data:
module_name = self.get_module(row)
api_name = self.get_api(row)
return self.case_data[module_name][api_name][case_data]
def get_expect_data(self, row):
"""获取期望数据"""
expect_data = self.__get_cell_data(EXPECT_DATA, row)
if expect_data:
module_name = self.get_module(row)
api_name = self.get_api(row)
return self.expect_data[module_name][api_name][expect_data]
def get_sql_data(self, row):
"""获取sql数据"""
sql_data = self.__get_cell_data(SQL_DATA, row)
if sql_data:
module_name = self.get_module(row)
api_name = self.get_api(row)
return self.sql_data[module_name][api_name][sql_data]
def get_sql_type(self, row):
"""获取sql语句的类型"""
sql_type = self.__get_cell_data(SQL_TYPE, row)
if sql_type:
return sql_type.lower()
def get_update_key(self, row):
"""获取需要更新的key"""
return self.__get_cell_data(UPDATE_KEY, row)
def get_data(self):
"""获取需要的数据,并放在列表中返回"""
list1 = []
for row in range(2, self.ws.max_row+1):
module = self.get_module(row)
api = self.get_api(row)
title = self.get_title(row)
level = self.get_level(row)
url = self.get_url(row)
method = self.get_method(row)
mediatype = self.get_mediatype(row)
case = self.get_case_data(row)
expect = self.get_expect_data(row)
sql_type = self.get_sql_type(row)
sql = self.get_sql_data(row)
update_key = self.get_update_key(row)
# 过滤空行
if url is not None and method is not None and expect is not None:
list1.append([module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key])
return list1
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: read_json.py
# Author: H_M
# Datetime: 2024/9/3 18:03
# Description:
# ---------------------------------------------------------------------------
import json
import os
from MyApiAutoTest_v3 import log
def read_json(file_path):
"""读取json文件,返回python对象"""
if isinstance(file_path, str):
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.load(f)
except Exception as e:
log.error(f"读取json文件产生错误,文件路径为{file_path}, 错误为:{e}")
raise e
else:
log.error("不是一个json文件")
else:
log.error("文件路径不是一个字符串")
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: read_ini.py
# Author: H_M
# Datetime: 2024/9/3 17:44
# Description:
# ---------------------------------------------------------------------------
import os
import configparser
from MyApiAutoTest_v3 import log
class UserReadIni:
def __init__(self, username):
self.data_config_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'data_config')
self.user_dir = os.path.join(self.data_config_path, username)
ini_path = os.path.join(self.user_dir, 'config.ini')
print(self.data_config_path)
self.con = configparser.ConfigParser()
self.con.read(ini_path, encoding="utf-8")
def get_file_path(self, key):
"""根据key获取文件路径"""
try:
file_path = self.con.get('file', key)
except Exception as e:
log.error(f"执行get_file_path发生错误,错误的key为{key}, 错误为{e}")
else:
return os.path.join(self.user_dir, file_path)
def get_table(self, key):
"""根据key获取工作表名"""
try:
return self.con.get('table', key)
except Exception as e:
log.error(f"执行get_table发生错误,错误的key为{key}, 错误为{e}")
[host]
# 配置被测系统的域名
bpm_host=http://36.139.193.99:8088
[sql]
host=36.139.193.99
port=3306
user=root
password=Rhrc@2024
database=eip8
[report]
log=log
\ No newline at end of file
{
"认证接口":{
"登录系统":{
"LoginSuccess": {"username": "admin","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="},
"LoginErrorUsernameIsNone": {"username": "","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="},
"LoginErrorUsernameIsSpecialChar": {"username": "#!$!@#!@#","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="},
"LoginErrorUsernameIsLong": {"username": "adminadminadminadminadminadminadminadminadmin","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="},
"LoginErrorUsernameIsShort": {"username": "a","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="},
"LoginErrorUsernameIsError": {"username": "adminxyz","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="},
"LoginErrorPasswordIsNone": {"username": "admin","password": ""},
"LoginErrorPasswordIsSpecialChar": {"username": "admin","password": "#!$!@#!@#"},
"LoginErrorPasswordIsLong": {"username": "admin","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn"},
"LoginErrorPasswordIsShort": {"username": "admin","password": "123456"},
"LoginErrorPasswordIsError": {"username": "admin","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"code": "requestsAddDem","description": "requestsAddDem","isDefault": 1,"name": "requests添加的维度"}
},
"根据维度编码获取维度信息": {
"GetDemMessageSuccess": {"code": "requestsAddDem"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "需要更新"}
},
"更新维度": {
"UpdateDemSuccess": {
"code": "requestsAddDem",
"description": "requestsAddDem",
"isDefault": 0,
"name": "requestsAddDem"
}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "testAddOrg",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": "测试添加的组织",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"用户加入组织": {
"OrgAddUserSuccess": {"orgCode": "testAddOrg", "accounts": "admin,guest"}
},
"保存组织参数": {
"SaveOrgparamsSuccess": {
"query": {"orgCode": "testAddOrg"},
"body": [{"alias": "hxxmts", "value": "项目中没有关系户"}]
}
},
"删除组织": {
"DeleteOrgSuccess": "testAddOrg"
}
}
}
[file]
# 配置数据配置层中文件的名称
excel=apiAutoTest.xlsx
case=case_data.json
expect=expect_data.json
sql=sql_data.json
[table]
# 配置工作表名称
table_name=BPM
{
"认证接口":{
"登录系统":{
"LoginSuccess": {"username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true},
"LoginErrorUsernameIsNone": {"message":"账号或密码错误"},
"LoginErrorUsernameIsSpecialChar": {"message":"账号或密码错误"},
"LoginErrorUsernameIsLong": {"message":"账号或密码错误"},
"LoginErrorUsernameIsShort": {"message":"账号或密码错误"},
"LoginErrorUsernameIsError": {"message":"账号或密码错误"},
"LoginErrorPasswordIsNone":{"message":"账号或密码错误"},
"LoginErrorPasswordIsSpecialChar": {"message":"账号或密码错误"},
"LoginErrorPasswordIsLong": {"message":"账号或密码错误"},
"LoginErrorPasswordIsShort": {"message":"账号或密码错误"},
"LoginErrorPasswordIsError":{"message":"账号或密码错误"}
},
"刷新token": {
"RefreshSuccess": {"message": "刷新token成功"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"message": "添加维度成功"}
},
"根据维度编码获取维度信息": {
"GetDemMessageSuccess": {"isDelete": "0"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"message": "删除维度成功!"}
},
"更新维度": {
"UpdateDemSuccess": {"message": "更新维度成功"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"message": "添加组织成功"}
},
"用户加入组织": {
"OrgAddUserSuccess": {"message":"加入成功"}
},
"保存组织参数": {
"SaveOrgparamsSuccess": {"message":"保存组织参数成功!"}
},
"删除组织": {
"DeleteOrgSuccess": {"message":"删除组织成功!"}
}
}
}
{
"维度管理": {
"添加维度": {
"AddDemSuccess": {"delete": "dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"select": "select ID_ from uc_demension where CODE_=\"requestsAddDem\";"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"select": "select ID_ from uc_demension where CODE_=\"requestsAddDem\"; ",
"delete": "delete from uc_org where CODE_=\"testAddOrg\";"
}
}
}
}
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: settings.py
# Author: H_M
# Datetime: 2024/9/4 20:16
# Description:
# ---------------------------------------------------------------------------
# excel的列号---------------------------------------------------------------------------
NUMBER = "A"
MODULE = "B"
API = "C"
TITLE = "D"
LEVEL = "E"
URL = "F"
REQ_METHOD = "G"
MIME = "H"
CASE_DATA = "I"
EXPECT_DATA = "J"
SQL_TYPE = "K"
SQL_DATA = "L"
UPDATE_KEY = "M"
# ini文件中file节点的key---------------------------------------------------------------------------
FILE_EXCEL = "excel"
FILE_CASE = "case"
FILE_EXPECT = "expect"
FILE_SQL = "sql"
# ini文件中host节点的key---------------------------------------------------------------------------
HOST_KEY = "bpm_host"
# ini文件中table节点的key---------------------------------------------------------------------------
TABLE_kEY = "table_name"
# ini文件中sql节点的key---------------------------------------------------------------------------
HOST = "host"
PORT = "port"
USER = "user"
PASSWORD = "password"
DATABASE = "database"
{
"认证接口":{
"登录系统":{
"LoginSuccess": {"username": "admin","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="},
"LoginErrorUsernameIsNone": {"username": "","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="},
"LoginErrorUsernameIsSpecialChar": {"username": "#!$!@#!@#","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="},
"LoginErrorUsernameIsLong": {"username": "adminadminadminadminadminadminadminadminadmin","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="},
"LoginErrorUsernameIsShort": {"username": "a","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="},
"LoginErrorUsernameIsError": {"username": "adminxyz","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ="},
"LoginErrorPasswordIsNone": {"username": "admin","password": ""},
"LoginErrorPasswordIsSpecialChar": {"username": "admin","password": "#!$!@#!@#"},
"LoginErrorPasswordIsLong": {"username": "admin","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn"},
"LoginErrorPasswordIsShort": {"username": "admin","password": "123456"},
"LoginErrorPasswordIsError": {"username": "admin","password": "bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"code": "requestsAddDem","description": "requestsAddDem","isDefault": 1,"name": "requests添加的维度"}
},
"根据维度编码获取维度信息": {
"GetDemMessageSuccess": {"code": "requestsAddDem"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "需要更新"}
},
"更新维度": {
"UpdateDemSuccess": {
"code": "requestsAddDem",
"description": "requestsAddDem",
"isDefault": 0,
"name": "requestsAddDem"
}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "testAddOrg",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": "测试添加的组织",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"用户加入组织": {
"OrgAddUserSuccess": {"orgCode": "testAddOrg", "accounts": "admin,guest"}
},
"保存组织参数": {
"SaveOrgparamsSuccess": {
"query": {"orgCode": "testAddOrg"},
"body": [{"alias": "hxxmts", "value": "项目中没有关系户"}]
}
},
"删除组织": {
"DeleteOrgSuccess": "testAddOrg"
}
}
}
[file]
# 配置数据配置层中文件的名称
excel=apiAutoTest.xlsx
case=case_data.json
expect=expect_data.json
sql=sql_data.json
[table]
# 配置工作表名称
table_name=BPM
{
"认证接口":{
"登录系统":{
"LoginSuccess": {"username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true},
"LoginErrorUsernameIsNone": {"message":"账号或密码错误"},
"LoginErrorUsernameIsSpecialChar": {"message":"账号或密码错误"},
"LoginErrorUsernameIsLong": {"message":"账号或密码错误"},
"LoginErrorUsernameIsShort": {"message":"账号或密码错误"},
"LoginErrorUsernameIsError": {"message":"账号或密码错误"},
"LoginErrorPasswordIsNone":{"message":"账号或密码错误"},
"LoginErrorPasswordIsSpecialChar": {"message":"账号或密码错误"},
"LoginErrorPasswordIsLong": {"message":"账号或密码错误"},
"LoginErrorPasswordIsShort": {"message":"账号或密码错误"},
"LoginErrorPasswordIsError":{"message":"账号或密码错误"}
},
"刷新token": {
"RefreshSuccess": {"message": "刷新token成功"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"message": "添加维度成功"}
},
"根据维度编码获取维度信息": {
"GetDemMessageSuccess": {"isDelete": "0"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"message": "删除维度成功!"}
},
"更新维度": {
"UpdateDemSuccess": {"message": "更新维度成功"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"message": "添加组织成功"}
},
"用户加入组织": {
"OrgAddUserSuccess": {"message":"加入成功"}
},
"保存组织参数": {
"SaveOrgparamsSuccess": {"message":"保存组织参数成功!"}
},
"删除组织": {
"DeleteOrgSuccess": {"message":"删除组织成功!"}
}
}
}
{
"维度管理": {
"添加维度": {
"AddDemSuccess": {"delete": "dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"select": "select ID_ from uc_demension where CODE_=\"requestsAddDem\";"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"select": "select ID_ from uc_demension where CODE_=\"requestsAddDem\"; ",
"delete": "delete from uc_org where CODE_=\"testAddOrg\";"
}
}
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/refresh, 用例数据:None, 期望数据:{'message': '刷新token成功'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY3ODYsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591370662977536"}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591370306461696"}
\ No newline at end of file
INFO  root:test_bpm.py:55 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY3ODYsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
INFO  root:test_bpm.py:52 断言成功,接口url为:http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams, 用例数据:{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]}, 期望数据:{'message': '保存组织参数成功!'}, 服务器返回数据:{"state":true,"message":"保存组织参数成功!","value":"","code":200}
\ No newline at end of file
http://36.139.193.99:8088/auth POST application/json {'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'} {'message': '账号或密码错误'} None None None
http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds delete query {'ids': '需要更新'} {'message': '删除维度成功!'} {'select': 'select ID_ from uc_demension where CODE_="requestsAddDem";'} select ids
http://36.139.193.99:8088/auth POST application/json {'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='} {'message': '账号或密码错误'} None None None
http://36.139.193.99:8088/auth POST application/json {'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='} {'message': '账号或密码错误'} None None None
ERROR  root:test_bpm.py:49 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/deleteOrg, 用例数据:testAddOrg, 期望数据:{'message': '删除组织成功!'}, 服务器返回数据:{"state":true,"message":"部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;","value":"","code":200}
\ No newline at end of file
http://36.139.193.99:8088/auth POST application/json {'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='} {'message': '账号或密码错误'} None None None
http://36.139.193.99:8088/auth POST application/json {'username': 'admin', 'password': '123456'} {'message': '账号或密码错误'} None None None
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591370478428160"}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591370117718016"}
\ No newline at end of file
D:\CeShiShiXun\Project\PythonProject\PythonProject_1\MyApiAutoTest_v3\data_config
D:\CeShiShiXun\Project\PythonProject\PythonProject_1\MyApiAutoTest_v2\data_config
http://36.139.193.99:8088/auth POST application/json {'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='} {'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True} None None None
http://36.139.193.99:8088/api/demension/v1/dem/updateDem put json {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'} {'message': '更新维度成功'} None None None
INFO  root:test_bpm.py:52 断言成功,接口url为:http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg, 用例数据:{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'}, 期望数据:{'message': '加入成功'}, 服务器返回数据:{"state":true,"message":"加入成功","value":"","code":200}
\ No newline at end of file
http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams POST query|json {'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]} {'message': '保存组织参数成功!'} None None None
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '123456'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831591371262763008"}
\ No newline at end of file
http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg POST query {'orgCode': 'testAddOrg', 'accounts': 'admin,guest'} {'message': '加入成功'} None None None
D:\CeShiShiXun\Project\PythonProject\PythonProject_1\MyApiAutoTest_v3\data_config
D:\CeShiShiXun\Project\PythonProject\PythonProject_1\MyApiAutoTest_v2\data_config
http://36.139.193.99:8088/api/demension/v1/dem/addDem post application/json {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'} {'message': '添加维度成功'} {'delete': 'dELETE FROM uc_demension WHERE `CODE_`="requestsAddDem";'} delete None
http://36.139.193.99:8088/api/org/v1/org/addOrg POST json {'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'} {'message': '添加组织成功'} {'select': 'select ID_ from uc_demension where CODE_="requestsAddDem"; ', 'delete': 'delete from uc_org where CODE_="testAddOrg";'} delete|select demId
http://36.139.193.99:8088/auth post application/json {'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'} {'message': '账号或密码错误'} None None None
ERROR  root:test_bpm.py:49 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/addOrg, 用例数据:{'code': 'testAddOrg', 'demId': '1831591367190093824', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据:{'message': '添加组织成功'}, 服务器返回数据:{"state":true,"message":"添加组织成功!","value":"","code":200}
\ No newline at end of file
http://36.139.193.99:8088/refresh GET None None {'message': '刷新token成功'} None None None
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831591371094990848"}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591369895419904"}
\ No newline at end of file
http://36.139.193.99:8088/auth POST application/json {'username': 'admin', 'password': ''} {'message': '账号或密码错误'} None None None
http://36.139.193.99:8088/api/org/v1/org/deleteOrg POST json testAddOrg {'message': '删除组织成功!'} None None None
http://36.139.193.99:8088/auth POST json {'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='} {'message': '账号或密码错误'} None None None
INFO  root:test_bpm.py:55 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': ''}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账号或密码错误","code":200,"logId":"1831591370847526912"}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY3ODYsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
ERROR  root:test_bpm.py:49 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds, 用例数据:{'ids': '1831591367190093824'}, 期望数据:{'message': '删除维度成功!'}, 服务器返回数据:{"state":false,"message":"【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 ","value":"","code":200}
\ No newline at end of file
INFO  root:test_bpm.py:55 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '#!$!@#!@#'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账号或密码错误","code":200,"logId":"1831591370985938944"}
\ No newline at end of file
http://36.139.193.99:8088/auth POST application/json {'username': 'admin', 'password': '#!$!@#!@#'} {'message': '账号或密码错误'} None None None
ERROR  root:test_bpm.py:49 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/updateDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}, 期望数据:{'message': '更新维度成功'}, 服务器返回数据:{"state":true,"message":"更新维度成功!","value":"","code":200}
\ No newline at end of file
ERROR  root:test_bpm.py:49 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}, 期望数据:{'message': '添加维度成功'}, 服务器返回数据:{"state":true,"message":"添加维度成功!","value":"","code":200}
\ No newline at end of file
http://36.139.193.99:8088/auth POST application/json {'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='} {'message': '账号或密码错误'} None None None
"Epic","Feature","Story","FAILED","BROKEN","PASSED","SKIPPED","UNKNOWN"
"BPM项目-Demo","维度管理","添加维度","1","0","0","0","0"
"BPM项目-Demo","组织管理","保存组织参数","0","0","1","0","0"
"BPM项目-Demo","认证接口","登录系统","8","0","3","0","0"
"BPM项目-Demo","组织管理","添加组织","1","0","0","0","0"
"BPM项目-Demo","认证接口","刷新token","1","0","0","0","0"
"BPM项目-Demo","组织管理","删除组织","1","0","0","0","0"
"BPM项目-Demo","组织管理","用户加入组织","0","0","1","0","0"
"BPM项目-Demo","维度管理","根据维度编码删除维度","1","0","0","0","0"
"BPM项目-Demo","维度管理","更新维度","1","0","0","0","0"
{
"uid" : "b1a8273437954620fa374b796ffaacdd",
"name" : "behaviors",
"children" : [ {
"name" : "BPM项目-Demo",
"children" : [ {
"name" : "维度管理",
"children" : [ {
"name" : "添加维度",
"children" : [ {
"name" : "正向用例",
"uid" : "49b07535811d1a30",
"parentUid" : "11975e0b09b70f66c153f5def4a96d5c",
"status" : "failed",
"time" : {
"start" : 1725520494200,
"stop" : 1725520494240,
"duration" : 40
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}", "{'message': '添加维度成功'}", "'高'", "'application/json'", "'post'", "'维度管理'", "{'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}", "'delete'", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'" ]
} ],
"uid" : "11975e0b09b70f66c153f5def4a96d5c"
}, {
"name" : "更新维度",
"children" : [ {
"name" : "正向用例",
"uid" : "9dc117427e7a646c",
"parentUid" : "583307c5bb1bc88aa5897dbcea9fd972",
"status" : "failed",
"time" : {
"start" : 1725520494494,
"stop" : 1725520494515,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'更新维度'", "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}", "{'message': '更新维度成功'}", "'中'", "'json'", "'put'", "'维度管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'" ]
} ],
"uid" : "583307c5bb1bc88aa5897dbcea9fd972"
}, {
"name" : "根据维度编码删除维度",
"children" : [ {
"name" : "正向用例",
"uid" : "88ba289c395eb936",
"parentUid" : "4c0cdc34884b9ede4f1b25b6cc2ee156",
"status" : "failed",
"time" : {
"start" : 1725520494715,
"stop" : 1725520494737,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "{'message': '删除维度成功!'}", "'中'", "'query'", "'delete'", "'维度管理'", "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}", "'select'", "'正向用例'", "'ids'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'" ]
} ],
"uid" : "4c0cdc34884b9ede4f1b25b6cc2ee156"
} ],
"uid" : "4ea69fda88743840a3ad797cc2b4713c"
}, {
"name" : "组织管理",
"children" : [ {
"name" : "添加组织",
"children" : [ {
"name" : "正向用例",
"uid" : "783749a26a82f10d",
"parentUid" : "e9f6e41c949c40015fe73c88c2de3c20",
"status" : "failed",
"time" : {
"start" : 1725520494539,
"stop" : 1725520494580,
"duration" : 41
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "{'message': '添加组织成功'}", "'高'", "'json'", "'POST'", "'组织管理'", "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; ', 'delete': 'delete from uc_org where CODE_=\"testAddOrg\";'}", "'delete|select'", "'正向用例'", "'demId'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'" ]
} ],
"uid" : "e9f6e41c949c40015fe73c88c2de3c20"
}, {
"name" : "用户加入组织",
"children" : [ {
"name" : "正向用例",
"uid" : "e9b83a12e727561b",
"parentUid" : "00e6741134468448c0298684c29ca8d5",
"status" : "passed",
"time" : {
"start" : 1725520494600,
"stop" : 1725520494635,
"duration" : 35
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'用户加入组织'", "{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'}", "{'message': '加入成功'}", "'高'", "'query'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg'" ]
} ],
"uid" : "00e6741134468448c0298684c29ca8d5"
}, {
"name" : "保存组织参数",
"children" : [ {
"name" : "正向用例",
"uid" : "db0d2c6fcc60c963",
"parentUid" : "3d31524b4b035585937dbd955779d5f7",
"status" : "passed",
"time" : {
"start" : 1725520494645,
"stop" : 1725520494670,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]}", "{'message': '保存组织参数成功!'}", "'中'", "'query|json'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'" ]
} ],
"uid" : "3d31524b4b035585937dbd955779d5f7"
}, {
"name" : "删除组织",
"children" : [ {
"name" : "正向用例",
"uid" : "9b1d98ad16b8b64f",
"parentUid" : "b7bf9cd933147ab658f967c33d8f50cf",
"status" : "failed",
"time" : {
"start" : 1725520494680,
"stop" : 1725520494690,
"duration" : 10
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'testAddOrg'", "{'message': '删除组织成功!'}", "'中'", "'json'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'" ]
} ],
"uid" : "b7bf9cd933147ab658f967c33d8f50cf"
} ],
"uid" : "173efcfa2a49c975275832fc7c7e44fe"
}, {
"name" : "认证接口",
"children" : [ {
"name" : "登录系统",
"children" : [ {
"name" : "登录的正向用例",
"uid" : "95e6c1c9e1e426c1",
"parentUid" : "d72c1342b8316476b1defb9bc25b77bf",
"status" : "passed",
"time" : {
"start" : 1725520494820,
"stop" : 1725520494849,
"duration" : 29
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}", "'高'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'登录的正向用例'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username为空",
"uid" : "7833289b8f2de5e6",
"parentUid" : "d72c1342b8316476b1defb9bc25b77bf",
"status" : "failed",
"time" : {
"start" : 1725520494860,
"stop" : 1725520494879,
"duration" : 19
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username为空'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username为特殊字符",
"uid" : "c601d34b24dbc26d",
"parentUid" : "d72c1342b8316476b1defb9bc25b77bf",
"status" : "failed",
"time" : {
"start" : 1725520494904,
"stop" : 1725520494930,
"duration" : 26
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username为特殊字符'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username过长",
"uid" : "c3664ee960d4b97",
"parentUid" : "d72c1342b8316476b1defb9bc25b77bf",
"status" : "failed",
"time" : {
"start" : 1725520494949,
"stop" : 1725520494970,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username短",
"uid" : "3b4a2d332e08861d",
"parentUid" : "d72c1342b8316476b1defb9bc25b77bf",
"status" : "failed",
"time" : {
"start" : 1725520494989,
"stop" : 1725520495010,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username短'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username错误",
"uid" : "ef5a4395bfb3ce69",
"parentUid" : "d72c1342b8316476b1defb9bc25b77bf",
"status" : "failed",
"time" : {
"start" : 1725520495037,
"stop" : 1725520495059,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username错误'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password为空",
"uid" : "44660cf178eb224b",
"parentUid" : "d72c1342b8316476b1defb9bc25b77bf",
"status" : "passed",
"time" : {
"start" : 1725520495080,
"stop" : 1725520495100,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password为空'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password为特殊字符",
"uid" : "33a6aad0be61808b",
"parentUid" : "d72c1342b8316476b1defb9bc25b77bf",
"status" : "passed",
"time" : {
"start" : 1725520495115,
"stop" : 1725520495140,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '#!$!@#!@#'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password为特殊字符'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password过长",
"uid" : "bd9013480db6d913",
"parentUid" : "d72c1342b8316476b1defb9bc25b77bf",
"status" : "failed",
"time" : {
"start" : 1725520495145,
"stop" : 1725520495160,
"duration" : 15
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'post'", "'认证接口'", "None", "None", "'反向用例-password过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password过短",
"uid" : "bd0d986e76fe6e85",
"parentUid" : "d72c1342b8316476b1defb9bc25b77bf",
"status" : "failed",
"time" : {
"start" : 1725520495184,
"stop" : 1725520495199,
"duration" : 15
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '123456'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password过短'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password错误",
"uid" : "6e105ca29181843b",
"parentUid" : "d72c1342b8316476b1defb9bc25b77bf",
"status" : "failed",
"time" : {
"start" : 1725520495224,
"stop" : 1725520495260,
"duration" : 36
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password错误'", "None", "'http://36.139.193.99:8088/auth'" ]
} ],
"uid" : "d72c1342b8316476b1defb9bc25b77bf"
}, {
"name" : "刷新token",
"children" : [ {
"name" : "正向用例",
"uid" : "aca015279c84806c",
"parentUid" : "f4583415504c40d8e44fb4fa7ac95e67",
"status" : "failed",
"time" : {
"start" : 1725520495280,
"stop" : 1725520495300,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "{'message': '刷新token成功'}", "'高'", "None", "'GET'", "'认证接口'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/refresh'" ]
} ],
"uid" : "f4583415504c40d8e44fb4fa7ac95e67"
} ],
"uid" : "327421d1f66c5c79ebfa7dc3ef3af7da"
} ],
"uid" : "432af10f598694f0564afe99657fc764"
} ]
}
\ No newline at end of file
"Category","FAILED","BROKEN","PASSED","SKIPPED","UNKNOWN"
"Product defects","14","0","0","0","0"
{
"uid" : "4b4757e66a1912dae1a509f688f20b0f",
"name" : "categories",
"children" : [ {
"name" : "Product defects",
"children" : [ {
"name" : "AssertionError: 断言失败",
"children" : [ {
"name" : "正向用例",
"uid" : "49b07535811d1a30",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520494200,
"stop" : 1725520494240,
"duration" : 40
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}", "{'message': '添加维度成功'}", "'高'", "'application/json'", "'post'", "'维度管理'", "{'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}", "'delete'", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'" ]
}, {
"name" : "正向用例",
"uid" : "9dc117427e7a646c",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520494494,
"stop" : 1725520494515,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'更新维度'", "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}", "{'message': '更新维度成功'}", "'中'", "'json'", "'put'", "'维度管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'" ]
}, {
"name" : "正向用例",
"uid" : "783749a26a82f10d",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520494539,
"stop" : 1725520494580,
"duration" : 41
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "{'message': '添加组织成功'}", "'高'", "'json'", "'POST'", "'组织管理'", "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; ', 'delete': 'delete from uc_org where CODE_=\"testAddOrg\";'}", "'delete|select'", "'正向用例'", "'demId'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "9b1d98ad16b8b64f",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520494680,
"stop" : 1725520494690,
"duration" : 10
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'testAddOrg'", "{'message': '删除组织成功!'}", "'中'", "'json'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'" ]
}, {
"name" : "正向用例",
"uid" : "88ba289c395eb936",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520494715,
"stop" : 1725520494737,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "{'message': '删除维度成功!'}", "'中'", "'query'", "'delete'", "'维度管理'", "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}", "'select'", "'正向用例'", "'ids'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "反向用例-username为空",
"uid" : "7833289b8f2de5e6",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520494860,
"stop" : 1725520494879,
"duration" : 19
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username为空'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username为特殊字符",
"uid" : "c601d34b24dbc26d",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520494904,
"stop" : 1725520494930,
"duration" : 26
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username为特殊字符'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username过长",
"uid" : "c3664ee960d4b97",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520494949,
"stop" : 1725520494970,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username短",
"uid" : "3b4a2d332e08861d",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520494989,
"stop" : 1725520495010,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username短'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username错误",
"uid" : "ef5a4395bfb3ce69",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520495037,
"stop" : 1725520495059,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username错误'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password过长",
"uid" : "bd9013480db6d913",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520495145,
"stop" : 1725520495160,
"duration" : 15
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'post'", "'认证接口'", "None", "None", "'反向用例-password过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password过短",
"uid" : "bd0d986e76fe6e85",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520495184,
"stop" : 1725520495199,
"duration" : 15
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '123456'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password过短'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password错误",
"uid" : "6e105ca29181843b",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520495224,
"stop" : 1725520495260,
"duration" : 36
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password错误'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "正向用例",
"uid" : "aca015279c84806c",
"parentUid" : "19135fd4a1c65086de1dc2a02ed9d4e0",
"status" : "failed",
"time" : {
"start" : 1725520495280,
"stop" : 1725520495300,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "{'message': '刷新token成功'}", "'高'", "None", "'GET'", "'认证接口'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/refresh'" ]
} ],
"uid" : "19135fd4a1c65086de1dc2a02ed9d4e0"
} ],
"uid" : "8fb3a91ba5aaf9de24cc8a92edc82b5d"
} ]
}
\ No newline at end of file
{
"uid" : "83edc06c07f9ae9e47eb6dd1b683e4e2",
"name" : "packages",
"children" : [ {
"name" : "test_case",
"children" : [ {
"name" : "test_ls.test_bpm",
"children" : [ {
"name" : "正向用例",
"uid" : "49b07535811d1a30",
"parentUid" : "4f6468fa29ddd4d24024c778739ff978",
"status" : "failed",
"time" : {
"start" : 1725520494200,
"stop" : 1725520494240,
"duration" : 40
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}", "{'message': '添加维度成功'}", "'高'", "'application/json'", "'post'", "'维度管理'", "{'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}", "'delete'", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'" ]
}, {
"name" : "正向用例",
"uid" : "9dc117427e7a646c",
"parentUid" : "4f6468fa29ddd4d24024c778739ff978",
"status" : "failed",
"time" : {
"start" : 1725520494494,
"stop" : 1725520494515,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'更新维度'", "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}", "{'message': '更新维度成功'}", "'中'", "'json'", "'put'", "'维度管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'" ]
}, {
"name" : "正向用例",
"uid" : "783749a26a82f10d",
"parentUid" : "4f6468fa29ddd4d24024c778739ff978",
"status" : "failed",
"time" : {
"start" : 1725520494539,
"stop" : 1725520494580,
"duration" : 41
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "{'message': '添加组织成功'}", "'高'", "'json'", "'POST'", "'组织管理'", "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; ', 'delete': 'delete from uc_org where CODE_=\"testAddOrg\";'}", "'delete|select'", "'正向用例'", "'demId'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "e9b83a12e727561b",
"parentUid" : "4f6468fa29ddd4d24024c778739ff978",
"status" : "passed",
"time" : {
"start" : 1725520494600,
"stop" : 1725520494635,
"duration" : 35
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'用户加入组织'", "{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'}", "{'message': '加入成功'}", "'高'", "'query'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg'" ]
}, {
"name" : "正向用例",
"uid" : "db0d2c6fcc60c963",
"parentUid" : "4f6468fa29ddd4d24024c778739ff978",
"status" : "passed",
"time" : {
"start" : 1725520494645,
"stop" : 1725520494670,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]}", "{'message': '保存组织参数成功!'}", "'中'", "'query|json'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'" ]
}, {
"name" : "正向用例",
"uid" : "9b1d98ad16b8b64f",
"parentUid" : "4f6468fa29ddd4d24024c778739ff978",
"status" : "failed",
"time" : {
"start" : 1725520494680,
"stop" : 1725520494690,
"duration" : 10
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'testAddOrg'", "{'message': '删除组织成功!'}", "'中'", "'json'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'" ]
}, {
"name" : "正向用例",
"uid" : "88ba289c395eb936",
"parentUid" : "4f6468fa29ddd4d24024c778739ff978",
"status" : "failed",
"time" : {
"start" : 1725520494715,
"stop" : 1725520494737,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "{'message': '删除维度成功!'}", "'中'", "'query'", "'delete'", "'维度管理'", "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}", "'select'", "'正向用例'", "'ids'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'" ]
} ],
"uid" : "test_ls.test_bpm"
}, {
"name" : "test_zs.test_bpm",
"children" : [ {
"name" : "登录的正向用例",
"uid" : "95e6c1c9e1e426c1",
"parentUid" : "835620787a4da21a0eccf9f555622f5a",
"status" : "passed",
"time" : {
"start" : 1725520494820,
"stop" : 1725520494849,
"duration" : 29
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}", "'高'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'登录的正向用例'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username为空",
"uid" : "7833289b8f2de5e6",
"parentUid" : "835620787a4da21a0eccf9f555622f5a",
"status" : "failed",
"time" : {
"start" : 1725520494860,
"stop" : 1725520494879,
"duration" : 19
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username为空'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username为特殊字符",
"uid" : "c601d34b24dbc26d",
"parentUid" : "835620787a4da21a0eccf9f555622f5a",
"status" : "failed",
"time" : {
"start" : 1725520494904,
"stop" : 1725520494930,
"duration" : 26
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username为特殊字符'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username过长",
"uid" : "c3664ee960d4b97",
"parentUid" : "835620787a4da21a0eccf9f555622f5a",
"status" : "failed",
"time" : {
"start" : 1725520494949,
"stop" : 1725520494970,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username短",
"uid" : "3b4a2d332e08861d",
"parentUid" : "835620787a4da21a0eccf9f555622f5a",
"status" : "failed",
"time" : {
"start" : 1725520494989,
"stop" : 1725520495010,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username短'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username错误",
"uid" : "ef5a4395bfb3ce69",
"parentUid" : "835620787a4da21a0eccf9f555622f5a",
"status" : "failed",
"time" : {
"start" : 1725520495037,
"stop" : 1725520495059,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username错误'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password为空",
"uid" : "44660cf178eb224b",
"parentUid" : "835620787a4da21a0eccf9f555622f5a",
"status" : "passed",
"time" : {
"start" : 1725520495080,
"stop" : 1725520495100,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password为空'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password为特殊字符",
"uid" : "33a6aad0be61808b",
"parentUid" : "835620787a4da21a0eccf9f555622f5a",
"status" : "passed",
"time" : {
"start" : 1725520495115,
"stop" : 1725520495140,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '#!$!@#!@#'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password为特殊字符'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password过长",
"uid" : "bd9013480db6d913",
"parentUid" : "835620787a4da21a0eccf9f555622f5a",
"status" : "failed",
"time" : {
"start" : 1725520495145,
"stop" : 1725520495160,
"duration" : 15
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'post'", "'认证接口'", "None", "None", "'反向用例-password过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password过短",
"uid" : "bd0d986e76fe6e85",
"parentUid" : "835620787a4da21a0eccf9f555622f5a",
"status" : "failed",
"time" : {
"start" : 1725520495184,
"stop" : 1725520495199,
"duration" : 15
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '123456'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password过短'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password错误",
"uid" : "6e105ca29181843b",
"parentUid" : "835620787a4da21a0eccf9f555622f5a",
"status" : "failed",
"time" : {
"start" : 1725520495224,
"stop" : 1725520495260,
"duration" : 36
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password错误'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "正向用例",
"uid" : "aca015279c84806c",
"parentUid" : "835620787a4da21a0eccf9f555622f5a",
"status" : "failed",
"time" : {
"start" : 1725520495280,
"stop" : 1725520495300,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "{'message': '刷新token成功'}", "'高'", "None", "'GET'", "'认证接口'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/refresh'" ]
} ],
"uid" : "test_zs.test_bpm"
} ],
"uid" : "3b2e467b921b0ea8d4803b9c79d92d0c"
} ]
}
\ No newline at end of file
"Status","Start Time","Stop Time","Duration in ms","Parent Suite","Suite","Sub Suite","Test Class","Test Method","Name","Description"
"failed","Thu Sep 05 15:14:54 CST 2024","Thu Sep 05 15:14:54 CST 2024","40","test_case.test_ls","test_bpm","TestBpm","","","正向用例","测试用例"
"passed","Thu Sep 05 15:14:54 CST 2024","Thu Sep 05 15:14:54 CST 2024","25","test_case.test_ls","test_bpm","TestBpm","","","正向用例","测试用例"
"failed","Thu Sep 05 15:14:54 CST 2024","Thu Sep 05 15:14:55 CST 2024","21","test_case.test_zs","test_bpm","TestBpm","","","反向用例-username短","测试用例"
"passed","Thu Sep 05 15:14:54 CST 2024","Thu Sep 05 15:14:54 CST 2024","29","test_case.test_zs","test_bpm","TestBpm","","","登录的正向用例","测试用例"
"failed","Thu Sep 05 15:14:55 CST 2024","Thu Sep 05 15:14:55 CST 2024","15","test_case.test_zs","test_bpm","TestBpm","","","反向用例-password过长","测试用例"
"failed","Thu Sep 05 15:14:55 CST 2024","Thu Sep 05 15:14:55 CST 2024","15","test_case.test_zs","test_bpm","TestBpm","","","反向用例-password过短","测试用例"
"failed","Thu Sep 05 15:14:54 CST 2024","Thu Sep 05 15:14:54 CST 2024","41","test_case.test_ls","test_bpm","TestBpm","","","正向用例","测试用例"
"failed","Thu Sep 05 15:14:54 CST 2024","Thu Sep 05 15:14:54 CST 2024","19","test_case.test_zs","test_bpm","TestBpm","","","反向用例-username为空","测试用例"
"failed","Thu Sep 05 15:14:54 CST 2024","Thu Sep 05 15:14:54 CST 2024","21","test_case.test_zs","test_bpm","TestBpm","","","反向用例-username过长","测试用例"
"failed","Thu Sep 05 15:14:55 CST 2024","Thu Sep 05 15:14:55 CST 2024","20","test_case.test_zs","test_bpm","TestBpm","","","正向用例","测试用例"
"passed","Thu Sep 05 15:14:55 CST 2024","Thu Sep 05 15:14:55 CST 2024","20","test_case.test_zs","test_bpm","TestBpm","","","反向用例-password为空","测试用例"
"failed","Thu Sep 05 15:14:55 CST 2024","Thu Sep 05 15:14:55 CST 2024","22","test_case.test_zs","test_bpm","TestBpm","","","反向用例-username错误","测试用例"
"failed","Thu Sep 05 15:14:54 CST 2024","Thu Sep 05 15:14:54 CST 2024","10","test_case.test_ls","test_bpm","TestBpm","","","正向用例","测试用例"
"passed","Thu Sep 05 15:14:54 CST 2024","Thu Sep 05 15:14:54 CST 2024","35","test_case.test_ls","test_bpm","TestBpm","","","正向用例","测试用例"
"passed","Thu Sep 05 15:14:55 CST 2024","Thu Sep 05 15:14:55 CST 2024","25","test_case.test_zs","test_bpm","TestBpm","","","反向用例-password为特殊字符","测试用例"
"failed","Thu Sep 05 15:14:55 CST 2024","Thu Sep 05 15:14:55 CST 2024","36","test_case.test_zs","test_bpm","TestBpm","","","反向用例-password错误","测试用例"
"failed","Thu Sep 05 15:14:54 CST 2024","Thu Sep 05 15:14:54 CST 2024","22","test_case.test_ls","test_bpm","TestBpm","","","正向用例","测试用例"
"failed","Thu Sep 05 15:14:54 CST 2024","Thu Sep 05 15:14:54 CST 2024","21","test_case.test_ls","test_bpm","TestBpm","","","正向用例","测试用例"
"failed","Thu Sep 05 15:14:54 CST 2024","Thu Sep 05 15:14:54 CST 2024","26","test_case.test_zs","test_bpm","TestBpm","","","反向用例-username为特殊字符","测试用例"
{
"uid" : "98d3104e051c652961429bf95fa0b5d6",
"name" : "suites",
"children" : [ {
"name" : "test_case.test_ls",
"children" : [ {
"name" : "test_bpm",
"children" : [ {
"name" : "TestBpm",
"children" : [ {
"name" : "正向用例",
"uid" : "49b07535811d1a30",
"parentUid" : "62a4cd5dedce4e95e5b793238fe584c3",
"status" : "failed",
"time" : {
"start" : 1725520494200,
"stop" : 1725520494240,
"duration" : 40
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}", "{'message': '添加维度成功'}", "'高'", "'application/json'", "'post'", "'维度管理'", "{'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}", "'delete'", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'" ]
}, {
"name" : "正向用例",
"uid" : "9dc117427e7a646c",
"parentUid" : "62a4cd5dedce4e95e5b793238fe584c3",
"status" : "failed",
"time" : {
"start" : 1725520494494,
"stop" : 1725520494515,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'更新维度'", "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}", "{'message': '更新维度成功'}", "'中'", "'json'", "'put'", "'维度管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'" ]
}, {
"name" : "正向用例",
"uid" : "783749a26a82f10d",
"parentUid" : "62a4cd5dedce4e95e5b793238fe584c3",
"status" : "failed",
"time" : {
"start" : 1725520494539,
"stop" : 1725520494580,
"duration" : 41
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "{'message': '添加组织成功'}", "'高'", "'json'", "'POST'", "'组织管理'", "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; ', 'delete': 'delete from uc_org where CODE_=\"testAddOrg\";'}", "'delete|select'", "'正向用例'", "'demId'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'" ]
}, {
"name" : "正向用例",
"uid" : "e9b83a12e727561b",
"parentUid" : "62a4cd5dedce4e95e5b793238fe584c3",
"status" : "passed",
"time" : {
"start" : 1725520494600,
"stop" : 1725520494635,
"duration" : 35
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'用户加入组织'", "{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'}", "{'message': '加入成功'}", "'高'", "'query'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg'" ]
}, {
"name" : "正向用例",
"uid" : "db0d2c6fcc60c963",
"parentUid" : "62a4cd5dedce4e95e5b793238fe584c3",
"status" : "passed",
"time" : {
"start" : 1725520494645,
"stop" : 1725520494670,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]}", "{'message': '保存组织参数成功!'}", "'中'", "'query|json'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'" ]
}, {
"name" : "正向用例",
"uid" : "9b1d98ad16b8b64f",
"parentUid" : "62a4cd5dedce4e95e5b793238fe584c3",
"status" : "failed",
"time" : {
"start" : 1725520494680,
"stop" : 1725520494690,
"duration" : 10
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'testAddOrg'", "{'message': '删除组织成功!'}", "'中'", "'json'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'" ]
}, {
"name" : "正向用例",
"uid" : "88ba289c395eb936",
"parentUid" : "62a4cd5dedce4e95e5b793238fe584c3",
"status" : "failed",
"time" : {
"start" : 1725520494715,
"stop" : 1725520494737,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "{'message': '删除维度成功!'}", "'中'", "'query'", "'delete'", "'维度管理'", "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}", "'select'", "'正向用例'", "'ids'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'" ]
} ],
"uid" : "62a4cd5dedce4e95e5b793238fe584c3"
} ],
"uid" : "c6492b9458a2c62315a5d80b9e40c4cd"
} ],
"uid" : "3e0462c21482aa41344d452b069ef363"
}, {
"name" : "test_case.test_zs",
"children" : [ {
"name" : "test_bpm",
"children" : [ {
"name" : "TestBpm",
"children" : [ {
"name" : "登录的正向用例",
"uid" : "95e6c1c9e1e426c1",
"parentUid" : "17bd1f36c39b2f713761d3b402f1ea02",
"status" : "passed",
"time" : {
"start" : 1725520494820,
"stop" : 1725520494849,
"duration" : 29
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}", "'高'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'登录的正向用例'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username为空",
"uid" : "7833289b8f2de5e6",
"parentUid" : "17bd1f36c39b2f713761d3b402f1ea02",
"status" : "failed",
"time" : {
"start" : 1725520494860,
"stop" : 1725520494879,
"duration" : 19
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username为空'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username为特殊字符",
"uid" : "c601d34b24dbc26d",
"parentUid" : "17bd1f36c39b2f713761d3b402f1ea02",
"status" : "failed",
"time" : {
"start" : 1725520494904,
"stop" : 1725520494930,
"duration" : 26
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username为特殊字符'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username过长",
"uid" : "c3664ee960d4b97",
"parentUid" : "17bd1f36c39b2f713761d3b402f1ea02",
"status" : "failed",
"time" : {
"start" : 1725520494949,
"stop" : 1725520494970,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username短",
"uid" : "3b4a2d332e08861d",
"parentUid" : "17bd1f36c39b2f713761d3b402f1ea02",
"status" : "failed",
"time" : {
"start" : 1725520494989,
"stop" : 1725520495010,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username短'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username错误",
"uid" : "ef5a4395bfb3ce69",
"parentUid" : "17bd1f36c39b2f713761d3b402f1ea02",
"status" : "failed",
"time" : {
"start" : 1725520495037,
"stop" : 1725520495059,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username错误'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password为空",
"uid" : "44660cf178eb224b",
"parentUid" : "17bd1f36c39b2f713761d3b402f1ea02",
"status" : "passed",
"time" : {
"start" : 1725520495080,
"stop" : 1725520495100,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password为空'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password为特殊字符",
"uid" : "33a6aad0be61808b",
"parentUid" : "17bd1f36c39b2f713761d3b402f1ea02",
"status" : "passed",
"time" : {
"start" : 1725520495115,
"stop" : 1725520495140,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '#!$!@#!@#'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password为特殊字符'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password过长",
"uid" : "bd9013480db6d913",
"parentUid" : "17bd1f36c39b2f713761d3b402f1ea02",
"status" : "failed",
"time" : {
"start" : 1725520495145,
"stop" : 1725520495160,
"duration" : 15
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'post'", "'认证接口'", "None", "None", "'反向用例-password过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password过短",
"uid" : "bd0d986e76fe6e85",
"parentUid" : "17bd1f36c39b2f713761d3b402f1ea02",
"status" : "failed",
"time" : {
"start" : 1725520495184,
"stop" : 1725520495199,
"duration" : 15
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '123456'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password过短'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password错误",
"uid" : "6e105ca29181843b",
"parentUid" : "17bd1f36c39b2f713761d3b402f1ea02",
"status" : "failed",
"time" : {
"start" : 1725520495224,
"stop" : 1725520495260,
"duration" : 36
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password错误'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "正向用例",
"uid" : "aca015279c84806c",
"parentUid" : "17bd1f36c39b2f713761d3b402f1ea02",
"status" : "failed",
"time" : {
"start" : 1725520495280,
"stop" : 1725520495300,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "{'message': '刷新token成功'}", "'高'", "None", "'GET'", "'认证接口'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/refresh'" ]
} ],
"uid" : "17bd1f36c39b2f713761d3b402f1ea02"
} ],
"uid" : "7a5a8cf09ba0a18824ab549d9f3ae63d"
} ],
"uid" : "a4a59fbb04853758dfa8a5ee7ac8d434"
} ]
}
\ No newline at end of file
{
"uid" : "33a6aad0be61808b",
"name" : "反向用例-password为特殊字符",
"fullName" : "test_case.test_zs.test_bpm.TestBpm#test_bpm",
"historyId" : "5081ed40354d9c8308060f8331fc10eb",
"time" : {
"start" : 1725520495115,
"stop" : 1725520495140,
"duration" : 25
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494790,
"stop" : 1725520494820,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req",
"time" : {
"start" : 1725520494759,
"stop" : 1725520494790,
"duration" : 31
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "eef83df3f4efb27f",
"name" : "log",
"source" : "eef83df3f4efb27f.txt",
"type" : "text/plain",
"size" : 322
}, {
"uid" : "f268e6b31a83f507",
"name" : "stdout",
"source" : "f268e6b31a83f507.txt",
"type" : "text/plain",
"size" : 152
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'登录系统'"
}, {
"name" : "case",
"value" : "{'username': 'admin', 'password': '#!$!@#!@#'}"
}, {
"name" : "expect",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'application/json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-password为特殊字符'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "33a6aad0be61808b.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': '#!$!@#!@#'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password为特殊字符'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "3b4a2d332e08861d",
"name" : "反向用例-username短",
"fullName" : "test_case.test_zs.test_bpm.TestBpm#test_bpm",
"historyId" : "9fada88040bb3a56478e7bc4c4701463",
"time" : {
"start" : 1725520494989,
"stop" : 1725520495010,
"duration" : 21
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CFB0>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username短', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mediatype = 'json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'a'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CFB0>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username短', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mediatype = 'json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'a'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494790,
"stop" : 1725520494820,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req",
"time" : {
"start" : 1725520494759,
"stop" : 1725520494790,
"duration" : 31
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CFB0>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username短', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mediatype = 'json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'a'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CFB0>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username短', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mediatype = 'json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'a'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "5cd15c26e7130dd7",
"name" : "log",
"source" : "5cd15c26e7130dd7.txt",
"type" : "text/plain",
"size" : 497
}, {
"uid" : "ca733d5c1488e531",
"name" : "stdout",
"source" : "ca733d5c1488e531.txt",
"type" : "text/plain",
"size" : 299
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'登录系统'"
}, {
"name" : "case",
"value" : "{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}"
}, {
"name" : "expect",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-username短'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "3b4a2d332e08861d.json",
"parameterValues" : [ "'登录系统'", "{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username短'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "44660cf178eb224b",
"name" : "反向用例-password为空",
"fullName" : "test_case.test_zs.test_bpm.TestBpm#test_bpm",
"historyId" : "809195301699e26f57c8ee9f0791d6f7",
"time" : {
"start" : 1725520495080,
"stop" : 1725520495100,
"duration" : 20
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494790,
"stop" : 1725520494820,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req",
"time" : {
"start" : 1725520494759,
"stop" : 1725520494790,
"duration" : 31
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "cd5ccd8fee7de127",
"name" : "log",
"source" : "cd5ccd8fee7de127.txt",
"type" : "text/plain",
"size" : 313
}, {
"uid" : "c7d6501e7db1a5de",
"name" : "stdout",
"source" : "c7d6501e7db1a5de.txt",
"type" : "text/plain",
"size" : 143
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'登录系统'"
}, {
"name" : "case",
"value" : "{'username': 'admin', 'password': ''}"
}, {
"name" : "expect",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'application/json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-password为空'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "44660cf178eb224b.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password为空'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "49b07535811d1a30",
"name" : "正向用例",
"fullName" : "test_case.test_ls.test_bpm.TestBpm#test_bpm",
"historyId" : "ad0d98c065410ada27395bc7b04272f2",
"time" : {
"start" : 1725520494200,
"stop" : 1725520494240,
"duration" : 40
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A22784FA40>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '添加维度', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', method = 'post'\nmediatype = 'application/json'\ncase = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}\nexpect = {'message': '添加维度成功'}, sql = {'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}\nsql_type = 'delete', update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '添加维度成功' == '添加维度成功!'\nE \nE - 添加维度成功!\nE ? -\nE + 添加维度成功\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A22784FA40>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '添加维度', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', method = 'post'\nmediatype = 'application/json'\ncase = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}\nexpect = {'message': '添加维度成功'}, sql = {'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}\nsql_type = 'delete', update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "fix_req",
"time" : {
"start" : 1725520494110,
"stop" : 1725520494170,
"duration" : 60
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494170,
"stop" : 1725520494200,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A22784FA40>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '添加维度', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', method = 'post'\nmediatype = 'application/json'\ncase = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}\nexpect = {'message': '添加维度成功'}, sql = {'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}\nsql_type = 'delete', update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '添加维度成功' == '添加维度成功!'\nE \nE - 添加维度成功!\nE ? -\nE + 添加维度成功\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A22784FA40>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '添加维度', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', method = 'post'\nmediatype = 'application/json'\ncase = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}\nexpect = {'message': '添加维度成功'}, sql = {'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}\nsql_type = 'delete', update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "f8a77ab0847e230f",
"name" : "log",
"source" : "f8a77ab0847e230f.txt",
"type" : "text/plain",
"size" : 390
}, {
"uid" : "b4f8800d99bc4eeb",
"name" : "stdout",
"source" : "b4f8800d99bc4eeb.txt",
"type" : "text/plain",
"size" : 468
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "添加维度"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_ls"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_ls.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'添加维度'"
}, {
"name" : "case",
"value" : "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}"
}, {
"name" : "expect",
"value" : "{'message': '添加维度成功'}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "mediatype",
"value" : "'application/json'"
}, {
"name" : "method",
"value" : "'post'"
}, {
"name" : "module",
"value" : "'维度管理'"
}, {
"name" : "sql",
"value" : "{'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}"
}, {
"name" : "sql_type",
"value" : "'delete'"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "49b07535811d1a30.json",
"parameterValues" : [ "'添加维度'", "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}", "{'message': '添加维度成功'}", "'高'", "'application/json'", "'post'", "'维度管理'", "{'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}", "'delete'", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'" ]
}
\ No newline at end of file
{
"uid" : "6e105ca29181843b",
"name" : "反向用例-password错误",
"fullName" : "test_case.test_zs.test_bpm.TestBpm#test_bpm",
"historyId" : "5b162cdf7f15b6d94c7ced620df79c0a",
"time" : {
"start" : 1725520495224,
"stop" : 1725520495260,
"duration" : 36
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D340>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password错误', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ', 'username': 'admin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == None\nE + where None = <built-in method get of dict object at 0x000001A227EE86C0>('message')\nE + where <built-in method get of dict object at 0x000001A227EE86C0> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D340>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password错误', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ', 'username': 'admin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494790,
"stop" : 1725520494820,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req",
"time" : {
"start" : 1725520494759,
"stop" : 1725520494790,
"duration" : 31
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D340>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password错误', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ', 'username': 'admin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == None\nE + where None = <built-in method get of dict object at 0x000001A227EE86C0>('message')\nE + where <built-in method get of dict object at 0x000001A227EE86C0> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D340>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password错误', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ', 'username': 'admin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "e056cae573064fdd",
"name" : "log",
"source" : "e056cae573064fdd.txt",
"type" : "text/plain",
"size" : 733
}, {
"uid" : "2591a486f8cb45ca",
"name" : "stdout",
"source" : "2591a486f8cb45ca.txt",
"type" : "text/plain",
"size" : 314
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'登录系统'"
}, {
"name" : "case",
"value" : "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}"
}, {
"name" : "expect",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'application/json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-password错误'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "6e105ca29181843b.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password错误'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "7833289b8f2de5e6",
"name" : "反向用例-username为空",
"fullName" : "test_case.test_zs.test_bpm.TestBpm#test_bpm",
"historyId" : "96d15987df335819396763853c7aad57",
"time" : {
"start" : 1725520494860,
"stop" : 1725520494879,
"duration" : 19
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D43D10>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username为空', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': ''}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D43D10>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username为空', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': ''}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494790,
"stop" : 1725520494820,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req",
"time" : {
"start" : 1725520494759,
"stop" : 1725520494790,
"duration" : 31
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D43D10>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username为空', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': ''}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D43D10>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username为空', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': ''}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "c5dcf99c4869a8fa",
"name" : "log",
"source" : "c5dcf99c4869a8fa.txt",
"type" : "text/plain",
"size" : 496
}, {
"uid" : "ff55a775e2efffe5",
"name" : "stdout",
"source" : "ff55a775e2efffe5.txt",
"type" : "text/plain",
"size" : 310
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'登录系统'"
}, {
"name" : "case",
"value" : "{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}"
}, {
"name" : "expect",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'application/json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-username为空'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "7833289b8f2de5e6.json",
"parameterValues" : [ "'登录系统'", "{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username为空'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "783749a26a82f10d",
"name" : "正向用例",
"fullName" : "test_case.test_ls.test_bpm.TestBpm#test_bpm",
"historyId" : "5cd7c3a8ec42d2cf48bda1074ed73e15",
"time" : {
"start" : 1725520494539,
"stop" : 1725520494580,
"duration" : 41
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227832630>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '组织管理', api = '添加组织', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', method = 'POST', mediatype = 'json'\ncase = {'code': 'testAddOrg', 'demId': '1831591367190093824', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect = {'message': '添加组织成功'}\nsql = {'delete': 'delete from uc_org where CODE_=\"testAddOrg\";', 'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; '}\nsql_type = 'delete|select', update_key = 'demId'\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227832630>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '组织管理', api = '添加组织', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', method = 'POST', mediatype = 'json'\ncase = {'code': 'testAddOrg', 'demId': '1831591367190093824', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect = {'message': '添加组织成功'}\nsql = {'delete': 'delete from uc_org where CODE_=\"testAddOrg\";', 'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; '}\nsql_type = 'delete|select', update_key = 'demId'\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "fix_req",
"time" : {
"start" : 1725520494110,
"stop" : 1725520494170,
"duration" : 60
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494170,
"stop" : 1725520494200,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227832630>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '组织管理', api = '添加组织', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', method = 'POST', mediatype = 'json'\ncase = {'code': 'testAddOrg', 'demId': '1831591367190093824', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect = {'message': '添加组织成功'}\nsql = {'delete': 'delete from uc_org where CODE_=\"testAddOrg\";', 'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; '}\nsql_type = 'delete|select', update_key = 'demId'\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227832630>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '组织管理', api = '添加组织', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', method = 'POST', mediatype = 'json'\ncase = {'code': 'testAddOrg', 'demId': '1831591367190093824', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect = {'message': '添加组织成功'}\nsql = {'delete': 'delete from uc_org where CODE_=\"testAddOrg\";', 'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; '}\nsql_type = 'delete|select', update_key = 'demId'\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "bc22dd6a40fcaf99",
"name" : "log",
"source" : "bc22dd6a40fcaf99.txt",
"type" : "text/plain",
"size" : 454
}, {
"uid" : "b80d2c575763c60f",
"name" : "stdout",
"source" : "b80d2c575763c60f.txt",
"type" : "text/plain",
"size" : 418
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "添加组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_ls"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_ls.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'添加组织'"
}, {
"name" : "case",
"value" : "{'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"
}, {
"name" : "expect",
"value" : "{'message': '添加组织成功'}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "mediatype",
"value" : "'json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'组织管理'"
}, {
"name" : "sql",
"value" : "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; ', 'delete': 'delete from uc_org where CODE_=\"testAddOrg\";'}"
}, {
"name" : "sql_type",
"value" : "'delete|select'"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "'demId'"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "783749a26a82f10d.json",
"parameterValues" : [ "'添加组织'", "{'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "{'message': '添加组织成功'}", "'高'", "'json'", "'POST'", "'组织管理'", "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; ', 'delete': 'delete from uc_org where CODE_=\"testAddOrg\";'}", "'delete|select'", "'正向用例'", "'demId'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'" ]
}
\ No newline at end of file
{
"uid" : "88ba289c395eb936",
"name" : "正向用例",
"fullName" : "test_case.test_ls.test_bpm.TestBpm#test_bpm",
"historyId" : "f699ffa37d12708daf0e7085e5c0c916",
"time" : {
"start" : 1725520494715,
"stop" : 1725520494737,
"duration" : 22
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227D42030>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '根据维度编码删除维度'\ntitle = '正向用例', level = '中', url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', method = 'delete'\nmediatype = 'query', case = {'ids': '1831591367190093824'}, expect = {'message': '删除维度成功!'}\nsql = {'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}, sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功!' == '【requestsAdd...度下存在组织,不允许删除 '\nE \nE - 【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 \nE + 删除维度成功!\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227D42030>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '根据维度编码删除维度'\ntitle = '正向用例', level = '中', url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', method = 'delete'\nmediatype = 'query', case = {'ids': '1831591367190093824'}, expect = {'message': '删除维度成功!'}\nsql = {'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}, sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "fix_req",
"time" : {
"start" : 1725520494110,
"stop" : 1725520494170,
"duration" : 60
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494170,
"stop" : 1725520494200,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227D42030>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '根据维度编码删除维度'\ntitle = '正向用例', level = '中', url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', method = 'delete'\nmediatype = 'query', case = {'ids': '1831591367190093824'}, expect = {'message': '删除维度成功!'}\nsql = {'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}, sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功!' == '【requestsAdd...度下存在组织,不允许删除 '\nE \nE - 【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 \nE + 删除维度成功!\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227D42030>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '根据维度编码删除维度'\ntitle = '正向用例', level = '中', url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', method = 'delete'\nmediatype = 'query', case = {'ids': '1831591367190093824'}, expect = {'message': '删除维度成功!'}\nsql = {'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}, sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "e7d84885bf99ed09",
"name" : "log",
"source" : "e7d84885bf99ed09.txt",
"type" : "text/plain",
"size" : 380
}, {
"uid" : "27818b44119cf099",
"name" : "stdout",
"source" : "27818b44119cf099.txt",
"type" : "text/plain",
"size" : 220
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "根据维度编码删除维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_ls"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_ls.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'根据维度编码删除维度'"
}, {
"name" : "case",
"value" : "{'ids': '需要更新'}"
}, {
"name" : "expect",
"value" : "{'message': '删除维度成功!'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'query'"
}, {
"name" : "method",
"value" : "'delete'"
}, {
"name" : "module",
"value" : "'维度管理'"
}, {
"name" : "sql",
"value" : "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}"
}, {
"name" : "sql_type",
"value" : "'select'"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "'ids'"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "88ba289c395eb936.json",
"parameterValues" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "{'message': '删除维度成功!'}", "'中'", "'query'", "'delete'", "'维度管理'", "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}", "'select'", "'正向用例'", "'ids'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'" ]
}
\ No newline at end of file
{
"uid" : "95e6c1c9e1e426c1",
"name" : "登录的正向用例",
"fullName" : "test_case.test_zs.test_bpm.TestBpm#test_bpm",
"historyId" : "3cf62095b633d2ac12f698dc26617592",
"time" : {
"start" : 1725520494820,
"stop" : 1725520494849,
"duration" : 29
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494790,
"stop" : 1725520494820,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req",
"time" : {
"start" : 1725520494759,
"stop" : 1725520494790,
"duration" : 31
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "1dd0741009ef9660",
"name" : "log",
"source" : "1dd0741009ef9660.txt",
"type" : "text/plain",
"size" : 802
}, {
"uid" : "6be1f7f393a4e95",
"name" : "stdout",
"source" : "6be1f7f393a4e95.txt",
"type" : "text/plain",
"size" : 551
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'登录系统'"
}, {
"name" : "case",
"value" : "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}"
}, {
"name" : "expect",
"value" : "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "mediatype",
"value" : "'application/json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'登录的正向用例'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "95e6c1c9e1e426c1.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}", "'高'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'登录的正向用例'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "9b1d98ad16b8b64f",
"name" : "正向用例",
"fullName" : "test_case.test_ls.test_bpm.TestBpm#test_bpm",
"historyId" : "8ff0962fa70a3a5c07c3902d49b336b6",
"time" : {
"start" : 1725520494680,
"stop" : 1725520494690,
"duration" : 10
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227829E80>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '组织管理', api = '删除组织', title = '正向用例'\nlevel = '中', url = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', method = 'POST', mediatype = 'json'\ncase = 'testAddOrg', expect = {'message': '删除组织成功!'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE assert '删除组织成功!' == '部分删除成功,其中编码为...dOrg\"】的组织不存在;'\nE \nE - 部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;\nE + 删除组织成功!\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227829E80>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '组织管理', api = '删除组织', title = '正向用例'\nlevel = '中', url = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', method = 'POST', mediatype = 'json'\ncase = 'testAddOrg', expect = {'message': '删除组织成功!'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "fix_req",
"time" : {
"start" : 1725520494110,
"stop" : 1725520494170,
"duration" : 60
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494170,
"stop" : 1725520494200,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227829E80>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '组织管理', api = '删除组织', title = '正向用例'\nlevel = '中', url = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', method = 'POST', mediatype = 'json'\ncase = 'testAddOrg', expect = {'message': '删除组织成功!'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE assert '删除组织成功!' == '部分删除成功,其中编码为...dOrg\"】的组织不存在;'\nE \nE - 部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;\nE + 删除组织成功!\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227829E80>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '组织管理', api = '删除组织', title = '正向用例'\nlevel = '中', url = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', method = 'POST', mediatype = 'json'\ncase = 'testAddOrg', expect = {'message': '删除组织成功!'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "481e8f613c1c7caf",
"name" : "log",
"source" : "481e8f613c1c7caf.txt",
"type" : "text/plain",
"size" : 346
}, {
"uid" : "c9f7d9f2186d05c1",
"name" : "stdout",
"source" : "c9f7d9f2186d05c1.txt",
"type" : "text/plain",
"size" : 124
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "删除组织"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_ls"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_ls.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'删除组织'"
}, {
"name" : "case",
"value" : "'testAddOrg'"
}, {
"name" : "expect",
"value" : "{'message': '删除组织成功!'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'组织管理'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "9b1d98ad16b8b64f.json",
"parameterValues" : [ "'删除组织'", "'testAddOrg'", "{'message': '删除组织成功!'}", "'中'", "'json'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'" ]
}
\ No newline at end of file
{
"uid" : "9dc117427e7a646c",
"name" : "正向用例",
"fullName" : "test_case.test_ls.test_bpm.TestBpm#test_bpm",
"historyId" : "ea5ac19be3b01d9a35dea05e7887af1e",
"time" : {
"start" : 1725520494494,
"stop" : 1725520494515,
"duration" : 21
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A22780A210>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '更新维度', title = '正向用例'\nlevel = '中', url = 'http://36.139.193.99:8088/api/demension/v1/dem/updateDem', method = 'put', mediatype = 'json'\ncase = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}\nexpect = {'message': '更新维度成功'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '更新维度成功' == '更新维度成功!'\nE \nE - 更新维度成功!\nE ? -\nE + 更新维度成功\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A22780A210>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '更新维度', title = '正向用例'\nlevel = '中', url = 'http://36.139.193.99:8088/api/demension/v1/dem/updateDem', method = 'put', mediatype = 'json'\ncase = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}\nexpect = {'message': '更新维度成功'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "fix_req",
"time" : {
"start" : 1725520494110,
"stop" : 1725520494170,
"duration" : 60
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494170,
"stop" : 1725520494200,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A22780A210>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '更新维度', title = '正向用例'\nlevel = '中', url = 'http://36.139.193.99:8088/api/demension/v1/dem/updateDem', method = 'put', mediatype = 'json'\ncase = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}\nexpect = {'message': '更新维度成功'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '更新维度成功' == '更新维度成功!'\nE \nE - 更新维度成功!\nE ? -\nE + 更新维度成功\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A22780A210>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '更新维度', title = '正向用例'\nlevel = '中', url = 'http://36.139.193.99:8088/api/demension/v1/dem/updateDem', method = 'put', mediatype = 'json'\ncase = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}\nexpect = {'message': '更新维度成功'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "f64acfcb2bcd879b",
"name" : "log",
"source" : "f64acfcb2bcd879b.txt",
"type" : "text/plain",
"size" : 384
}, {
"uid" : "72c3762a7de27006",
"name" : "stdout",
"source" : "72c3762a7de27006.txt",
"type" : "text/plain",
"size" : 217
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "维度管理"
}, {
"name" : "story",
"value" : "更新维度"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_ls"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_ls.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'更新维度'"
}, {
"name" : "case",
"value" : "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}"
}, {
"name" : "expect",
"value" : "{'message': '更新维度成功'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'json'"
}, {
"name" : "method",
"value" : "'put'"
}, {
"name" : "module",
"value" : "'维度管理'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "9dc117427e7a646c.json",
"parameterValues" : [ "'更新维度'", "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}", "{'message': '更新维度成功'}", "'中'", "'json'", "'put'", "'维度管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'" ]
}
\ No newline at end of file
{
"uid" : "aca015279c84806c",
"name" : "正向用例",
"fullName" : "test_case.test_zs.test_bpm.TestBpm#test_bpm",
"historyId" : "37a7367214ca0b695fefdc18729f45c3",
"time" : {
"start" : 1725520495280,
"stop" : 1725520495300,
"duration" : 20
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CF50>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '刷新token', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/refresh', method = 'GET', mediatype = None, case = None\nexpect = {'message': '刷新token成功'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x000001A227F14B00>('message')\nE + where <built-in method get of dict object at 0x000001A227F14B00> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CF50>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '刷新token', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/refresh', method = 'GET', mediatype = None, case = None\nexpect = {'message': '刷新token成功'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494790,
"stop" : 1725520494820,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req",
"time" : {
"start" : 1725520494759,
"stop" : 1725520494790,
"duration" : 31
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CF50>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '刷新token', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/refresh', method = 'GET', mediatype = None, case = None\nexpect = {'message': '刷新token成功'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x000001A227F14B00>('message')\nE + where <built-in method get of dict object at 0x000001A227F14B00> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CF50>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '刷新token', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/refresh', method = 'GET', mediatype = None, case = None\nexpect = {'message': '刷新token成功'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "12346814ecaa044",
"name" : "log",
"source" : "12346814ecaa044.txt",
"type" : "text/plain",
"size" : 487
}, {
"uid" : "bd5b56732f9b6e41",
"name" : "stdout",
"source" : "bd5b56732f9b6e41.txt",
"type" : "text/plain",
"size" : 96
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "刷新token"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'刷新token'"
}, {
"name" : "case",
"value" : "None"
}, {
"name" : "expect",
"value" : "{'message': '刷新token成功'}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "mediatype",
"value" : "None"
}, {
"name" : "method",
"value" : "'GET'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/refresh'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "aca015279c84806c.json",
"parameterValues" : [ "'刷新token'", "None", "{'message': '刷新token成功'}", "'高'", "None", "'GET'", "'认证接口'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/refresh'" ]
}
\ No newline at end of file
{
"uid" : "bd0d986e76fe6e85",
"name" : "反向用例-password过短",
"fullName" : "test_case.test_zs.test_bpm.TestBpm#test_bpm",
"historyId" : "fd13e937ace41ca384abd631bec03e1c",
"time" : {
"start" : 1725520495184,
"stop" : 1725520495199,
"duration" : 15
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D220>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password过短', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json', case = {'password': '123456', 'username': 'admin'}, expect = {'message': '账号或密码错误'}\nsql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D220>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password过短', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json', case = {'password': '123456', 'username': 'admin'}, expect = {'message': '账号或密码错误'}\nsql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494790,
"stop" : 1725520494820,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req",
"time" : {
"start" : 1725520494759,
"stop" : 1725520494790,
"duration" : 31
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D220>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password过短', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json', case = {'password': '123456', 'username': 'admin'}, expect = {'message': '账号或密码错误'}\nsql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D220>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password过短', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json', case = {'password': '123456', 'username': 'admin'}, expect = {'message': '账号或密码错误'}\nsql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "9e87e9fa97ed3639",
"name" : "log",
"source" : "9e87e9fa97ed3639.txt",
"type" : "text/plain",
"size" : 356
}, {
"uid" : "57f92811fd5f5ee1",
"name" : "stdout",
"source" : "57f92811fd5f5ee1.txt",
"type" : "text/plain",
"size" : 149
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'登录系统'"
}, {
"name" : "case",
"value" : "{'username': 'admin', 'password': '123456'}"
}, {
"name" : "expect",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'application/json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-password过短'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "bd0d986e76fe6e85.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': '123456'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password过短'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "bd9013480db6d913",
"name" : "反向用例-password过长",
"fullName" : "test_case.test_zs.test_bpm.TestBpm#test_bpm",
"historyId" : "3b05de0aaf7e67ff7e60d6f8ad9108f1",
"time" : {
"start" : 1725520495145,
"stop" : 1725520495160,
"duration" : 15
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D160>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password过长', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'post'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...aEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn', 'username': 'admin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D160>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password过长', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'post'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...aEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn', 'username': 'admin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494790,
"stop" : 1725520494820,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req",
"time" : {
"start" : 1725520494759,
"stop" : 1725520494790,
"duration" : 31
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D160>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password过长', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'post'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...aEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn', 'username': 'admin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D160>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password过长', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'post'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...aEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn', 'username': 'admin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "c5cce719310c4056",
"name" : "log",
"source" : "c5cce719310c4056.txt",
"type" : "text/plain",
"size" : 960
}, {
"uid" : "bb3f8a2e09a81d7",
"name" : "stdout",
"source" : "bb3f8a2e09a81d7.txt",
"type" : "text/plain",
"size" : 753
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'登录系统'"
}, {
"name" : "case",
"value" : "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}"
}, {
"name" : "expect",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'application/json'"
}, {
"name" : "method",
"value" : "'post'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-password过长'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "bd9013480db6d913.json",
"parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'post'", "'认证接口'", "None", "None", "'反向用例-password过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "c3664ee960d4b97",
"name" : "反向用例-username过长",
"fullName" : "test_case.test_zs.test_bpm.TestBpm#test_bpm",
"historyId" : "7d90d1e6cf871c9dc3f9faa708380fdc",
"time" : {
"start" : 1725520494949,
"stop" : 1725520494970,
"duration" : 21
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D280>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username过长', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminadminadminadminadminadminadminadminadmin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D280>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username过长', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminadminadminadminadminadminadminadminadmin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494790,
"stop" : 1725520494820,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req",
"time" : {
"start" : 1725520494759,
"stop" : 1725520494790,
"duration" : 31
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D280>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username过长', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminadminadminadminadminadminadminadminadmin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D280>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username过长', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminadminadminadminadminadminadminadminadmin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "1a4529dc6f5c756a",
"name" : "log",
"source" : "1a4529dc6f5c756a.txt",
"type" : "text/plain",
"size" : 541
}, {
"uid" : "398d6be7fd9d8aee",
"name" : "stdout",
"source" : "398d6be7fd9d8aee.txt",
"type" : "text/plain",
"size" : 355
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'登录系统'"
}, {
"name" : "case",
"value" : "{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}"
}, {
"name" : "expect",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'application/json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-username过长'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "c3664ee960d4b97.json",
"parameterValues" : [ "'登录系统'", "{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "c601d34b24dbc26d",
"name" : "反向用例-username为特殊字符",
"fullName" : "test_case.test_zs.test_bpm.TestBpm#test_bpm",
"historyId" : "ed0c1ac1c1e669d1cf8e017705bc1825",
"time" : {
"start" : 1725520494904,
"stop" : 1725520494930,
"duration" : 26
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CD70>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username为特殊字符', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': '#!$!@#!@#'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CD70>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username为特殊字符', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': '#!$!@#!@#'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494790,
"stop" : 1725520494820,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req",
"time" : {
"start" : 1725520494759,
"stop" : 1725520494790,
"duration" : 31
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CD70>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username为特殊字符', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': '#!$!@#!@#'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CD70>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username为特殊字符', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': '#!$!@#!@#'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "6b0883d336a55215",
"name" : "log",
"source" : "6b0883d336a55215.txt",
"type" : "text/plain",
"size" : 505
}, {
"uid" : "559fcabb9e37a5b1",
"name" : "stdout",
"source" : "559fcabb9e37a5b1.txt",
"type" : "text/plain",
"size" : 319
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'登录系统'"
}, {
"name" : "case",
"value" : "{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}"
}, {
"name" : "expect",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'application/json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-username为特殊字符'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "c601d34b24dbc26d.json",
"parameterValues" : [ "'登录系统'", "{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username为特殊字符'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "db0d2c6fcc60c963",
"name" : "正向用例",
"fullName" : "test_case.test_ls.test_bpm.TestBpm#test_bpm",
"historyId" : "8194377a24bf78e492b4fb8e4bfada20",
"time" : {
"start" : 1725520494645,
"stop" : 1725520494670,
"duration" : 25
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "fix_req",
"time" : {
"start" : 1725520494110,
"stop" : 1725520494170,
"duration" : 60
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494170,
"stop" : 1725520494200,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "1e65fce0e2921ccf",
"name" : "log",
"source" : "1e65fce0e2921ccf.txt",
"type" : "text/plain",
"size" : 401
}, {
"uid" : "954ed2120eedf701",
"name" : "stdout",
"source" : "954ed2120eedf701.txt",
"type" : "text/plain",
"size" : 239
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "保存组织参数"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_ls"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_ls.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'保存组织参数'"
}, {
"name" : "case",
"value" : "{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]}"
}, {
"name" : "expect",
"value" : "{'message': '保存组织参数成功!'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'query|json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'组织管理'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "db0d2c6fcc60c963.json",
"parameterValues" : [ "'保存组织参数'", "{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]}", "{'message': '保存组织参数成功!'}", "'中'", "'query|json'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'" ]
}
\ No newline at end of file
{
"uid" : "e9b83a12e727561b",
"name" : "正向用例",
"fullName" : "test_case.test_ls.test_bpm.TestBpm#test_bpm",
"historyId" : "8404e81faa4b72bac8c00019b532bb3c",
"time" : {
"start" : 1725520494600,
"stop" : 1725520494635,
"duration" : 35
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "passed",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "fix_req",
"time" : {
"start" : 1725520494110,
"stop" : 1725520494170,
"duration" : 60
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494170,
"stop" : 1725520494200,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "passed",
"steps" : [ ],
"attachments" : [ {
"uid" : "82ece5e69d6a083",
"name" : "log",
"source" : "82ece5e69d6a083.txt",
"type" : "text/plain",
"size" : 320
}, {
"uid" : "9fb33dcd60315e4f",
"name" : "stdout",
"source" : "9fb33dcd60315e4f.txt",
"type" : "text/plain",
"size" : 168
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "组织管理"
}, {
"name" : "story",
"value" : "用户加入组织"
}, {
"name" : "severity",
"value" : "高"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_ls"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_ls.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'用户加入组织'"
}, {
"name" : "case",
"value" : "{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'}"
}, {
"name" : "expect",
"value" : "{'message': '加入成功'}"
}, {
"name" : "level",
"value" : "'高'"
}, {
"name" : "mediatype",
"value" : "'query'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'组织管理'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'正向用例'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ ],
"tags" : [ ]
},
"source" : "e9b83a12e727561b.json",
"parameterValues" : [ "'用户加入组织'", "{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'}", "{'message': '加入成功'}", "'高'", "'query'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg'" ]
}
\ No newline at end of file
{
"uid" : "ef5a4395bfb3ce69",
"name" : "反向用例-username错误",
"fullName" : "test_case.test_zs.test_bpm.TestBpm#test_bpm",
"historyId" : "b05b6b6278e12025b2bc0c65dc94032b",
"time" : {
"start" : 1725520495037,
"stop" : 1725520495059,
"duration" : 22
},
"description" : "测试用例",
"descriptionHtml" : "<p>测试用例</p>\n",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CA70>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username错误', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminxyz'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CA70>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username错误', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminxyz'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"flaky" : false,
"newFailed" : false,
"beforeStages" : [ {
"name" : "_session_faker",
"time" : {
"start" : 1725520493860,
"stop" : 1725520494110,
"duration" : 250
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_db",
"time" : {
"start" : 1725520494790,
"stop" : 1725520494820,
"duration" : 30
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req",
"time" : {
"start" : 1725520494759,
"stop" : 1725520494790,
"duration" : 31
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"testStage" : {
"description" : "测试用例",
"status" : "failed",
"statusMessage" : "AssertionError: 断言失败",
"statusTrace" : "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CA70>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username错误', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminxyz'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CA70>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username错误', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminxyz'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError",
"steps" : [ ],
"attachments" : [ {
"uid" : "168a3aa11d1b2b0c",
"name" : "log",
"source" : "168a3aa11d1b2b0c.txt",
"type" : "text/plain",
"size" : 504
}, {
"uid" : "2785ec8124972b8",
"name" : "stdout",
"source" : "2785ec8124972b8.txt",
"type" : "text/plain",
"size" : 318
} ],
"parameters" : [ ],
"attachmentsCount" : 2,
"shouldDisplayMessage" : true,
"stepsCount" : 0,
"hasContent" : true
},
"afterStages" : [ {
"name" : "fix_db::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
}, {
"name" : "fix_req::0",
"time" : {
"start" : 1725520495320,
"stop" : 1725520495320,
"duration" : 0
},
"status" : "passed",
"steps" : [ ],
"attachments" : [ ],
"parameters" : [ ],
"attachmentsCount" : 0,
"shouldDisplayMessage" : false,
"stepsCount" : 0,
"hasContent" : false
} ],
"labels" : [ {
"name" : "feature",
"value" : "认证接口"
}, {
"name" : "story",
"value" : "登录系统"
}, {
"name" : "severity",
"value" : "中"
}, {
"name" : "epic",
"value" : "BPM项目-Demo"
}, {
"name" : "parentSuite",
"value" : "test_case.test_zs"
}, {
"name" : "suite",
"value" : "test_bpm"
}, {
"name" : "subSuite",
"value" : "TestBpm"
}, {
"name" : "host",
"value" : "DESKTOP-0FSM5AH"
}, {
"name" : "thread",
"value" : "26776-MainThread"
}, {
"name" : "framework",
"value" : "pytest"
}, {
"name" : "language",
"value" : "cpython3"
}, {
"name" : "package",
"value" : "test_case.test_zs.test_bpm"
}, {
"name" : "resultFormat",
"value" : "allure2"
} ],
"parameters" : [ {
"name" : "api",
"value" : "'登录系统'"
}, {
"name" : "case",
"value" : "{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}"
}, {
"name" : "expect",
"value" : "{'message': '账号或密码错误'}"
}, {
"name" : "level",
"value" : "'中'"
}, {
"name" : "mediatype",
"value" : "'application/json'"
}, {
"name" : "method",
"value" : "'POST'"
}, {
"name" : "module",
"value" : "'认证接口'"
}, {
"name" : "sql",
"value" : "None"
}, {
"name" : "sql_type",
"value" : "None"
}, {
"name" : "title",
"value" : "'反向用例-username错误'"
}, {
"name" : "update_key",
"value" : "None"
}, {
"name" : "url",
"value" : "'http://36.139.193.99:8088/auth'"
} ],
"links" : [ ],
"hidden" : false,
"retry" : false,
"extra" : {
"severity" : "normal",
"retries" : [ ],
"categories" : [ {
"name" : "Product defects",
"matchedStatuses" : [ ],
"flaky" : false
} ],
"tags" : [ ]
},
"source" : "ef5a4395bfb3ce69.json",
"parameterValues" : [ "'登录系统'", "{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username错误'", "None", "'http://36.139.193.99:8088/auth'" ]
}
\ No newline at end of file
{
"uid" : "ab17fc5a4eb3bca4b216b548c7f9fcbc",
"name" : "timeline",
"children" : [ {
"name" : "DESKTOP-0FSM5AH",
"children" : [ {
"name" : "26776-MainThread",
"children" : [ {
"name" : "反向用例-password为特殊字符",
"uid" : "33a6aad0be61808b",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "passed",
"time" : {
"start" : 1725520495115,
"stop" : 1725520495140,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '#!$!@#!@#'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password为特殊字符'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password为空",
"uid" : "44660cf178eb224b",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "passed",
"time" : {
"start" : 1725520495080,
"stop" : 1725520495100,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': ''}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password为空'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "登录的正向用例",
"uid" : "95e6c1c9e1e426c1",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "passed",
"time" : {
"start" : 1725520494820,
"stop" : 1725520494849,
"duration" : 29
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}", "'高'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'登录的正向用例'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password过长",
"uid" : "bd9013480db6d913",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520495145,
"stop" : 1725520495160,
"duration" : 15
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'post'", "'认证接口'", "None", "None", "'反向用例-password过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-password过短",
"uid" : "bd0d986e76fe6e85",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520495184,
"stop" : 1725520495199,
"duration" : 15
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': '123456'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password过短'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "正向用例",
"uid" : "9b1d98ad16b8b64f",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520494680,
"stop" : 1725520494690,
"duration" : 10
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'删除组织'", "'testAddOrg'", "{'message': '删除组织成功!'}", "'中'", "'json'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'" ]
}, {
"name" : "正向用例",
"uid" : "88ba289c395eb936",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520494715,
"stop" : 1725520494737,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'根据维度编码删除维度'", "{'ids': '需要更新'}", "{'message': '删除维度成功!'}", "'中'", "'query'", "'delete'", "'维度管理'", "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}", "'select'", "'正向用例'", "'ids'", "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'" ]
}, {
"name" : "反向用例-username为空",
"uid" : "7833289b8f2de5e6",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520494860,
"stop" : 1725520494879,
"duration" : 19
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username为空'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "正向用例",
"uid" : "9dc117427e7a646c",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520494494,
"stop" : 1725520494515,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'更新维度'", "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}", "{'message': '更新维度成功'}", "'中'", "'json'", "'put'", "'维度管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'" ]
}, {
"name" : "反向用例-username为特殊字符",
"uid" : "c601d34b24dbc26d",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520494904,
"stop" : 1725520494930,
"duration" : 26
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username为特殊字符'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "反向用例-username短",
"uid" : "3b4a2d332e08861d",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520494989,
"stop" : 1725520495010,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username短'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "正向用例",
"uid" : "aca015279c84806c",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520495280,
"stop" : 1725520495300,
"duration" : 20
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'刷新token'", "None", "{'message': '刷新token成功'}", "'高'", "None", "'GET'", "'认证接口'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/refresh'" ]
}, {
"name" : "反向用例-username错误",
"uid" : "ef5a4395bfb3ce69",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520495037,
"stop" : 1725520495059,
"duration" : 22
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username错误'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "正向用例",
"uid" : "49b07535811d1a30",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520494200,
"stop" : 1725520494240,
"duration" : 40
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加维度'", "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}", "{'message': '添加维度成功'}", "'高'", "'application/json'", "'post'", "'维度管理'", "{'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}", "'delete'", "'正向用例'", "None", "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'" ]
}, {
"name" : "反向用例-password错误",
"uid" : "6e105ca29181843b",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520495224,
"stop" : 1725520495260,
"duration" : 36
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-password错误'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "正向用例",
"uid" : "e9b83a12e727561b",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "passed",
"time" : {
"start" : 1725520494600,
"stop" : 1725520494635,
"duration" : 35
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'用户加入组织'", "{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'}", "{'message': '加入成功'}", "'高'", "'query'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg'" ]
}, {
"name" : "正向用例",
"uid" : "783749a26a82f10d",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520494539,
"stop" : 1725520494580,
"duration" : 41
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'添加组织'", "{'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}", "{'message': '添加组织成功'}", "'高'", "'json'", "'POST'", "'组织管理'", "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; ', 'delete': 'delete from uc_org where CODE_=\"testAddOrg\";'}", "'delete|select'", "'正向用例'", "'demId'", "'http://36.139.193.99:8088/api/org/v1/org/addOrg'" ]
}, {
"name" : "反向用例-username过长",
"uid" : "c3664ee960d4b97",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "failed",
"time" : {
"start" : 1725520494949,
"stop" : 1725520494970,
"duration" : 21
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'登录系统'", "{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}", "{'message': '账号或密码错误'}", "'中'", "'application/json'", "'POST'", "'认证接口'", "None", "None", "'反向用例-username过长'", "None", "'http://36.139.193.99:8088/auth'" ]
}, {
"name" : "正向用例",
"uid" : "db0d2c6fcc60c963",
"parentUid" : "f09f958679884da229bbaf7a91eaa438",
"status" : "passed",
"time" : {
"start" : 1725520494645,
"stop" : 1725520494670,
"duration" : 25
},
"flaky" : false,
"newFailed" : false,
"parameters" : [ "'保存组织参数'", "{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]}", "{'message': '保存组织参数成功!'}", "'中'", "'query|json'", "'POST'", "'组织管理'", "None", "None", "'正向用例'", "None", "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'" ]
} ],
"uid" : "f09f958679884da229bbaf7a91eaa438"
} ],
"uid" : "9141058e92f1dc555b83bd66b62033fd"
} ]
}
\ No newline at end of file
launch_status failed=14 1725520620000000000
launch_status broken=0 1725520620000000000
launch_status passed=5 1725520620000000000
launch_status skipped=0 1725520620000000000
launch_status unknown=0 1725520620000000000
launch_time duration=1100 1725520620000000000
launch_time min_duration=10 1725520620000000000
launch_time max_duration=41 1725520620000000000
launch_time sum_duration=463 1725520620000000000
launch_problems product_defects=14 1725520620000000000
launch_retries retries=0 1725520620000000000
launch_retries run=19 1725520620000000000
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Allure Report summary mail</title>
</head>
<body>
Mail body
</body>
</html>
launch_status_failed 14
launch_status_broken 0
launch_status_passed 5
launch_status_skipped 0
launch_status_unknown 0
launch_time_duration 1100
launch_time_min_duration 10
launch_time_max_duration 41
launch_time_sum_duration 463
launch_problems_product_defects 14
launch_retries_retries 0
launch_retries_run 19
module.exports = __webpack_public_path__ + "favicon.ico";
\ No newline at end of file
[ {
"data" : {
"Product defects" : 14
}
} ]
\ No newline at end of file
[ {
"data" : {
"duration" : 1100
}
} ]
\ No newline at end of file
[ {
"data" : {
"failed" : 14,
"broken" : 0,
"skipped" : 0,
"passed" : 5,
"unknown" : 0,
"total" : 19
}
} ]
\ No newline at end of file
{
"5cd7c3a8ec42d2cf48bda1074ed73e15" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "783749a26a82f10d",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520494539,
"stop" : 1725520494580,
"duration" : 41
}
} ]
},
"ea5ac19be3b01d9a35dea05e7887af1e" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "9dc117427e7a646c",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520494494,
"stop" : 1725520494515,
"duration" : 21
}
} ]
},
"809195301699e26f57c8ee9f0791d6f7" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "44660cf178eb224b",
"status" : "passed",
"time" : {
"start" : 1725520495080,
"stop" : 1725520495100,
"duration" : 20
}
} ]
},
"9fada88040bb3a56478e7bc4c4701463" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "3b4a2d332e08861d",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520494989,
"stop" : 1725520495010,
"duration" : 21
}
} ]
},
"96d15987df335819396763853c7aad57" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "7833289b8f2de5e6",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520494860,
"stop" : 1725520494879,
"duration" : 19
}
} ]
},
"b05b6b6278e12025b2bc0c65dc94032b" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "ef5a4395bfb3ce69",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520495037,
"stop" : 1725520495059,
"duration" : 22
}
} ]
},
"fd13e937ace41ca384abd631bec03e1c" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "bd0d986e76fe6e85",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520495184,
"stop" : 1725520495199,
"duration" : 15
}
} ]
},
"3b05de0aaf7e67ff7e60d6f8ad9108f1" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "bd9013480db6d913",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520495145,
"stop" : 1725520495160,
"duration" : 15
}
} ]
},
"5081ed40354d9c8308060f8331fc10eb" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "33a6aad0be61808b",
"status" : "passed",
"time" : {
"start" : 1725520495115,
"stop" : 1725520495140,
"duration" : 25
}
} ]
},
"37a7367214ca0b695fefdc18729f45c3" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "aca015279c84806c",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520495280,
"stop" : 1725520495300,
"duration" : 20
}
} ]
},
"3cf62095b633d2ac12f698dc26617592" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "95e6c1c9e1e426c1",
"status" : "passed",
"time" : {
"start" : 1725520494820,
"stop" : 1725520494849,
"duration" : 29
}
} ]
},
"ed0c1ac1c1e669d1cf8e017705bc1825" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "c601d34b24dbc26d",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520494904,
"stop" : 1725520494930,
"duration" : 26
}
} ]
},
"8194377a24bf78e492b4fb8e4bfada20" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "db0d2c6fcc60c963",
"status" : "passed",
"time" : {
"start" : 1725520494645,
"stop" : 1725520494670,
"duration" : 25
}
} ]
},
"f699ffa37d12708daf0e7085e5c0c916" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "88ba289c395eb936",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520494715,
"stop" : 1725520494737,
"duration" : 22
}
} ]
},
"8404e81faa4b72bac8c00019b532bb3c" : {
"statistic" : {
"failed" : 0,
"broken" : 0,
"skipped" : 0,
"passed" : 1,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "e9b83a12e727561b",
"status" : "passed",
"time" : {
"start" : 1725520494600,
"stop" : 1725520494635,
"duration" : 35
}
} ]
},
"ad0d98c065410ada27395bc7b04272f2" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "49b07535811d1a30",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520494200,
"stop" : 1725520494240,
"duration" : 40
}
} ]
},
"5b162cdf7f15b6d94c7ced620df79c0a" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "6e105ca29181843b",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520495224,
"stop" : 1725520495260,
"duration" : 36
}
} ]
},
"8ff0962fa70a3a5c07c3902d49b336b6" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "9b1d98ad16b8b64f",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520494680,
"stop" : 1725520494690,
"duration" : 10
}
} ]
},
"7d90d1e6cf871c9dc3f9faa708380fdc" : {
"statistic" : {
"failed" : 1,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 1
},
"items" : [ {
"uid" : "c3664ee960d4b97",
"status" : "failed",
"statusDetails" : "AssertionError: 断言失败",
"time" : {
"start" : 1725520494949,
"stop" : 1725520494970,
"duration" : 21
}
} ]
}
}
\ No newline at end of file
[ {
"data" : {
"run" : 19,
"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" : 1,
"items" : [ {
"uid" : "432af10f598694f0564afe99657fc764",
"name" : "BPM项目-Demo",
"statistic" : {
"failed" : 3,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 3
}
} ]
}
\ No newline at end of file
[ {
"data" : {
"Product defects" : 14
}
} ]
\ No newline at end of file
{
"total" : 1,
"items" : [ {
"uid" : "8fb3a91ba5aaf9de24cc8a92edc82b5d",
"name" : "Product defects",
"statistic" : {
"failed" : 14,
"broken" : 0,
"skipped" : 0,
"passed" : 0,
"unknown" : 0,
"total" : 14
}
} ]
}
\ No newline at end of file
[ {
"data" : {
"duration" : 1100
}
} ]
\ No newline at end of file
[ {
"uid" : "49b07535811d1a30",
"name" : "正向用例",
"time" : {
"start" : 1725520494200,
"stop" : 1725520494240,
"duration" : 40
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "db0d2c6fcc60c963",
"name" : "正向用例",
"time" : {
"start" : 1725520494645,
"stop" : 1725520494670,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "3b4a2d332e08861d",
"name" : "反向用例-username短",
"time" : {
"start" : 1725520494989,
"stop" : 1725520495010,
"duration" : 21
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "95e6c1c9e1e426c1",
"name" : "登录的正向用例",
"time" : {
"start" : 1725520494820,
"stop" : 1725520494849,
"duration" : 29
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "bd9013480db6d913",
"name" : "反向用例-password过长",
"time" : {
"start" : 1725520495145,
"stop" : 1725520495160,
"duration" : 15
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "bd0d986e76fe6e85",
"name" : "反向用例-password过短",
"time" : {
"start" : 1725520495184,
"stop" : 1725520495199,
"duration" : 15
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "783749a26a82f10d",
"name" : "正向用例",
"time" : {
"start" : 1725520494539,
"stop" : 1725520494580,
"duration" : 41
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "7833289b8f2de5e6",
"name" : "反向用例-username为空",
"time" : {
"start" : 1725520494860,
"stop" : 1725520494879,
"duration" : 19
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "c3664ee960d4b97",
"name" : "反向用例-username过长",
"time" : {
"start" : 1725520494949,
"stop" : 1725520494970,
"duration" : 21
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "aca015279c84806c",
"name" : "正向用例",
"time" : {
"start" : 1725520495280,
"stop" : 1725520495300,
"duration" : 20
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "44660cf178eb224b",
"name" : "反向用例-password为空",
"time" : {
"start" : 1725520495080,
"stop" : 1725520495100,
"duration" : 20
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "ef5a4395bfb3ce69",
"name" : "反向用例-username错误",
"time" : {
"start" : 1725520495037,
"stop" : 1725520495059,
"duration" : 22
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "9b1d98ad16b8b64f",
"name" : "正向用例",
"time" : {
"start" : 1725520494680,
"stop" : 1725520494690,
"duration" : 10
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "e9b83a12e727561b",
"name" : "正向用例",
"time" : {
"start" : 1725520494600,
"stop" : 1725520494635,
"duration" : 35
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "33a6aad0be61808b",
"name" : "反向用例-password为特殊字符",
"time" : {
"start" : 1725520495115,
"stop" : 1725520495140,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "6e105ca29181843b",
"name" : "反向用例-password错误",
"time" : {
"start" : 1725520495224,
"stop" : 1725520495260,
"duration" : 36
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "88ba289c395eb936",
"name" : "正向用例",
"time" : {
"start" : 1725520494715,
"stop" : 1725520494737,
"duration" : 22
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "9dc117427e7a646c",
"name" : "正向用例",
"time" : {
"start" : 1725520494494,
"stop" : 1725520494515,
"duration" : 21
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "c601d34b24dbc26d",
"name" : "反向用例-username为特殊字符",
"time" : {
"start" : 1725520494904,
"stop" : 1725520494930,
"duration" : 26
},
"status" : "failed",
"severity" : "normal"
} ]
\ No newline at end of file
[ {
"data" : {
"failed" : 14,
"broken" : 0,
"skipped" : 0,
"passed" : 5,
"unknown" : 0,
"total" : 19
}
} ]
\ No newline at end of file
[ {
"data" : {
"run" : 19,
"retry" : 0
}
} ]
\ No newline at end of file
[ {
"uid" : "44660cf178eb224b",
"name" : "反向用例-password为空",
"time" : {
"start" : 1725520495080,
"stop" : 1725520495100,
"duration" : 20
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "aca015279c84806c",
"name" : "正向用例",
"time" : {
"start" : 1725520495280,
"stop" : 1725520495300,
"duration" : 20
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "c3664ee960d4b97",
"name" : "反向用例-username过长",
"time" : {
"start" : 1725520494949,
"stop" : 1725520494970,
"duration" : 21
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "c601d34b24dbc26d",
"name" : "反向用例-username为特殊字符",
"time" : {
"start" : 1725520494904,
"stop" : 1725520494930,
"duration" : 26
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "9b1d98ad16b8b64f",
"name" : "正向用例",
"time" : {
"start" : 1725520494680,
"stop" : 1725520494690,
"duration" : 10
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "49b07535811d1a30",
"name" : "正向用例",
"time" : {
"start" : 1725520494200,
"stop" : 1725520494240,
"duration" : 40
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "6e105ca29181843b",
"name" : "反向用例-password错误",
"time" : {
"start" : 1725520495224,
"stop" : 1725520495260,
"duration" : 36
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "95e6c1c9e1e426c1",
"name" : "登录的正向用例",
"time" : {
"start" : 1725520494820,
"stop" : 1725520494849,
"duration" : 29
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "88ba289c395eb936",
"name" : "正向用例",
"time" : {
"start" : 1725520494715,
"stop" : 1725520494737,
"duration" : 22
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "9dc117427e7a646c",
"name" : "正向用例",
"time" : {
"start" : 1725520494494,
"stop" : 1725520494515,
"duration" : 21
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "db0d2c6fcc60c963",
"name" : "正向用例",
"time" : {
"start" : 1725520494645,
"stop" : 1725520494670,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "3b4a2d332e08861d",
"name" : "反向用例-username短",
"time" : {
"start" : 1725520494989,
"stop" : 1725520495010,
"duration" : 21
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "ef5a4395bfb3ce69",
"name" : "反向用例-username错误",
"time" : {
"start" : 1725520495037,
"stop" : 1725520495059,
"duration" : 22
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "7833289b8f2de5e6",
"name" : "反向用例-username为空",
"time" : {
"start" : 1725520494860,
"stop" : 1725520494879,
"duration" : 19
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "bd9013480db6d913",
"name" : "反向用例-password过长",
"time" : {
"start" : 1725520495145,
"stop" : 1725520495160,
"duration" : 15
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "bd0d986e76fe6e85",
"name" : "反向用例-password过短",
"time" : {
"start" : 1725520495184,
"stop" : 1725520495199,
"duration" : 15
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "e9b83a12e727561b",
"name" : "正向用例",
"time" : {
"start" : 1725520494600,
"stop" : 1725520494635,
"duration" : 35
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "783749a26a82f10d",
"name" : "正向用例",
"time" : {
"start" : 1725520494539,
"stop" : 1725520494580,
"duration" : 41
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "33a6aad0be61808b",
"name" : "反向用例-password为特殊字符",
"time" : {
"start" : 1725520495115,
"stop" : 1725520495140,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
} ]
\ No newline at end of file
[ {
"uid" : "49b07535811d1a30",
"name" : "正向用例",
"time" : {
"start" : 1725520494200,
"stop" : 1725520494240,
"duration" : 40
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "db0d2c6fcc60c963",
"name" : "正向用例",
"time" : {
"start" : 1725520494645,
"stop" : 1725520494670,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "3b4a2d332e08861d",
"name" : "反向用例-username短",
"time" : {
"start" : 1725520494989,
"stop" : 1725520495010,
"duration" : 21
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "95e6c1c9e1e426c1",
"name" : "登录的正向用例",
"time" : {
"start" : 1725520494820,
"stop" : 1725520494849,
"duration" : 29
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "bd9013480db6d913",
"name" : "反向用例-password过长",
"time" : {
"start" : 1725520495145,
"stop" : 1725520495160,
"duration" : 15
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "bd0d986e76fe6e85",
"name" : "反向用例-password过短",
"time" : {
"start" : 1725520495184,
"stop" : 1725520495199,
"duration" : 15
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "783749a26a82f10d",
"name" : "正向用例",
"time" : {
"start" : 1725520494539,
"stop" : 1725520494580,
"duration" : 41
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "7833289b8f2de5e6",
"name" : "反向用例-username为空",
"time" : {
"start" : 1725520494860,
"stop" : 1725520494879,
"duration" : 19
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "c3664ee960d4b97",
"name" : "反向用例-username过长",
"time" : {
"start" : 1725520494949,
"stop" : 1725520494970,
"duration" : 21
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "aca015279c84806c",
"name" : "正向用例",
"time" : {
"start" : 1725520495280,
"stop" : 1725520495300,
"duration" : 20
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "44660cf178eb224b",
"name" : "反向用例-password为空",
"time" : {
"start" : 1725520495080,
"stop" : 1725520495100,
"duration" : 20
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "ef5a4395bfb3ce69",
"name" : "反向用例-username错误",
"time" : {
"start" : 1725520495037,
"stop" : 1725520495059,
"duration" : 22
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "9b1d98ad16b8b64f",
"name" : "正向用例",
"time" : {
"start" : 1725520494680,
"stop" : 1725520494690,
"duration" : 10
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "e9b83a12e727561b",
"name" : "正向用例",
"time" : {
"start" : 1725520494600,
"stop" : 1725520494635,
"duration" : 35
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "33a6aad0be61808b",
"name" : "反向用例-password为特殊字符",
"time" : {
"start" : 1725520495115,
"stop" : 1725520495140,
"duration" : 25
},
"status" : "passed",
"severity" : "normal"
}, {
"uid" : "6e105ca29181843b",
"name" : "反向用例-password错误",
"time" : {
"start" : 1725520495224,
"stop" : 1725520495260,
"duration" : 36
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "88ba289c395eb936",
"name" : "正向用例",
"time" : {
"start" : 1725520494715,
"stop" : 1725520494737,
"duration" : 22
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "9dc117427e7a646c",
"name" : "正向用例",
"time" : {
"start" : 1725520494494,
"stop" : 1725520494515,
"duration" : 21
},
"status" : "failed",
"severity" : "normal"
}, {
"uid" : "c601d34b24dbc26d",
"name" : "反向用例-username为特殊字符",
"time" : {
"start" : 1725520494904,
"stop" : 1725520494930,
"duration" : 26
},
"status" : "failed",
"severity" : "normal"
} ]
\ No newline at end of file
{
"total" : 2,
"items" : [ {
"uid" : "a4a59fbb04853758dfa8a5ee7ac8d434",
"name" : "test_case.test_zs",
"statistic" : {
"failed" : 9,
"broken" : 0,
"skipped" : 0,
"passed" : 3,
"unknown" : 0,
"total" : 12
}
}, {
"uid" : "3e0462c21482aa41344d452b069ef363",
"name" : "test_case.test_ls",
"statistic" : {
"failed" : 5,
"broken" : 0,
"skipped" : 0,
"passed" : 2,
"unknown" : 0,
"total" : 7
}
} ]
}
\ No newline at end of file
{
"reportName" : "Allure Report",
"testRuns" : [ ],
"statistic" : {
"failed" : 14,
"broken" : 0,
"skipped" : 0,
"passed" : 5,
"unknown" : 0,
"total" : 19
},
"time" : {
"start" : 1725520494200,
"stop" : 1725520495300,
"duration" : 1100,
"minDuration" : 10,
"maxDuration" : 41,
"sumDuration" : 463
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{"uuid": "b00b8061-b042-402d-94a0-67946a6707f8", "befores": [{"name": "module", "status": "passed", "start": 1725520494904, "stop": 1725520494904}], "start": 1725520494904, "stop": 1725520494939}
\ No newline at end of file
{"uuid": "152c7b9f-f2ac-4ba4-99b2-8b866a6375d4", "befores": [{"name": "update_key", "status": "passed", "start": 1725520494494, "stop": 1725520494494}], "start": 1725520494494, "stop": 1725520494530}
\ No newline at end of file
{"uuid": "1172c11e-dce5-47a1-a96a-7f5267ab098f", "befores": [{"name": "update_key", "status": "passed", "start": 1725520494645, "stop": 1725520494645}], "start": 1725520494645, "stop": 1725520494670}
\ No newline at end of file
{"uuid": "5cc9ac9e-9042-40a6-86fb-30596da150be", "befores": [{"name": "method", "status": "passed", "start": 1725520494494, "stop": 1725520494494}], "start": 1725520494494, "stop": 1725520494530}
\ No newline at end of file
{"uuid": "ff8c4dae-78a2-42ea-b5f8-9040b2b77e5a", "befores": [{"name": "api", "status": "passed", "start": 1725520495184, "stop": 1725520495184}], "start": 1725520495184, "stop": 1725520495219}
\ No newline at end of file
{"uuid": "df322474-1d1d-4db0-a253-5e81c143cdb3", "befores": [{"name": "module", "status": "passed", "start": 1725520494860, "stop": 1725520494860}], "start": 1725520494860, "stop": 1725520494904}
\ No newline at end of file
{"uuid": "68a3eb49-2ea4-4973-bf76-1876a7b2fa18", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520495115, "stop": 1725520495115}], "start": 1725520495115, "stop": 1725520495140}
\ No newline at end of file
{"uuid": "400c2f2a-49b3-4c2a-8c35-aa48a1ae892f", "befores": [{"name": "level", "status": "passed", "start": 1725520494949, "stop": 1725520494949}], "start": 1725520494949, "stop": 1725520494989}
\ No newline at end of file
{"uuid": "06b6e809-5819-4aef-aa39-97a862098e3b", "befores": [{"name": "level", "status": "passed", "start": 1725520494590, "stop": 1725520494590}], "start": 1725520494590, "stop": 1725520494636}
\ No newline at end of file
{"uuid": "ca887f2f-9d45-4df5-adc3-5bebd763d3eb", "befores": [{"name": "expect", "status": "passed", "start": 1725520494904, "stop": 1725520494904}], "start": 1725520494904, "stop": 1725520494939}
\ No newline at end of file
{"uuid": "9ccc6442-6fa1-4a59-8082-eee718be6750", "befores": [{"name": "method", "status": "passed", "start": 1725520494904, "stop": 1725520494904}], "start": 1725520494904, "stop": 1725520494939}
\ No newline at end of file
{"uuid": "2ac19faf-04c0-43d2-9fdd-58c4b3d05589", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520495115, "stop": 1725520495115}], "start": 1725520495115, "stop": 1725520495140}
\ No newline at end of file
ERROR  root:test_bpm.py:49 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds, 用例数据:{'ids': '1831591367190093824'}, 期望数据:{'message': '删除维度成功!'}, 服务器返回数据:{"state":false,"message":"【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 ","value":"","code":200}
\ No newline at end of file
{"uuid": "15bcc826-8152-45c0-8654-2e4e2d7117ea", "befores": [{"name": "module", "status": "passed", "start": 1725520495280, "stop": 1725520495280}], "start": 1725520495280, "stop": 1725520495320}
\ No newline at end of file
{"name": "反向用例-username错误", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CA70>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username错误', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminxyz'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CA70>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username错误', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminxyz'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "43ead829-63ee-4fe0-a2c9-8b6af9d0d402-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "2feab77d-4d2f-4955-953c-b99b2641e801-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-username错误'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'application/json'"}, {"name": "case", "value": "{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520495037, "stop": 1725520495059, "uuid": "d969e8dc-b1c3-454f-94d9-46fd1cb15622", "historyId": "b05b6b6278e12025b2bc0c65dc94032b", "testCaseId": "e5e60f6f3b76e8ecfa74b896a3526e14", "fullName": "test_case.test_zs.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_zs"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zs.test_bpm"}]}
\ No newline at end of file
{"uuid": "523d9687-172d-45b2-ba17-02bfb0a72496", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520494949, "stop": 1725520494949}], "start": 1725520494949, "stop": 1725520494984}
\ No newline at end of file
{"uuid": "4215a03d-323b-4b2b-8431-67e3ee1ea2ff", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520494860, "stop": 1725520494860}], "start": 1725520494860, "stop": 1725520494899}
\ No newline at end of file
{"uuid": "93c6132e-ae3d-4efc-81b9-9f9a8a4abeab", "befores": [{"name": "update_key", "status": "passed", "start": 1725520494860, "stop": 1725520494860}], "start": 1725520494860, "stop": 1725520494899}
\ No newline at end of file
{"uuid": "4f6e628b-e9e7-4f68-9709-1e5be4af8df1", "befores": [{"name": "sql", "status": "passed", "start": 1725520495184, "stop": 1725520495184}], "start": 1725520495184, "stop": 1725520495215}
\ No newline at end of file
{"uuid": "485b037b-577a-4e98-b657-835f4ae80572", "befores": [{"name": "level", "status": "passed", "start": 1725520495145, "stop": 1725520495145}], "start": 1725520495145, "stop": 1725520495179}
\ No newline at end of file
{"uuid": "f0c20f69-99f8-40a9-b19f-0083a82f3d9b", "befores": [{"name": "sql", "status": "passed", "start": 1725520494539, "stop": 1725520494539}], "start": 1725520494539, "stop": 1725520494590}
\ No newline at end of file
{"uuid": "9ea27dde-9cde-4abc-876c-43a64f086c11", "befores": [{"name": "case", "status": "passed", "start": 1725520495184, "stop": 1725520495184}], "start": 1725520495184, "stop": 1725520495219}
\ No newline at end of file
{"uuid": "65f2e6e0-44f7-44e3-acb1-de99e9dedd00", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520494904, "stop": 1725520494904}], "start": 1725520494904, "stop": 1725520494939}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591369895419904"}
\ No newline at end of file
http://36.139.193.99:8088/auth post application/json {'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'} {'message': '账号或密码错误'} None None None
{"uuid": "2e90a2d6-df6a-4839-94f5-fd91252faf22", "befores": [{"name": "case", "status": "passed", "start": 1725520495115, "stop": 1725520495115}], "start": 1725520495115, "stop": 1725520495140}
\ No newline at end of file
{"uuid": "9f41597c-8125-4773-9219-e3e6282ae090", "befores": [{"name": "expect", "status": "passed", "start": 1725520494715, "stop": 1725520494715}], "start": 1725520494715, "stop": 1725520494750}
\ No newline at end of file
{"uuid": "3cf42d07-e4c7-47a9-9a0f-05600639e03d", "befores": [{"name": "update_key", "status": "passed", "start": 1725520494200, "stop": 1725520494200}], "start": 1725520494200, "stop": 1725520494480}
\ No newline at end of file
{"uuid": "f1ef2085-aa47-4334-adba-19dc121934de", "befores": [{"name": "method", "status": "passed", "start": 1725520495080, "stop": 1725520495080}], "start": 1725520495080, "stop": 1725520495110}
\ No newline at end of file
{"uuid": "3c01ffe9-a83d-4608-bc6a-23fa29346875", "befores": [{"name": "sql", "status": "passed", "start": 1725520495280, "stop": 1725520495280}], "start": 1725520495280, "stop": 1725520495315}
\ No newline at end of file
{"uuid": "507e0c8e-59ac-49c5-b04e-060553c71d4b", "befores": [{"name": "sql", "status": "passed", "start": 1725520495145, "stop": 1725520495145}], "start": 1725520495145, "stop": 1725520495175}
\ No newline at end of file
{"uuid": "c8596843-f0d7-40ec-929d-609454037201", "befores": [{"name": "url", "status": "passed", "start": 1725520494200, "stop": 1725520494200}], "start": 1725520494200, "stop": 1725520494489}
\ No newline at end of file
{"uuid": "8731c885-84da-4ad7-8f6c-cba571153c3f", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520494715, "stop": 1725520494715}], "start": 1725520494715, "stop": 1725520494750}
\ No newline at end of file
{"name": "反向用例-username过长", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D280>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username过长', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminadminadminadminadminadminadminadminadmin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D280>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username过长', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'adminadminadminadminadminadminadminadminadmin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "5c0cce40-29b7-43bf-8bc8-cc8e235a0c7d-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "51baf387-da76-404f-b13a-9c779f1ffd70-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-username过长'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'application/json'"}, {"name": "case", "value": "{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520494949, "stop": 1725520494970, "uuid": "a33e4212-022c-4c41-b3d7-7f9bb82f3fb2", "historyId": "7d90d1e6cf871c9dc3f9faa708380fdc", "testCaseId": "e5e60f6f3b76e8ecfa74b896a3526e14", "fullName": "test_case.test_zs.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_zs"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zs.test_bpm"}]}
\ No newline at end of file
{"uuid": "40d73fe9-8f38-4a9c-bb40-33865271ffae", "befores": [{"name": "url", "status": "passed", "start": 1725520494494, "stop": 1725520494494}], "start": 1725520494494, "stop": 1725520494530}
\ No newline at end of file
{"uuid": "6dfde3ce-7679-40bb-9337-2603a18c0ae4", "befores": [{"name": "module", "status": "passed", "start": 1725520495037, "stop": 1725520495037}], "start": 1725520495037, "stop": 1725520495069}
\ No newline at end of file
{"uuid": "0a8e5b3f-f079-4fb0-8a63-2ed083ec16c9", "befores": [{"name": "module", "status": "passed", "start": 1725520494680, "stop": 1725520494680}], "start": 1725520494680, "stop": 1725520494710}
\ No newline at end of file
{"uuid": "0f3ea667-2563-4aae-a037-9fc923594f05", "befores": [{"name": "api", "status": "passed", "start": 1725520494820, "stop": 1725520494820}], "start": 1725520494820, "stop": 1725520494849}
\ No newline at end of file
{"uuid": "5bb53d50-4eb3-434b-b52c-ae6cf8dcc02c", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520494715, "stop": 1725520494715}], "start": 1725520494715, "stop": 1725520494745}
\ No newline at end of file
{"uuid": "c358362b-fb85-4e68-95ba-b8ca20aff43c", "befores": [{"name": "update_key", "status": "passed", "start": 1725520494715, "stop": 1725520494715}], "start": 1725520494715, "stop": 1725520494745}
\ No newline at end of file
{"uuid": "b73b4f2b-1265-4f28-bfab-e342e76a55d3", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520495037, "stop": 1725520495037}], "start": 1725520495037, "stop": 1725520495069}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227832630>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '组织管理', api = '添加组织', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', method = 'POST', mediatype = 'json'\ncase = {'code': 'testAddOrg', 'demId': '1831591367190093824', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect = {'message': '添加组织成功'}\nsql = {'delete': 'delete from uc_org where CODE_=\"testAddOrg\";', 'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; '}\nsql_type = 'delete|select', update_key = 'demId'\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '添加组织成功' == '添加组织成功!'\nE \nE - 添加组织成功!\nE ? -\nE + 添加组织成功\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227832630>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '组织管理', api = '添加组织', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/api/org/v1/org/addOrg', method = 'POST', mediatype = 'json'\ncase = {'code': 'testAddOrg', 'demId': '1831591367190093824', 'exceedLimitNum': 0, 'grade': '', ...}\nexpect = {'message': '添加组织成功'}\nsql = {'delete': 'delete from uc_org where CODE_=\"testAddOrg\";', 'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; '}\nsql_type = 'delete|select', update_key = 'demId'\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "fd6b759c-b96c-454b-90c8-32690e7fe64d-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "2c76c50b-cacd-477b-b8e4-eb412c11d973-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'添加组织'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/org/addOrg'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'json'"}, {"name": "case", "value": "{'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect", "value": "{'message': '添加组织成功'}"}, {"name": "sql", "value": "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\"; ', 'delete': 'delete from uc_org where CODE_=\"testAddOrg\";'}"}, {"name": "sql_type", "value": "'delete|select'"}, {"name": "update_key", "value": "'demId'"}], "start": 1725520494539, "stop": 1725520494580, "uuid": "67fa0227-7f55-4fbc-a01e-764b1b6aa2a9", "historyId": "5cd7c3a8ec42d2cf48bda1074ed73e15", "testCaseId": "62470fd63eb0f8cf8a9c6feb9b2a90be", "fullName": "test_case.test_ls.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_ls"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_ls.test_bpm"}]}
\ No newline at end of file
{"uuid": "51d127ec-be97-4a09-ae72-f0d054cf77dd", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520494539, "stop": 1725520494539}], "start": 1725520494539, "stop": 1725520494590}
\ No newline at end of file
{"uuid": "fc74cefa-ec8d-4367-a6b2-c48055df290e", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520494989, "stop": 1725520494989}], "start": 1725520494989, "stop": 1725520495020}
\ No newline at end of file
{"uuid": "c9f161ba-b95f-4e53-8e2f-be54f60a35e1", "befores": [{"name": "case", "status": "passed", "start": 1725520494715, "stop": 1725520494715}], "start": 1725520494715, "stop": 1725520494750}
\ No newline at end of file
{"uuid": "e625d16a-2d12-4033-acee-48d1a13be31b", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520495280, "stop": 1725520495280}], "start": 1725520495280, "stop": 1725520495320}
\ No newline at end of file
D:\CeShiShiXun\Project\PythonProject\PythonProject_1\MyApiAutoTest_v3\data_config
D:\CeShiShiXun\Project\PythonProject\PythonProject_1\MyApiAutoTest_v2\data_config
http://36.139.193.99:8088/auth POST application/json {'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='} {'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True} None None None
{"uuid": "8e9e1dfb-0ea6-4a81-bfb4-31f1887bccc6", "befores": [{"name": "level", "status": "passed", "start": 1725520494680, "stop": 1725520494680}], "start": 1725520494680, "stop": 1725520494710}
\ No newline at end of file
{"uuid": "f1bff3ef-8fd5-4abb-a1c5-a0af6a7392eb", "befores": [{"name": "level", "status": "passed", "start": 1725520494820, "stop": 1725520494820}], "start": 1725520494820, "stop": 1725520494849}
\ No newline at end of file
{"uuid": "d97b3476-1f26-4e66-9ed6-3cf49e0762ec", "befores": [{"name": "case", "status": "passed", "start": 1725520495224, "stop": 1725520495224}], "start": 1725520495224, "stop": 1725520495270}
\ No newline at end of file
http://36.139.193.99:8088/api/org/v1/org/addOrg POST json {'code': 'testAddOrg', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'} {'message': '添加组织成功'} {'select': 'select ID_ from uc_demension where CODE_="requestsAddDem"; ', 'delete': 'delete from uc_org where CODE_="testAddOrg";'} delete|select demId
http://36.139.193.99:8088/api/org/v1/org/deleteOrg POST json testAddOrg {'message': '删除组织成功!'} None None None
http://36.139.193.99:8088/auth POST application/json {'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='} {'message': '账号或密码错误'} None None None
{"uuid": "63e7fb13-bc8c-456e-944b-b1547c7212a5", "befores": [{"name": "module", "status": "passed", "start": 1725520494949, "stop": 1725520494949}], "start": 1725520494949, "stop": 1725520494989}
\ No newline at end of file
{"uuid": "588e6e25-9b43-4df3-94e2-ae97c24270b3", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520495080, "stop": 1725520495080}], "start": 1725520495080, "stop": 1725520495100}
\ No newline at end of file
{"uuid": "89ddef3d-c01f-4bf2-abbe-377cda7c40ff", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520494680, "stop": 1725520494680}], "start": 1725520494680, "stop": 1725520494704}
\ No newline at end of file
{"uuid": "06b9a2e8-c622-45e5-baae-677c16826b72", "befores": [{"name": "method", "status": "passed", "start": 1725520494539, "stop": 1725520494539}], "start": 1725520494539, "stop": 1725520494590}
\ No newline at end of file
{"uuid": "80fdb418-d5b0-4ce3-ae3a-49d4b7da81a5", "befores": [{"name": "case", "status": "passed", "start": 1725520495037, "stop": 1725520495037}], "start": 1725520495037, "stop": 1725520495069}
\ No newline at end of file
{"uuid": "939b276b-6463-4e78-9e6d-3486650c0018", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520495184, "stop": 1725520495184}], "start": 1725520495184, "stop": 1725520495219}
\ No newline at end of file
{"name": "反向用例-password过长", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D160>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password过长', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'post'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...aEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn', 'username': 'admin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D160>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password过长', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'post'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQraz...aEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn', 'username': 'admin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "ccc5908d-9fcd-44ff-a5a9-1dd2caa3ad0c-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "15f97e23-ffec-491a-bb33-ced7e8bd658d-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-password过长'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "method", "value": "'post'"}, {"name": "mediatype", "value": "'application/json'"}, {"name": "case", "value": "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520495145, "stop": 1725520495160, "uuid": "73e57a69-5552-485f-b639-c7e6975427f1", "historyId": "3b05de0aaf7e67ff7e60d6f8ad9108f1", "testCaseId": "e5e60f6f3b76e8ecfa74b896a3526e14", "fullName": "test_case.test_zs.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_zs"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zs.test_bpm"}]}
\ No newline at end of file
{"uuid": "c531d859-c5e7-499f-9939-25f076ffdf6f", "children": ["21cdc824-7375-4960-8cba-fb038405afc0", "0431d6a2-7de2-4009-9472-a5fefe55fb2b", "67fa0227-7f55-4fbc-a01e-764b1b6aa2a9", "3a2d6881-e022-45b6-a82f-c684891a5ab1", "580789ad-dfbe-4f3b-a4a8-e8458b151eb6", "2c1e7ff0-98c4-4c02-b3e0-5d9a4e243556", "8bd2a858-6b14-42d3-8cff-bf17bdb7fa1b"], "befores": [{"name": "fix_req", "status": "passed", "start": 1725520494110, "stop": 1725520494170}], "afters": [{"name": "fix_req::0", "status": "passed", "start": 1725520495320, "stop": 1725520495320}], "start": 1725520494110, "stop": 1725520495320}
\ No newline at end of file
{"uuid": "3a3f34a8-d100-4daf-9c05-1844a25df5ce", "befores": [{"name": "level", "status": "passed", "start": 1725520494494, "stop": 1725520494494}], "start": 1725520494494, "stop": 1725520494530}
\ No newline at end of file
{"uuid": "e1434979-39fc-4b66-aa54-bc34aac6feff", "befores": [{"name": "api", "status": "passed", "start": 1725520495080, "stop": 1725520495080}], "start": 1725520495080, "stop": 1725520495110}
\ No newline at end of file
http://36.139.193.99:8088/auth POST application/json {'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='} {'message': '账号或密码错误'} None None None
{"name": "反向用例-password过短", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D220>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password过短', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json', case = {'password': '123456', 'username': 'admin'}, expect = {'message': '账号或密码错误'}\nsql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE \nE - 解密密码异常,请检查RSA公钥和私钥配置\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D220>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password过短', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json', case = {'password': '123456', 'username': 'admin'}, expect = {'message': '账号或密码错误'}\nsql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "a1b81c17-db1d-40b0-9d76-93af725c0ea8-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "df24e86e-ab69-4a8c-a1b6-3257e6d469c9-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-password过短'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'application/json'"}, {"name": "case", "value": "{'username': 'admin', 'password': '123456'}"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520495184, "stop": 1725520495199, "uuid": "fff6d4b4-90c7-46d0-b0ae-12d512ad2e2c", "historyId": "fd13e937ace41ca384abd631bec03e1c", "testCaseId": "e5e60f6f3b76e8ecfa74b896a3526e14", "fullName": "test_case.test_zs.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_zs"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zs.test_bpm"}]}
\ No newline at end of file
{"uuid": "546a8498-d6c8-4908-b5b6-d67c5bc526ef", "befores": [{"name": "module", "status": "passed", "start": 1725520495080, "stop": 1725520495080}], "start": 1725520495080, "stop": 1725520495110}
\ No newline at end of file
{"uuid": "bb443888-7298-427c-b00d-811af65ccc38", "children": ["21cdc824-7375-4960-8cba-fb038405afc0", "0431d6a2-7de2-4009-9472-a5fefe55fb2b", "67fa0227-7f55-4fbc-a01e-764b1b6aa2a9", "3a2d6881-e022-45b6-a82f-c684891a5ab1", "580789ad-dfbe-4f3b-a4a8-e8458b151eb6", "2c1e7ff0-98c4-4c02-b3e0-5d9a4e243556", "8bd2a858-6b14-42d3-8cff-bf17bdb7fa1b", "ce30195f-9c6c-446c-91fc-c68efb8e8525", "26067d3e-fa3e-44d1-8f6d-d9b227f8e935", "b05664d2-3a45-4457-9d00-12a1b9a628cc", "a33e4212-022c-4c41-b3d7-7f9bb82f3fb2", "a9a3a025-bc87-412f-887d-34a0d587d383", "d969e8dc-b1c3-454f-94d9-46fd1cb15622", "ba69e580-4a33-495e-8bf2-243c8528b18a", "e94772c2-f030-482d-9833-3d60d11fde86", "73e57a69-5552-485f-b639-c7e6975427f1", "fff6d4b4-90c7-46d0-b0ae-12d512ad2e2c", "e95e1a82-8e71-4029-9fdf-5da9b565d071", "5bec6983-4c98-4238-862a-47ad5f3c474d"], "befores": [{"name": "_session_faker", "status": "passed", "start": 1725520493860, "stop": 1725520494110}], "start": 1725520493860, "stop": 1725520495325}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591370662977536"}
\ No newline at end of file
{"uuid": "b2a5eab6-8d52-41fe-bf71-fcb4f1b9329c", "befores": [{"name": "url", "status": "passed", "start": 1725520494600, "stop": 1725520494600}], "start": 1725520494600, "stop": 1725520494636}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "description": "测试用例", "attachments": [{"name": "log", "source": "c48d4626-c09d-4498-973f-0aa73bae5d32-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "ddd41072-973c-41b7-ba4f-084d7f43cf47-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'用户加入组织'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'query'"}, {"name": "case", "value": "{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'}"}, {"name": "expect", "value": "{'message': '加入成功'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520494600, "stop": 1725520494635, "uuid": "3a2d6881-e022-45b6-a82f-c684891a5ab1", "historyId": "8404e81faa4b72bac8c00019b532bb3c", "testCaseId": "62470fd63eb0f8cf8a9c6feb9b2a90be", "fullName": "test_case.test_ls.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "用户加入组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_ls"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_ls.test_bpm"}]}
\ No newline at end of file
ERROR  root:test_bpm.py:49 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/updateDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}, 期望数据:{'message': '更新维度成功'}, 服务器返回数据:{"state":true,"message":"更新维度成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "02a90c18-c492-4624-9a14-bc13e37b08d9", "befores": [{"name": "method", "status": "passed", "start": 1725520494600, "stop": 1725520494600}], "start": 1725520494600, "stop": 1725520494636}
\ No newline at end of file
{"name": "反向用例-username为特殊字符", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CD70>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username为特殊字符', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': '#!$!@#!@#'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CD70>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username为特殊字符', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': '#!$!@#!@#'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "9ef3e73c-a313-4a8c-b9ab-3fdc03203140-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "3f575330-1c14-4848-b472-245be8746f4a-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-username为特殊字符'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'application/json'"}, {"name": "case", "value": "{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520494904, "stop": 1725520494930, "uuid": "b05664d2-3a45-4457-9d00-12a1b9a628cc", "historyId": "ed0c1ac1c1e669d1cf8e017705bc1825", "testCaseId": "e5e60f6f3b76e8ecfa74b896a3526e14", "fullName": "test_case.test_zs.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_zs"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zs.test_bpm"}]}
\ No newline at end of file
{"uuid": "47c35224-8226-405e-921f-10c0bf634753", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520495280, "stop": 1725520495280}], "start": 1725520495280, "stop": 1725520495315}
\ No newline at end of file
{"uuid": "7142f440-5826-4106-a7be-6484f90026d2", "befores": [{"name": "expect", "status": "passed", "start": 1725520495184, "stop": 1725520495184}], "start": 1725520495184, "stop": 1725520495219}
\ No newline at end of file
{"uuid": "39e1697a-ab4a-4840-a971-29a827a6ef80", "befores": [{"name": "method", "status": "passed", "start": 1725520494200, "stop": 1725520494200}], "start": 1725520494200, "stop": 1725520494489}
\ No newline at end of file
{"uuid": "8f7de8e4-7925-41b1-9bf2-56870549a118", "befores": [{"name": "update_key", "status": "passed", "start": 1725520494680, "stop": 1725520494680}], "start": 1725520494680, "stop": 1725520494704}
\ No newline at end of file
{"uuid": "4c6f0b1d-b3ca-4491-91b0-6b046a26423d", "befores": [{"name": "method", "status": "passed", "start": 1725520495184, "stop": 1725520495184}], "start": 1725520495184, "stop": 1725520495219}
\ No newline at end of file
{"uuid": "98aa1d3a-b2ab-4458-9998-3b7d70f12d90", "befores": [{"name": "url", "status": "passed", "start": 1725520494989, "stop": 1725520494989}], "start": 1725520494989, "stop": 1725520495030}
\ No newline at end of file
{"uuid": "0f3767e4-45a9-49c0-acf7-00ad7804d655", "befores": [{"name": "expect", "status": "passed", "start": 1725520495037, "stop": 1725520495037}], "start": 1725520495037, "stop": 1725520495069}
\ No newline at end of file
{"uuid": "2b965777-c6fc-47cc-8c80-d2a0175606a2", "befores": [{"name": "url", "status": "passed", "start": 1725520494904, "stop": 1725520494904}], "start": 1725520494904, "stop": 1725520494939}
\ No newline at end of file
{"uuid": "9fe93830-ae96-4b7a-b597-dd9776a5ebfa", "befores": [{"name": "case", "status": "passed", "start": 1725520495280, "stop": 1725520495280}], "start": 1725520495280, "stop": 1725520495320}
\ No newline at end of file
http://36.139.193.99:8088/auth POST application/json {'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='} {'message': '账号或密码错误'} None None None
{"uuid": "e87d2772-9a37-4daf-a52c-297eb62b7818", "befores": [{"name": "case", "status": "passed", "start": 1725520494600, "stop": 1725520494600}], "start": 1725520494600, "stop": 1725520494636}
\ No newline at end of file
{"uuid": "f9830598-cccc-4ea5-9779-99cabbc511d2", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520494600, "stop": 1725520494600}], "start": 1725520494600, "stop": 1725520494636}
\ No newline at end of file
{"uuid": "1297bf72-f5a8-40a6-aa87-0baf4cea029e", "befores": [{"name": "level", "status": "passed", "start": 1725520495115, "stop": 1725520495115}], "start": 1725520495115, "stop": 1725520495140}
\ No newline at end of file
{"uuid": "f29d5687-78b9-4a4d-a701-6872b8f0918a", "befores": [{"name": "title", "status": "passed", "start": 1725520495224, "stop": 1725520495224}], "start": 1725520495224, "stop": 1725520495270}
\ No newline at end of file
{"uuid": "05043ecf-d0fd-4014-af16-b089ab024d0b", "befores": [{"name": "update_key", "status": "passed", "start": 1725520494539, "stop": 1725520494539}], "start": 1725520494539, "stop": 1725520494590}
\ No newline at end of file
{"uuid": "c9bb093e-a9d7-466c-a5a3-3c39dd43f32f", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520494200, "stop": 1725520494200}], "start": 1725520494200, "stop": 1725520494480}
\ No newline at end of file
{"uuid": "17a92f0e-d382-4c8c-a055-5b58da552243", "befores": [{"name": "level", "status": "passed", "start": 1725520495080, "stop": 1725520495080}], "start": 1725520495080, "stop": 1725520495110}
\ No newline at end of file
{"uuid": "478d92db-5ee4-4549-98ec-2777b940fc26", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520495080, "stop": 1725520495080}], "start": 1725520495080, "stop": 1725520495110}
\ No newline at end of file
{"uuid": "c8353f1d-82af-424e-a0f9-a4fabf3dc275", "befores": [{"name": "case", "status": "passed", "start": 1725520494680, "stop": 1725520494680}], "start": 1725520494680, "stop": 1725520494710}
\ No newline at end of file
{"uuid": "0bec0fb7-bcb2-4d04-9773-a371660b4220", "befores": [{"name": "title", "status": "passed", "start": 1725520494494, "stop": 1725520494494}], "start": 1725520494494, "stop": 1725520494530}
\ No newline at end of file
{"uuid": "b7af74cd-402f-47fc-80d0-807c005031af", "befores": [{"name": "sql", "status": "passed", "start": 1725520494200, "stop": 1725520494200}], "start": 1725520494200, "stop": 1725520494480}
\ No newline at end of file
{"name": "反向用例-password为空", "status": "passed", "description": "测试用例", "attachments": [{"name": "log", "source": "ff868d49-dcda-4ad9-acf4-8e28784c8e1c-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "5feab4d4-12a0-4ffe-b2d9-d9cbeaef553b-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-password为空'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'application/json'"}, {"name": "case", "value": "{'username': 'admin', 'password': ''}"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520495080, "stop": 1725520495100, "uuid": "ba69e580-4a33-495e-8bf2-243c8528b18a", "historyId": "809195301699e26f57c8ee9f0791d6f7", "testCaseId": "e5e60f6f3b76e8ecfa74b896a3526e14", "fullName": "test_case.test_zs.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_zs"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zs.test_bpm"}]}
\ No newline at end of file
{"uuid": "7b95f5ba-985f-465c-b286-3827f5d49738", "children": ["21cdc824-7375-4960-8cba-fb038405afc0", "0431d6a2-7de2-4009-9472-a5fefe55fb2b", "67fa0227-7f55-4fbc-a01e-764b1b6aa2a9", "3a2d6881-e022-45b6-a82f-c684891a5ab1", "580789ad-dfbe-4f3b-a4a8-e8458b151eb6", "2c1e7ff0-98c4-4c02-b3e0-5d9a4e243556", "8bd2a858-6b14-42d3-8cff-bf17bdb7fa1b"], "befores": [{"name": "fix_db", "status": "passed", "start": 1725520494170, "stop": 1725520494200}], "afters": [{"name": "fix_db::0", "status": "passed", "start": 1725520495320, "stop": 1725520495320}], "start": 1725520494170, "stop": 1725520495320}
\ No newline at end of file
{"uuid": "2dd7c2bc-e148-491e-938c-6861a7db62e6", "befores": [{"name": "sql", "status": "passed", "start": 1725520494600, "stop": 1725520494600}], "start": 1725520494600, "stop": 1725520494636}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591370306461696"}
\ No newline at end of file
{"uuid": "472dcb7d-da11-4a24-843b-082eec324912", "befores": [{"name": "url", "status": "passed", "start": 1725520495280, "stop": 1725520495280}], "start": 1725520495280, "stop": 1725520495320}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A22784FA40>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '添加维度', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', method = 'post'\nmediatype = 'application/json'\ncase = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}\nexpect = {'message': '添加维度成功'}, sql = {'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}\nsql_type = 'delete', update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '添加维度成功' == '添加维度成功!'\nE \nE - 添加维度成功!\nE ? -\nE + 添加维度成功\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A22784FA40>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '添加维度', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/api/demension/v1/dem/addDem', method = 'post'\nmediatype = 'application/json'\ncase = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}\nexpect = {'message': '添加维度成功'}, sql = {'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}\nsql_type = 'delete', update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "a16e3aba-065b-449a-a8f0-ce43e8ae96e5-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "c7ebd89f-25fb-4aa3-9b7e-cb21b78abafc-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'添加维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/addDem'"}, {"name": "method", "value": "'post'"}, {"name": "mediatype", "value": "'application/json'"}, {"name": "case", "value": "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}"}, {"name": "expect", "value": "{'message': '添加维度成功'}"}, {"name": "sql", "value": "{'delete': 'dELETE FROM uc_demension WHERE `CODE_`=\"requestsAddDem\";'}"}, {"name": "sql_type", "value": "'delete'"}, {"name": "update_key", "value": "None"}], "start": 1725520494200, "stop": 1725520494240, "uuid": "21cdc824-7375-4960-8cba-fb038405afc0", "historyId": "ad0d98c065410ada27395bc7b04272f2", "testCaseId": "62470fd63eb0f8cf8a9c6feb9b2a90be", "fullName": "test_case.test_ls.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_ls"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_ls.test_bpm"}]}
\ No newline at end of file
{"uuid": "2853b710-4ef8-4eb5-812f-5a4d3f717e91", "befores": [{"name": "sql", "status": "passed", "start": 1725520494715, "stop": 1725520494715}], "start": 1725520494715, "stop": 1725520494750}
\ No newline at end of file
{"name": "登录的正向用例", "status": "passed", "description": "测试用例", "attachments": [{"name": "log", "source": "c14c0962-04d6-4968-8690-dd8b2d41d3ad-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "29560410-3ed7-43ae-9b27-891de1f5639f-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'登录的正向用例'"}, {"name": "level", "value": "'高'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'application/json'"}, {"name": "case", "value": "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}"}, {"name": "expect", "value": "{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520494820, "stop": 1725520494849, "uuid": "ce30195f-9c6c-446c-91fc-c68efb8e8525", "historyId": "3cf62095b633d2ac12f698dc26617592", "testCaseId": "e5e60f6f3b76e8ecfa74b896a3526e14", "fullName": "test_case.test_zs.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_zs"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zs.test_bpm"}]}
\ No newline at end of file
http://36.139.193.99:8088/auth POST application/json {'username': 'admin', 'password': ''} {'message': '账号或密码错误'} None None None
{"uuid": "41c94465-feb4-4277-94c2-67bcaa462ec4", "befores": [{"name": "case", "status": "passed", "start": 1725520495080, "stop": 1725520495080}], "start": 1725520495080, "stop": 1725520495100}
\ No newline at end of file
{"uuid": "2c240317-1270-49b3-999d-f457d080e8f3", "befores": [{"name": "sql", "status": "passed", "start": 1725520494949, "stop": 1725520494949}], "start": 1725520494949, "stop": 1725520494984}
\ No newline at end of file
{"uuid": "a4437583-7ad6-4fee-9ac6-0800544842ac", "befores": [{"name": "level", "status": "passed", "start": 1725520494904, "stop": 1725520494904}], "start": 1725520494904, "stop": 1725520494939}
\ No newline at end of file
{"uuid": "d2e1ca44-2e0a-4922-9a85-c37f84ce5e48", "befores": [{"name": "case", "status": "passed", "start": 1725520494904, "stop": 1725520494904}], "start": 1725520494904, "stop": 1725520494939}
\ No newline at end of file
{"uuid": "1ecc338c-caf6-4c21-aa15-c905889562f1", "befores": [{"name": "title", "status": "passed", "start": 1725520495115, "stop": 1725520495115}], "start": 1725520495115, "stop": 1725520495140}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591370478428160"}
\ No newline at end of file
http://36.139.193.99:8088/api/demension/v1/dem/updateDem put json {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'} {'message': '更新维度成功'} None None None
{"uuid": "81deb74e-1453-4f7e-ac29-a23cee2ae906", "befores": [{"name": "title", "status": "passed", "start": 1725520494715, "stop": 1725520494715}], "start": 1725520494715, "stop": 1725520494750}
\ No newline at end of file
{"uuid": "342757ad-c7f5-4bab-bfca-e9550a64f3ec", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520494904, "stop": 1725520494904}], "start": 1725520494904, "stop": 1725520494939}
\ No newline at end of file
{"uuid": "46680cbd-5653-422b-a247-f3a8ea011181", "befores": [{"name": "title", "status": "passed", "start": 1725520494820, "stop": 1725520494820}], "start": 1725520494820, "stop": 1725520494849}
\ No newline at end of file
{"uuid": "5847a002-b1c2-4731-b6dd-fd3634208048", "befores": [{"name": "method", "status": "passed", "start": 1725520495280, "stop": 1725520495280}], "start": 1725520495280, "stop": 1725520495320}
\ No newline at end of file
{"uuid": "6154180e-941a-494a-92fe-a3f34b3f9cb6", "befores": [{"name": "update_key", "status": "passed", "start": 1725520495037, "stop": 1725520495037}], "start": 1725520495037, "stop": 1725520495069}
\ No newline at end of file
{"uuid": "2cd58b39-9fa4-407a-ad47-9ef8967c9b57", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520494494, "stop": 1725520494494}], "start": 1725520494494, "stop": 1725520494530}
\ No newline at end of file
{"uuid": "71284abf-8e4a-4010-b9ed-a4341ca5ba36", "befores": [{"name": "expect", "status": "passed", "start": 1725520494860, "stop": 1725520494860}], "start": 1725520494860, "stop": 1725520494899}
\ No newline at end of file
{"uuid": "7af381a5-1612-453d-b000-5c686616509f", "befores": [{"name": "url", "status": "passed", "start": 1725520494640, "stop": 1725520494640}], "start": 1725520494640, "stop": 1725520494670}
\ No newline at end of file
{"uuid": "4cedfc5f-0566-4c92-8a6a-d54612cf65a5", "befores": [{"name": "method", "status": "passed", "start": 1725520494715, "stop": 1725520494715}], "start": 1725520494715, "stop": 1725520494750}
\ No newline at end of file
{"uuid": "00c1e255-ed08-434d-b20f-b1fedb6c9274", "befores": [{"name": "update_key", "status": "passed", "start": 1725520495080, "stop": 1725520495080}], "start": 1725520495080, "stop": 1725520495100}
\ No newline at end of file
{"uuid": "476d9f8d-0177-4ab3-a136-264501460172", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520495145, "stop": 1725520495145}], "start": 1725520495145, "stop": 1725520495175}
\ No newline at end of file
{"uuid": "fe5d4d73-dc82-48a6-b4dd-67d2178d77a0", "befores": [{"name": "level", "status": "passed", "start": 1725520495280, "stop": 1725520495280}], "start": 1725520495280, "stop": 1725520495320}
\ No newline at end of file
{"uuid": "cb3bef76-c9be-405d-843e-c8549d16251e", "befores": [{"name": "expect", "status": "passed", "start": 1725520494494, "stop": 1725520494494}], "start": 1725520494494, "stop": 1725520494530}
\ No newline at end of file
{"uuid": "09dc4645-fdb8-4771-9ff2-37e58d47a820", "befores": [{"name": "expect", "status": "passed", "start": 1725520494640, "stop": 1725520494645}], "start": 1725520494640, "stop": 1725520494670}
\ No newline at end of file
http://36.139.193.99:8088/auth POST application/json {'username': 'admin', 'password': '#!$!@#!@#'} {'message': '账号或密码错误'} None None None
{"uuid": "dd813037-d13d-4f7f-b00c-e7e9b2c43158", "befores": [{"name": "title", "status": "passed", "start": 1725520495280, "stop": 1725520495280}], "start": 1725520495280, "stop": 1725520495320}
\ No newline at end of file
{"uuid": "69365a67-758d-4016-bb28-3232fbc657cd", "befores": [{"name": "title", "status": "passed", "start": 1725520495037, "stop": 1725520495037}], "start": 1725520495037, "stop": 1725520495069}
\ No newline at end of file
{"uuid": "6bdbe0a6-905a-4cea-80e3-077af81e7652", "befores": [{"name": "module", "status": "passed", "start": 1725520494200, "stop": 1725520494200}], "start": 1725520494200, "stop": 1725520494489}
\ No newline at end of file
{"uuid": "20d596c6-5fc6-49cc-b5c0-801f86fa7edf", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520494820, "stop": 1725520494820}], "start": 1725520494820, "stop": 1725520494849}
\ No newline at end of file
{"uuid": "bf2457a0-ed26-4ea6-9976-c3b61b472f86", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520494949, "stop": 1725520494949}], "start": 1725520494949, "stop": 1725520494989}
\ No newline at end of file
{"uuid": "6111bf14-5776-4895-b38f-931aeb2c4e31", "befores": [{"name": "update_key", "status": "passed", "start": 1725520495224, "stop": 1725520495224}], "start": 1725520495224, "stop": 1725520495270}
\ No newline at end of file
{"uuid": "5c80ceb4-3ee8-41a9-9aee-1b0ef8fffc71", "befores": [{"name": "method", "status": "passed", "start": 1725520494989, "stop": 1725520494989}], "start": 1725520494989, "stop": 1725520495030}
\ No newline at end of file
{"uuid": "dd4c9d32-a729-48be-81ec-06c221730680", "befores": [{"name": "level", "status": "passed", "start": 1725520494989, "stop": 1725520494989}], "start": 1725520494989, "stop": 1725520495030}
\ No newline at end of file
{"uuid": "19bd24dc-e461-429e-9597-c9c9e6cc381a", "befores": [{"name": "module", "status": "passed", "start": 1725520495224, "stop": 1725520495224}], "start": 1725520495224, "stop": 1725520495280}
\ No newline at end of file
{"uuid": "7a8c5f94-8442-43e5-8ca7-16a7f041d17f", "befores": [{"name": "title", "status": "passed", "start": 1725520494989, "stop": 1725520494989}], "start": 1725520494989, "stop": 1725520495030}
\ No newline at end of file
{"uuid": "3853a114-ab98-4067-ae9b-92e6bf0440bb", "befores": [{"name": "method", "status": "passed", "start": 1725520495145, "stop": 1725520495145}], "start": 1725520495145, "stop": 1725520495179}
\ No newline at end of file
{"uuid": "7ff6a642-c8fd-4c79-9532-26c8403b63c8", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520494200, "stop": 1725520494200}], "start": 1725520494200, "stop": 1725520494489}
\ No newline at end of file
{"uuid": "a59d21c3-2330-41c6-9b0e-026e18771535", "befores": [{"name": "expect", "status": "passed", "start": 1725520494600, "stop": 1725520494600}], "start": 1725520494600, "stop": 1725520494636}
\ No newline at end of file
{"uuid": "fed0b8c1-2b6c-4797-a127-67181c3eccff", "befores": [{"name": "level", "status": "passed", "start": 1725520495224, "stop": 1725520495224}], "start": 1725520495224, "stop": 1725520495270}
\ No newline at end of file
http://36.139.193.99:8088/auth POST json {'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='} {'message': '账号或密码错误'} None None None
{"name": "正向用例", "status": "passed", "description": "测试用例", "attachments": [{"name": "log", "source": "b99b551a-8083-4323-a412-f45dae4633a0-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "e3426c64-34ac-4b17-a028-0bf3d1816c1c-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'保存组织参数'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'query|json'"}, {"name": "case", "value": "{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]}"}, {"name": "expect", "value": "{'message': '保存组织参数成功!'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520494645, "stop": 1725520494670, "uuid": "580789ad-dfbe-4f3b-a4a8-e8458b151eb6", "historyId": "8194377a24bf78e492b4fb8e4bfada20", "testCaseId": "62470fd63eb0f8cf8a9c6feb9b2a90be", "fullName": "test_case.test_ls.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "保存组织参数"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_ls"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_ls.test_bpm"}]}
\ No newline at end of file
{"uuid": "75c33095-ddb0-4c34-ad9e-5dd19ecd4454", "befores": [{"name": "method", "status": "passed", "start": 1725520494640, "stop": 1725520494640}], "start": 1725520494640, "stop": 1725520494670}
\ No newline at end of file
{"uuid": "847cfe65-a615-43fb-a065-d62302522671", "befores": [{"name": "sql", "status": "passed", "start": 1725520495037, "stop": 1725520495037}], "start": 1725520495037, "stop": 1725520495069}
\ No newline at end of file
{"uuid": "1418b04e-fcf8-4729-815c-15ea683ef03d", "befores": [{"name": "case", "status": "passed", "start": 1725520494539, "stop": 1725520494539}], "start": 1725520494539, "stop": 1725520494590}
\ No newline at end of file
{"uuid": "5075a73b-7a49-4a73-a8a8-8c4281ee70d0", "befores": [{"name": "case", "status": "passed", "start": 1725520494200, "stop": 1725520494200}], "start": 1725520494200, "stop": 1725520494480}
\ No newline at end of file
{"uuid": "6731aecb-e569-4a9c-8e54-9431dde1f7ff", "befores": [{"name": "url", "status": "passed", "start": 1725520494949, "stop": 1725520494949}], "start": 1725520494949, "stop": 1725520494989}
\ No newline at end of file
{"uuid": "c06c4073-4b6b-474f-a4f8-b8466237ef51", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520495037, "stop": 1725520495037}], "start": 1725520495037, "stop": 1725520495069}
\ No newline at end of file
http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds delete query {'ids': '需要更新'} {'message': '删除维度成功!'} {'select': 'select ID_ from uc_demension where CODE_="requestsAddDem";'} select ids
{"uuid": "ab2a509a-9692-4cbd-a6e3-47ed5378c17e", "befores": [{"name": "expect", "status": "passed", "start": 1725520494820, "stop": 1725520494820}], "start": 1725520494820, "stop": 1725520494849}
\ No newline at end of file
{"uuid": "c78a414d-0129-428d-b26c-3d61159167c4", "befores": [{"name": "expect", "status": "passed", "start": 1725520495115, "stop": 1725520495115}], "start": 1725520495115, "stop": 1725520495140}
\ No newline at end of file
INFO  root:test_bpm.py:55 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '#!$!@#!@#'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账号或密码错误","code":200,"logId":"1831591370985938944"}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227D42030>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '根据维度编码删除维度'\ntitle = '正向用例', level = '中', url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', method = 'delete'\nmediatype = 'query', case = {'ids': '1831591367190093824'}, expect = {'message': '删除维度成功!'}\nsql = {'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}, sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '删除维度成功!' == '【requestsAdd...度下存在组织,不允许删除 '\nE \nE - 【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 \nE + 删除维度成功!\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227D42030>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '根据维度编码删除维度'\ntitle = '正向用例', level = '中', url = 'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds', method = 'delete'\nmediatype = 'query', case = {'ids': '1831591367190093824'}, expect = {'message': '删除维度成功!'}\nsql = {'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}, sql_type = 'select', update_key = 'ids'\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "0992d8bd-be9e-4f85-9206-941d5416ec3a-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "8754eedb-6253-41de-8de1-7c7a26fbaa66-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'根据维度编码删除维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds'"}, {"name": "method", "value": "'delete'"}, {"name": "mediatype", "value": "'query'"}, {"name": "case", "value": "{'ids': '需要更新'}"}, {"name": "expect", "value": "{'message': '删除维度成功!'}"}, {"name": "sql", "value": "{'select': 'select ID_ from uc_demension where CODE_=\"requestsAddDem\";'}"}, {"name": "sql_type", "value": "'select'"}, {"name": "update_key", "value": "'ids'"}], "start": 1725520494715, "stop": 1725520494737, "uuid": "8bd2a858-6b14-42d3-8cff-bf17bdb7fa1b", "historyId": "f699ffa37d12708daf0e7085e5c0c916", "testCaseId": "62470fd63eb0f8cf8a9c6feb9b2a90be", "fullName": "test_case.test_ls.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "根据维度编码删除维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_ls"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_ls.test_bpm"}]}
\ No newline at end of file
{"uuid": "3851de30-7bdd-49ad-884f-1bd6f09d70b2", "befores": [{"name": "case", "status": "passed", "start": 1725520494989, "stop": 1725520494989}], "start": 1725520494989, "stop": 1725520495030}
\ No newline at end of file
{"uuid": "b0c6a63d-5ce3-4ed5-8922-56578262750a", "befores": [{"name": "url", "status": "passed", "start": 1725520495037, "stop": 1725520495037}], "start": 1725520495037, "stop": 1725520495069}
\ No newline at end of file
{"name": "反向用例-username为空", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D43D10>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username为空', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': ''}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D43D10>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username为空', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': ''}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "14cd576d-776a-4fc9-a8b4-7f90fe3f4e56-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "d7eba1cd-cd26-4071-a328-89001cec15a1-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-username为空'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'application/json'"}, {"name": "case", "value": "{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520494860, "stop": 1725520494879, "uuid": "26067d3e-fa3e-44d1-8f6d-d9b227f8e935", "historyId": "96d15987df335819396763853c7aad57", "testCaseId": "e5e60f6f3b76e8ecfa74b896a3526e14", "fullName": "test_case.test_zs.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_zs"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zs.test_bpm"}]}
\ No newline at end of file
{"uuid": "ed2be7a9-5370-4d27-9af9-1e128ff48925", "befores": [{"name": "url", "status": "passed", "start": 1725520495080, "stop": 1725520495080}], "start": 1725520495080, "stop": 1725520495110}
\ No newline at end of file
{"uuid": "5d5da9e0-e1ed-4dd0-b5e0-d9969441cfc9", "befores": [{"name": "url", "status": "passed", "start": 1725520494539, "stop": 1725520494539}], "start": 1725520494539, "stop": 1725520494590}
\ No newline at end of file
{"uuid": "c744c472-a320-4db9-a437-a49cefc6edfc", "befores": [{"name": "api", "status": "passed", "start": 1725520495224, "stop": 1725520495224}], "start": 1725520495224, "stop": 1725520495270}
\ No newline at end of file
{"uuid": "bbaf2961-c6ca-4994-a058-1b232d581576", "befores": [{"name": "method", "status": "passed", "start": 1725520494680, "stop": 1725520494680}], "start": 1725520494680, "stop": 1725520494710}
\ No newline at end of file
{"uuid": "ebd4f0bf-9046-4d8d-9ab2-2c2403e332fc", "befores": [{"name": "expect", "status": "passed", "start": 1725520495145, "stop": 1725520495145}], "start": 1725520495145, "stop": 1725520495179}
\ No newline at end of file
{"uuid": "547a293f-ade1-4a1c-8dfe-bb13284b0cbb", "befores": [{"name": "url", "status": "passed", "start": 1725520494715, "stop": 1725520494715}], "start": 1725520494715, "stop": 1725520494750}
\ No newline at end of file
{"uuid": "ed4a3c69-59f0-4ed5-b7ef-91763a67b681", "befores": [{"name": "module", "status": "passed", "start": 1725520495145, "stop": 1725520495145}], "start": 1725520495145, "stop": 1725520495179}
\ No newline at end of file
{"uuid": "5af635db-3913-4cc8-a355-f6cdc3070695", "befores": [{"name": "api", "status": "passed", "start": 1725520495145, "stop": 1725520495145}], "start": 1725520495145, "stop": 1725520495179}
\ No newline at end of file
{"uuid": "7eb7f571-178a-43a2-9df9-2d7e2c9da36b", "befores": [{"name": "module", "status": "passed", "start": 1725520494640, "stop": 1725520494640}], "start": 1725520494640, "stop": 1725520494675}
\ No newline at end of file
{"uuid": "673a1e5c-4f44-4fa5-b5c2-acd7b915485a", "befores": [{"name": "url", "status": "passed", "start": 1725520495184, "stop": 1725520495184}], "start": 1725520495184, "stop": 1725520495219}
\ No newline at end of file
{"uuid": "3e5644ca-2c29-4436-afc2-0372bffb85ad", "befores": [{"name": "expect", "status": "passed", "start": 1725520494989, "stop": 1725520494989}], "start": 1725520494989, "stop": 1725520495030}
\ No newline at end of file
{"uuid": "584a80f1-f35c-4cf6-8d6c-be115199dea3", "befores": [{"name": "title", "status": "passed", "start": 1725520495080, "stop": 1725520495080}], "start": 1725520495080, "stop": 1725520495110}
\ No newline at end of file
{"uuid": "67474eec-5339-4a83-99fb-8590ff66e8b9", "befores": [{"name": "update_key", "status": "passed", "start": 1725520494989, "stop": 1725520494989}], "start": 1725520494989, "stop": 1725520495020}
\ No newline at end of file
{"uuid": "badee366-38c9-47e5-afe1-13b356e1dbce", "befores": [{"name": "update_key", "status": "passed", "start": 1725520494600, "stop": 1725520494600}], "start": 1725520494600, "stop": 1725520494635}
\ No newline at end of file
{"uuid": "d044916d-a411-4d07-a2f6-09314a76e497", "befores": [{"name": "url", "status": "passed", "start": 1725520494820, "stop": 1725520494820}], "start": 1725520494820, "stop": 1725520494849}
\ No newline at end of file
{"uuid": "3581abf3-b3e1-40c9-907c-573fe29bd4ad", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520495145, "stop": 1725520495145}], "start": 1725520495145, "stop": 1725520495179}
\ No newline at end of file
{"uuid": "2d03b2aa-4852-44be-9eb5-10de11cf9239", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520495224, "stop": 1725520495224}], "start": 1725520495224, "stop": 1725520495270}
\ No newline at end of file
{"uuid": "7bb0c0a6-a266-45ea-ae32-f4c7ef89cd17", "befores": [{"name": "sql", "status": "passed", "start": 1725520494820, "stop": 1725520494820}], "start": 1725520494820, "stop": 1725520494849}
\ No newline at end of file
{"uuid": "a648ded5-7a50-496a-aac6-4d3f85ca2d7e", "befores": [{"name": "api", "status": "passed", "start": 1725520494715, "stop": 1725520494715}], "start": 1725520494715, "stop": 1725520494750}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591370117718016"}
\ No newline at end of file
{"uuid": "007e0a77-b3a2-48f6-a373-76bf8e622fa8", "befores": [{"name": "expect", "status": "passed", "start": 1725520495224, "stop": 1725520495224}], "start": 1725520495224, "stop": 1725520495270}
\ No newline at end of file
ERROR  root:test_bpm.py:49 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}, 期望数据:{'message': '添加维度成功'}, 服务器返回数据:{"state":true,"message":"添加维度成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "acca221d-79aa-45e1-8aa3-439ffe4a13d0", "befores": [{"name": "level", "status": "passed", "start": 1725520494539, "stop": 1725520494539}], "start": 1725520494539, "stop": 1725520494590}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '123456'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831591371262763008"}
\ No newline at end of file
{"uuid": "af587e0c-ad8e-42eb-a626-b76f8070d2bb", "befores": [{"name": "api", "status": "passed", "start": 1725520494590, "stop": 1725520494590}], "start": 1725520494590, "stop": 1725520494640}
\ No newline at end of file
{"uuid": "de9123c9-9b8f-486a-81b8-5f3800c10f2b", "befores": [{"name": "url", "status": "passed", "start": 1725520495145, "stop": 1725520495145}], "start": 1725520495145, "stop": 1725520495179}
\ No newline at end of file
{"uuid": "bd32acd5-b4c9-4dad-a534-c352c1b76dc9", "befores": [{"name": "update_key", "status": "passed", "start": 1725520495145, "stop": 1725520495145}], "start": 1725520495145, "stop": 1725520495175}
\ No newline at end of file
{"uuid": "330ed7ab-cf79-4595-b1d5-91e4d475923d", "befores": [{"name": "level", "status": "passed", "start": 1725520494200, "stop": 1725520494200}], "start": 1725520494200, "stop": 1725520494489}
\ No newline at end of file
{"uuid": "061d57d6-2aa6-4c9d-a9f5-069ffe781588", "befores": [{"name": "module", "status": "passed", "start": 1725520495110, "stop": 1725520495115}], "start": 1725520495110, "stop": 1725520495140}
\ No newline at end of file
{"uuid": "40dca5bd-2fb9-4acb-af4b-db6f6f2170a2", "befores": [{"name": "title", "status": "passed", "start": 1725520494949, "stop": 1725520494949}], "start": 1725520494949, "stop": 1725520494989}
\ No newline at end of file
{"uuid": "1817974f-550a-44e3-9808-fbe778ad0ac0", "befores": [{"name": "title", "status": "passed", "start": 1725520495145, "stop": 1725520495145}], "start": 1725520495145, "stop": 1725520495179}
\ No newline at end of file
{"uuid": "6ae1f611-d357-4d8e-be5a-680944083183", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520494989, "stop": 1725520494989}], "start": 1725520494989, "stop": 1725520495030}
\ No newline at end of file
{"uuid": "05e19161-ddbc-4e94-b7ed-f99a27c60c8c", "befores": [{"name": "module", "status": "passed", "start": 1725520494820, "stop": 1725520494820}], "start": 1725520494820, "stop": 1725520494849}
\ No newline at end of file
http://36.139.193.99:8088/refresh GET None None {'message': '刷新token成功'} None None None
{"uuid": "f6134831-68d4-44d9-9fad-505681c73a55", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520494640, "stop": 1725520494640}], "start": 1725520494640, "stop": 1725520494670}
\ No newline at end of file
{"uuid": "5bf193ce-ee8e-4e6b-a297-693536ce6bc3", "befores": [{"name": "sql", "status": "passed", "start": 1725520495224, "stop": 1725520495224}], "start": 1725520495224, "stop": 1725520495270}
\ No newline at end of file
{"uuid": "81d2f2a4-21bd-4f0e-9d36-93864d6f4490", "befores": [{"name": "title", "status": "passed", "start": 1725520494904, "stop": 1725520494904}], "start": 1725520494904, "stop": 1725520494939}
\ No newline at end of file
{"uuid": "db294c68-3675-4da1-8c8b-ebf0c09ea422", "befores": [{"name": "method", "status": "passed", "start": 1725520494820, "stop": 1725520494820}], "start": 1725520494820, "stop": 1725520494849}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY3ODYsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
{"uuid": "83a7d993-a3d1-4f72-b835-b9daae1c4405", "befores": [{"name": "api", "status": "passed", "start": 1725520494989, "stop": 1725520494989}], "start": 1725520494989, "stop": 1725520495030}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CF50>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '刷新token', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/refresh', method = 'GET', mediatype = None, case = None\nexpect = {'message': '刷新token成功'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '刷新token成功' == None\nE + where None = <built-in method get of dict object at 0x000001A227F14B00>('message')\nE + where <built-in method get of dict object at 0x000001A227F14B00> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CF50>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '刷新token', title = '正向用例'\nlevel = '高', url = 'http://36.139.193.99:8088/refresh', method = 'GET', mediatype = None, case = None\nexpect = {'message': '刷新token成功'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "d4cb5a30-9d73-4d9c-a1fe-91f5405ffc26-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "a85ea86d-8aae-4f33-8122-d5812748f4c4-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'刷新token'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'高'"}, {"name": "url", "value": "'http://36.139.193.99:8088/refresh'"}, {"name": "method", "value": "'GET'"}, {"name": "mediatype", "value": "None"}, {"name": "case", "value": "None"}, {"name": "expect", "value": "{'message': '刷新token成功'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520495280, "stop": 1725520495300, "uuid": "5bec6983-4c98-4238-862a-47ad5f3c474d", "historyId": "37a7367214ca0b695fefdc18729f45c3", "testCaseId": "e5e60f6f3b76e8ecfa74b896a3526e14", "fullName": "test_case.test_zs.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_zs"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zs.test_bpm"}]}
\ No newline at end of file
{"uuid": "26613f31-9104-488d-8395-4bb08fcd2409", "befores": [{"name": "title", "status": "passed", "start": 1725520494680, "stop": 1725520494680}], "start": 1725520494680, "stop": 1725520494710}
\ No newline at end of file
{"uuid": "f2c3909f-23f9-4c4d-9c1d-4f4d1a7543c6", "befores": [{"name": "api", "status": "passed", "start": 1725520494680, "stop": 1725520494680}], "start": 1725520494680, "stop": 1725520494710}
\ No newline at end of file
{"uuid": "f34647d3-85d0-4939-8a48-05e8d8c98fb7", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520494539, "stop": 1725520494539}], "start": 1725520494539, "stop": 1725520494590}
\ No newline at end of file
{"uuid": "c3d746ce-2c9a-4785-9cca-a04a19e10659", "befores": [{"name": "api", "status": "passed", "start": 1725520494494, "stop": 1725520494494}], "start": 1725520494494, "stop": 1725520494530}
\ No newline at end of file
{"uuid": "d41e622f-c875-426e-9794-17fef17e7044", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520494494, "stop": 1725520494494}], "start": 1725520494494, "stop": 1725520494530}
\ No newline at end of file
http://36.139.193.99:8088/auth POST application/json {'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'} {'message': '账号或密码错误'} None None None
{"uuid": "fc3e70fe-7329-4d9d-a327-0bb4752b9699", "befores": [{"name": "url", "status": "passed", "start": 1725520495115, "stop": 1725520495115}], "start": 1725520495115, "stop": 1725520495140}
\ No newline at end of file
{"uuid": "87d5f021-749e-4ef6-9f4d-81fd407b1e6e", "befores": [{"name": "title", "status": "passed", "start": 1725520494860, "stop": 1725520494860}], "start": 1725520494860, "stop": 1725520494899}
\ No newline at end of file
{"uuid": "013c53e6-9039-4413-958c-58dbf12ebe26", "befores": [{"name": "expect", "status": "passed", "start": 1725520494200, "stop": 1725520494200}], "start": 1725520494200, "stop": 1725520494480}
\ No newline at end of file
{"uuid": "47202837-fd05-4e43-b9b8-7e36255463b7", "befores": [{"name": "update_key", "status": "passed", "start": 1725520494820, "stop": 1725520494820}], "start": 1725520494820, "stop": 1725520494849}
\ No newline at end of file
{"uuid": "861d600d-b8d9-4dc0-8aeb-d39cdd870ce7", "befores": [{"name": "api", "status": "passed", "start": 1725520495115, "stop": 1725520495115}], "start": 1725520495115, "stop": 1725520495140}
\ No newline at end of file
{"uuid": "1b8d3ffd-c57e-496e-898a-9e815ee58e9b", "befores": [{"name": "case", "status": "passed", "start": 1725520494949, "stop": 1725520494949}], "start": 1725520494949, "stop": 1725520494989}
\ No newline at end of file
{"uuid": "715abf5f-a3a3-41c7-8a6a-b5829f09c0f0", "befores": [{"name": "module", "status": "passed", "start": 1725520494494, "stop": 1725520494494}], "start": 1725520494494, "stop": 1725520494530}
\ No newline at end of file
INFO  root:test_bpm.py:52 断言成功,接口url为:http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams, 用例数据:{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]}, 期望数据:{'message': '保存组织参数成功!'}, 服务器返回数据:{"state":true,"message":"保存组织参数成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "a91590db-5a5b-4949-b9de-4007674da2c5", "befores": [{"name": "title", "status": "passed", "start": 1725520494640, "stop": 1725520494640}], "start": 1725520494640, "stop": 1725520494675}
\ No newline at end of file
{"uuid": "eb59f5a4-52ee-4d63-a60c-519860a2b810", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520495224, "stop": 1725520495224}], "start": 1725520495224, "stop": 1725520495270}
\ No newline at end of file
{"uuid": "7dbe3686-36e7-419f-beb1-1fe761c2fd6d", "befores": [{"name": "module", "status": "passed", "start": 1725520494590, "stop": 1725520494590}], "start": 1725520494590, "stop": 1725520494640}
\ No newline at end of file
{"uuid": "ece104f6-48c3-47b5-a182-13cbbb4a51cf", "befores": [{"name": "api", "status": "passed", "start": 1725520494949, "stop": 1725520494949}], "start": 1725520494949, "stop": 1725520494989}
\ No newline at end of file
{"uuid": "349856f2-33bc-4374-9d70-a4289fc9bd7d", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520494600, "stop": 1725520494600}], "start": 1725520494600, "stop": 1725520494636}
\ No newline at end of file
{"name": "反向用例-username短", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CFB0>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username短', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mediatype = 'json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'a'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == '账户错误或该租户未启用'\nE \nE - 账户错误或该租户未启用\nE + 账号或密码错误\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8CFB0>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-username短', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST', mediatype = 'json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ=', 'username': 'a'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "632970ea-6ad8-4116-9543-c6f55fff2674-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "8113dd07-5abe-4c27-908a-b852842758ae-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-username短'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'json'"}, {"name": "case", "value": "{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520494989, "stop": 1725520495010, "uuid": "a9a3a025-bc87-412f-887d-34a0d587d383", "historyId": "9fada88040bb3a56478e7bc4c4701463", "testCaseId": "e5e60f6f3b76e8ecfa74b896a3526e14", "fullName": "test_case.test_zs.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_zs"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zs.test_bpm"}]}
\ No newline at end of file
{"uuid": "97772882-c319-4177-8b79-e3ac2d936e51", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520494680, "stop": 1725520494680}], "start": 1725520494680, "stop": 1725520494710}
\ No newline at end of file
{"uuid": "6672dd6a-e7db-4a59-b62c-525ed2218e24", "befores": [{"name": "level", "status": "passed", "start": 1725520494860, "stop": 1725520494860}], "start": 1725520494860, "stop": 1725520494899}
\ No newline at end of file
INFO  root:test_bpm.py:55 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY3ODYsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}}
\ No newline at end of file
{"uuid": "cf7173b2-a7b6-4c4e-8696-e625b5a2dfea", "befores": [{"name": "module", "status": "passed", "start": 1725520494536, "stop": 1725520494536}], "start": 1725520494536, "stop": 1725520494590}
\ No newline at end of file
{"uuid": "6a747b5f-3ad6-455a-b88c-9f98e458172e", "befores": [{"name": "expect", "status": "passed", "start": 1725520494539, "stop": 1725520494539}], "start": 1725520494539, "stop": 1725520494590}
\ No newline at end of file
ERROR  root:test_bpm.py:49 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/deleteOrg, 用例数据:testAddOrg, 期望数据:{'message': '删除组织成功!'}, 服务器返回数据:{"state":true,"message":"部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;","value":"","code":200}
\ No newline at end of file
INFO  root:test_bpm.py:52 断言成功,接口url为:http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg, 用例数据:{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'}, 期望数据:{'message': '加入成功'}, 服务器返回数据:{"state":true,"message":"加入成功","value":"","code":200}
\ No newline at end of file
{"uuid": "9e25f478-feb8-4978-86f7-c0ed87138609", "befores": [{"name": "level", "status": "passed", "start": 1725520494715, "stop": 1725520494715}], "start": 1725520494715, "stop": 1725520494750}
\ No newline at end of file
{"uuid": "0e9e90ea-bf9c-4b17-8c05-6a767989a51e", "befores": [{"name": "expect", "status": "passed", "start": 1725520494949, "stop": 1725520494949}], "start": 1725520494949, "stop": 1725520494984}
\ No newline at end of file
{"uuid": "7b45bb17-6646-4d2e-8748-7dd570e605e1", "befores": [{"name": "method", "status": "passed", "start": 1725520495037, "stop": 1725520495037}], "start": 1725520495037, "stop": 1725520495069}
\ No newline at end of file
{"uuid": "cb86dc8a-7546-4220-a3d4-c6d91a4bf122", "befores": [{"name": "sql", "status": "passed", "start": 1725520494860, "stop": 1725520494860}], "start": 1725520494860, "stop": 1725520494899}
\ No newline at end of file
D:\CeShiShiXun\Project\PythonProject\PythonProject_1\MyApiAutoTest_v3\data_config
D:\CeShiShiXun\Project\PythonProject\PythonProject_1\MyApiAutoTest_v2\data_config
http://36.139.193.99:8088/api/demension/v1/dem/addDem post application/json {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'} {'message': '添加维度成功'} {'delete': 'dELETE FROM uc_demension WHERE `CODE_`="requestsAddDem";'} delete None
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227829E80>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '组织管理', api = '删除组织', title = '正向用例'\nlevel = '中', url = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', method = 'POST', mediatype = 'json'\ncase = 'testAddOrg', expect = {'message': '删除组织成功!'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE assert '删除组织成功!' == '部分删除成功,其中编码为...dOrg\"】的组织不存在;'\nE \nE - 部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;\nE + 删除组织成功!\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A227829E80>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '组织管理', api = '删除组织', title = '正向用例'\nlevel = '中', url = 'http://36.139.193.99:8088/api/org/v1/org/deleteOrg', method = 'POST', mediatype = 'json'\ncase = 'testAddOrg', expect = {'message': '删除组织成功!'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "c47672f3-f403-41cf-b24f-508495876734-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "2f0abbe7-fd42-48e2-80d3-45b3e57b3e37-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'组织管理'"}, {"name": "api", "value": "'删除组织'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/org/v1/org/deleteOrg'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'json'"}, {"name": "case", "value": "'testAddOrg'"}, {"name": "expect", "value": "{'message': '删除组织成功!'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520494680, "stop": 1725520494690, "uuid": "2c1e7ff0-98c4-4c02-b3e0-5d9a4e243556", "historyId": "8ff0962fa70a3a5c07c3902d49b336b6", "testCaseId": "62470fd63eb0f8cf8a9c6feb9b2a90be", "fullName": "test_case.test_ls.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "删除组织"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_ls"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_ls.test_bpm"}]}
\ No newline at end of file
{"uuid": "df6aabc1-45ee-4134-af76-23e4afbcd2cb", "befores": [{"name": "sql", "status": "passed", "start": 1725520494989, "stop": 1725520494989}], "start": 1725520494989, "stop": 1725520495020}
\ No newline at end of file
{"uuid": "a4024496-40f5-4433-8752-9bbc7f6f5e41", "befores": [{"name": "api", "status": "passed", "start": 1725520494904, "stop": 1725520494904}], "start": 1725520494904, "stop": 1725520494939}
\ No newline at end of file
{"uuid": "eff6344d-444b-41e8-88f5-d7727541bc43", "befores": [{"name": "api", "status": "passed", "start": 1725520494860, "stop": 1725520494860}], "start": 1725520494860, "stop": 1725520494899}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831591371094990848"}
\ No newline at end of file
{"uuid": "0475dd90-1fae-41b4-9c40-ca997bb14edd", "befores": [{"name": "sql", "status": "passed", "start": 1725520495080, "stop": 1725520495080}], "start": 1725520495080, "stop": 1725520495100}
\ No newline at end of file
{"uuid": "39298ea1-a564-4610-b688-c0aecb90a0ff", "befores": [{"name": "api", "status": "passed", "start": 1725520494640, "stop": 1725520494640}], "start": 1725520494640, "stop": 1725520494675}
\ No newline at end of file
{"uuid": "0b024ade-1b09-42a5-88a9-37b08e627a47", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520495184, "stop": 1725520495184}], "start": 1725520495184, "stop": 1725520495215}
\ No newline at end of file
{"uuid": "dcab6f8c-0dae-4886-8653-2463e4bff33f", "befores": [{"name": "api", "status": "passed", "start": 1725520495037, "stop": 1725520495037}], "start": 1725520495037, "stop": 1725520495069}
\ No newline at end of file
{"uuid": "4833ff23-e0ed-4c3a-8826-238ac5984b3e", "befores": [{"name": "module", "status": "passed", "start": 1725520494989, "stop": 1725520494989}], "start": 1725520494989, "stop": 1725520495030}
\ No newline at end of file
{"name": "反向用例-password错误", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D340>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password错误', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ', 'username': 'admin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '账号或密码错误' == None\nE + where None = <built-in method get of dict object at 0x000001A227EE86C0>('message')\nE + where <built-in method get of dict object at 0x000001A227EE86C0> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...YsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg', ...} = json()\nE + where json = <Response [200]>.json\n\ntest_case\\test_zs\\test_bpm.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_zs.test_bpm.TestBpm object at 0x000001A227D8D340>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227E5A7B0>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227E5BE00>, module = '认证接口', api = '登录系统'\ntitle = '反向用例-password错误', level = '中', url = 'http://36.139.193.99:8088/auth', method = 'POST'\nmediatype = 'application/json'\ncase = {'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ', 'username': 'admin'}\nexpect = {'message': '账号或密码错误'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize(\n 'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',\n readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,\n update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_zs\\test_bpm.py:53: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "ac2598eb-06f2-4b68-a94c-a9421206403f-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "b2777064-82eb-4ff1-90f0-ed17fda68faa-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-password错误'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'application/json'"}, {"name": "case", "value": "{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520495224, "stop": 1725520495260, "uuid": "e95e1a82-8e71-4029-9fdf-5da9b565d071", "historyId": "5b162cdf7f15b6d94c7ced620df79c0a", "testCaseId": "e5e60f6f3b76e8ecfa74b896a3526e14", "fullName": "test_case.test_zs.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_zs"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zs.test_bpm"}]}
\ No newline at end of file
{"uuid": "24e23cb2-95ff-4300-941a-195a7c78f074", "befores": [{"name": "sql", "status": "passed", "start": 1725520494680, "stop": 1725520494680}], "start": 1725520494680, "stop": 1725520494704}
\ No newline at end of file
ERROR  root:test_bpm.py:52 断言失败,接口url为:http://36.139.193.99:8088/refresh, 用例数据:None, 期望数据:{'message': '刷新token成功'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY3ODYsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true}
\ No newline at end of file
{"uuid": "aafe754f-197c-4ba6-aa31-18709b99fe4f", "befores": [{"name": "title", "status": "passed", "start": 1725520494200, "stop": 1725520494200}], "start": 1725520494200, "stop": 1725520494489}
\ No newline at end of file
{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A22780A210>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '更新维度', title = '正向用例'\nlevel = '中', url = 'http://36.139.193.99:8088/api/demension/v1/dem/updateDem', method = 'put', mediatype = 'json'\ncase = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}\nexpect = {'message': '更新维度成功'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n> assert expect[key] == res.json().get(key)\nE AssertionError: assert '更新维度成功' == '更新维度成功!'\nE \nE - 更新维度成功!\nE ? -\nE + 更新维度成功\n\ntest_case\\test_ls\\test_bpm.py:47: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <MyApiAutoTest_v3.test_case.test_ls.test_bpm.TestBpm object at 0x000001A22780A210>\nfix_req = <MyApiAutoTest_v3.request_method.requests_method.RequestMethod object at 0x000001A227712A80>\nfix_db = <MyApiAutoTest_v3.common.db.DB object at 0x000001A227DE6720>, module = '维度管理', api = '更新维度', title = '正向用例'\nlevel = '中', url = 'http://36.139.193.99:8088/api/demension/v1/dem/updateDem', method = 'put', mediatype = 'json'\ncase = {'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}\nexpect = {'message': '更新维度成功'}, sql = None, sql_type = None, update_key = None\n\n @allure.epic(\"BPM项目-Demo\")\n @pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())\n def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):\n \"\"\"测试用例\"\"\"\n allure.dynamic.feature(module)\n allure.dynamic.story(api)\n allure.dynamic.title(title)\n allure.dynamic.severity(level)\n print(url, method, mediatype, case, expect, sql, sql_type, update_key)\n \n if sql_type == 'delete':\n fix_db.delete(sql['delete'])\n \n elif sql_type == 'select':\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n elif sql_type == 'select|delete' or sql_type == 'delete|select':\n fix_db.delete(sql['delete'])\n sec_res = fix_db.select(sql['select'])\n case[update_key] = sec_res\n \n res = fix_req.request_all(url, method, mediatype, case)\n \n try:\n for key in expect.keys():\n assert expect[key] == res.json().get(key)\n except AssertionError:\n log.error(f\"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}\")\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_ls\\test_bpm.py:50: AssertionError"}, "description": "测试用例", "attachments": [{"name": "log", "source": "47395d45-f6f4-4b12-a77c-06d79159d957-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "63377820-b7a9-4777-8182-1b471c855c68-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'维度管理'"}, {"name": "api", "value": "'更新维度'"}, {"name": "title", "value": "'正向用例'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/api/demension/v1/dem/updateDem'"}, {"name": "method", "value": "'put'"}, {"name": "mediatype", "value": "'json'"}, {"name": "case", "value": "{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}"}, {"name": "expect", "value": "{'message': '更新维度成功'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520494494, "stop": 1725520494515, "uuid": "0431d6a2-7de2-4009-9472-a5fefe55fb2b", "historyId": "ea5ac19be3b01d9a35dea05e7887af1e", "testCaseId": "62470fd63eb0f8cf8a9c6feb9b2a90be", "fullName": "test_case.test_ls.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "更新维度"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_ls"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_ls.test_bpm"}]}
\ No newline at end of file
{"uuid": "56d01e23-7aab-401d-b4e1-7180ad7328ec", "befores": [{"name": "case", "status": "passed", "start": 1725520494820, "stop": 1725520494820}], "start": 1725520494820, "stop": 1725520494849}
\ No newline at end of file
{"uuid": "7d07b0c6-0ef0-4236-8df1-e3b6d4a4d172", "befores": [{"name": "url", "status": "passed", "start": 1725520495224, "stop": 1725520495224}], "start": 1725520495224, "stop": 1725520495270}
\ No newline at end of file
{"uuid": "2ed11e32-3c3e-48e1-84aa-5e089d93773a", "befores": [{"name": "title", "status": "passed", "start": 1725520494590, "stop": 1725520494590}], "start": 1725520494590, "stop": 1725520494640}
\ No newline at end of file
http://36.139.193.99:8088/auth POST application/json {'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='} {'message': '账号或密码错误'} None None None
{"uuid": "e4e22892-0f9f-4d56-b965-0300bbcc9950", "befores": [{"name": "update_key", "status": "passed", "start": 1725520494904, "stop": 1725520494904}], "start": 1725520494904, "stop": 1725520494939}
\ No newline at end of file
{"uuid": "527c6a53-9e5f-4508-a781-b04515bc57f6", "befores": [{"name": "case", "status": "passed", "start": 1725520494640, "stop": 1725520494640}], "start": 1725520494640, "stop": 1725520494670}
\ No newline at end of file
{"uuid": "35946f16-bdc4-4826-b530-71ae9ab63d17", "befores": [{"name": "method", "status": "passed", "start": 1725520494949, "stop": 1725520494949}], "start": 1725520494949, "stop": 1725520494989}
\ No newline at end of file
{"uuid": "8060c083-1370-4b49-8fc7-c028658f0cd9", "befores": [{"name": "expect", "status": "passed", "start": 1725520494680, "stop": 1725520494680}], "start": 1725520494680, "stop": 1725520494710}
\ No newline at end of file
{"uuid": "71b78973-4747-468f-b595-9e25f41892b9", "befores": [{"name": "sql", "status": "passed", "start": 1725520495115, "stop": 1725520495115}], "start": 1725520495115, "stop": 1725520495140}
\ No newline at end of file
http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg POST query {'orgCode': 'testAddOrg', 'accounts': 'admin,guest'} {'message': '加入成功'} None None None
{"uuid": "b277d3d7-ab38-4a97-93f1-b102f3ac7a71", "befores": [{"name": "module", "status": "passed", "start": 1725520494715, "stop": 1725520494715}], "start": 1725520494715, "stop": 1725520494750}
\ No newline at end of file
{"uuid": "065b192f-22e6-40d4-8329-214b1389dc53", "befores": [{"name": "sql", "status": "passed", "start": 1725520494645, "stop": 1725520494645}], "start": 1725520494645, "stop": 1725520494670}
\ No newline at end of file
http://36.139.193.99:8088/auth POST application/json {'username': 'admin', 'password': '123456'} {'message': '账号或密码错误'} None None None
{"uuid": "e5067414-9350-4236-8e13-577caa299596", "children": ["ce30195f-9c6c-446c-91fc-c68efb8e8525", "26067d3e-fa3e-44d1-8f6d-d9b227f8e935", "b05664d2-3a45-4457-9d00-12a1b9a628cc", "a33e4212-022c-4c41-b3d7-7f9bb82f3fb2", "a9a3a025-bc87-412f-887d-34a0d587d383", "d969e8dc-b1c3-454f-94d9-46fd1cb15622", "ba69e580-4a33-495e-8bf2-243c8528b18a", "e94772c2-f030-482d-9833-3d60d11fde86", "73e57a69-5552-485f-b639-c7e6975427f1", "fff6d4b4-90c7-46d0-b0ae-12d512ad2e2c", "e95e1a82-8e71-4029-9fdf-5da9b565d071", "5bec6983-4c98-4238-862a-47ad5f3c474d"], "befores": [{"name": "fix_db", "status": "passed", "start": 1725520494790, "stop": 1725520494820}], "afters": [{"name": "fix_db::0", "status": "passed", "start": 1725520495320, "stop": 1725520495320}], "start": 1725520494790, "stop": 1725520495320}
\ No newline at end of file
{"uuid": "8c78317c-99a3-4583-be94-4bffc6e79d96", "befores": [{"name": "title", "status": "passed", "start": 1725520495184, "stop": 1725520495184}], "start": 1725520495184, "stop": 1725520495219}
\ No newline at end of file
http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams POST query|json {'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]} {'message': '保存组织参数成功!'} None None None
{"uuid": "ee153289-e0c1-4886-a211-cf421dcf02c2", "befores": [{"name": "update_key", "status": "passed", "start": 1725520495184, "stop": 1725520495184}], "start": 1725520495184, "stop": 1725520495215}
\ No newline at end of file
{"uuid": "b6b53425-38fd-4298-a32a-07abec9c8f1f", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520494860, "stop": 1725520494860}], "start": 1725520494860, "stop": 1725520494899}
\ No newline at end of file
{"uuid": "d4692c02-d474-48a2-9124-4c49fd7f7835", "befores": [{"name": "method", "status": "passed", "start": 1725520494860, "stop": 1725520494860}], "start": 1725520494860, "stop": 1725520494899}
\ No newline at end of file
{"uuid": "2c4cac8f-4387-4d69-9a72-5fd8bcfdd823", "befores": [{"name": "level", "status": "passed", "start": 1725520495037, "stop": 1725520495037}], "start": 1725520495037, "stop": 1725520495069}
\ No newline at end of file
{"uuid": "425c6329-7b9b-4611-9340-6c16c95804f0", "befores": [{"name": "url", "status": "passed", "start": 1725520494860, "stop": 1725520494860}], "start": 1725520494860, "stop": 1725520494899}
\ No newline at end of file
{"uuid": "905f8b36-0742-452c-ab75-fdabecf483c8", "befores": [{"name": "api", "status": "passed", "start": 1725520494200, "stop": 1725520494200}], "start": 1725520494200, "stop": 1725520494489}
\ No newline at end of file
{"uuid": "fd9d117e-4c4e-4799-bfda-10a356c4affe", "befores": [{"name": "module", "status": "passed", "start": 1725520495184, "stop": 1725520495184}], "start": 1725520495184, "stop": 1725520495219}
\ No newline at end of file
{"uuid": "74eab06c-09e7-4d61-81f9-94401cf7cb8e", "befores": [{"name": "sql", "status": "passed", "start": 1725520494494, "stop": 1725520494494}], "start": 1725520494494, "stop": 1725520494530}
\ No newline at end of file
{"uuid": "8e468f7d-7f30-4509-852c-36530afcbe8c", "befores": [{"name": "level", "status": "passed", "start": 1725520494640, "stop": 1725520494640}], "start": 1725520494640, "stop": 1725520494675}
\ No newline at end of file
{"uuid": "58449514-a0e8-4e25-9e83-15a8471bbdc6", "befores": [{"name": "title", "status": "passed", "start": 1725520494539, "stop": 1725520494539}], "start": 1725520494539, "stop": 1725520494590}
\ No newline at end of file
{"uuid": "9d3a5898-31a9-4573-982a-b6400639e08b", "befores": [{"name": "sql", "status": "passed", "start": 1725520494904, "stop": 1725520494904}], "start": 1725520494904, "stop": 1725520494939}
\ No newline at end of file
{"uuid": "ea8bf51c-8b85-441c-8242-b8cc2c5e4aea", "befores": [{"name": "mediatype", "status": "passed", "start": 1725520494820, "stop": 1725520494820}], "start": 1725520494820, "stop": 1725520494849}
\ No newline at end of file
{"uuid": "640ced73-bb28-495d-bd5d-d47445901f32", "befores": [{"name": "expect", "status": "passed", "start": 1725520495280, "stop": 1725520495280}], "start": 1725520495280, "stop": 1725520495315}
\ No newline at end of file
{"uuid": "4b937660-d256-4e0c-8240-d8c2f3dadc36", "befores": [{"name": "case", "status": "passed", "start": 1725520494494, "stop": 1725520494494}], "start": 1725520494494, "stop": 1725520494530}
\ No newline at end of file
{"uuid": "5974cbd5-aeeb-4f7f-a3ec-fa41354c5bcc", "befores": [{"name": "level", "status": "passed", "start": 1725520495184, "stop": 1725520495184}], "start": 1725520495184, "stop": 1725520495219}
\ No newline at end of file
{"uuid": "05ef8795-4d35-4e35-831f-9186d5ccf54a", "befores": [{"name": "update_key", "status": "passed", "start": 1725520495280, "stop": 1725520495280}], "start": 1725520495280, "stop": 1725520495315}
\ No newline at end of file
{"name": "反向用例-password为特殊字符", "status": "passed", "description": "测试用例", "attachments": [{"name": "log", "source": "8880643e-a6be-4784-82b7-6d07ce8ca901-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "778516d1-07d9-4733-b6ca-cc15c018f53e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module", "value": "'认证接口'"}, {"name": "api", "value": "'登录系统'"}, {"name": "title", "value": "'反向用例-password为特殊字符'"}, {"name": "level", "value": "'中'"}, {"name": "url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mediatype", "value": "'application/json'"}, {"name": "case", "value": "{'username': 'admin', 'password': '#!$!@#!@#'}"}, {"name": "expect", "value": "{'message': '账号或密码错误'}"}, {"name": "sql", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1725520495115, "stop": 1725520495140, "uuid": "e94772c2-f030-482d-9833-3d60d11fde86", "historyId": "5081ed40354d9c8308060f8331fc10eb", "testCaseId": "e5e60f6f3b76e8ecfa74b896a3526e14", "fullName": "test_case.test_zs.test_bpm.TestBpm#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM项目-Demo"}, {"name": "parentSuite", "value": "test_case.test_zs"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "DESKTOP-0FSM5AH"}, {"name": "thread", "value": "26776-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_zs.test_bpm"}]}
\ No newline at end of file
{"uuid": "21bb6ea9-11e3-430c-8da1-282bc6e7d4ea", "befores": [{"name": "sql_type", "status": "passed", "start": 1725520494645, "stop": 1725520494645}], "start": 1725520494645, "stop": 1725520494670}
\ No newline at end of file
{"uuid": "587a4ac6-dce3-40f0-8d7a-2edd9249cebe", "befores": [{"name": "case", "status": "passed", "start": 1725520495145, "stop": 1725520495145}], "start": 1725520495145, "stop": 1725520495179}
\ No newline at end of file
{"uuid": "aa45e910-fec4-4121-8e1f-dfe8b7e21b0a", "befores": [{"name": "url", "status": "passed", "start": 1725520494680, "stop": 1725520494680}], "start": 1725520494680, "stop": 1725520494710}
\ No newline at end of file
{"uuid": "8d2a8d33-627a-4263-8aff-dce71268cdef", "befores": [{"name": "api", "status": "passed", "start": 1725520494536, "stop": 1725520494536}], "start": 1725520494536, "stop": 1725520494590}
\ No newline at end of file
{"uuid": "27037d96-b86b-4a4c-a0c4-62ab3f447682", "befores": [{"name": "method", "status": "passed", "start": 1725520495224, "stop": 1725520495224}], "start": 1725520495224, "stop": 1725520495270}
\ No newline at end of file
{"uuid": "ce650771-6ee3-4b64-9de9-4169baacdf2f", "befores": [{"name": "expect", "status": "passed", "start": 1725520495080, "stop": 1725520495080}], "start": 1725520495080, "stop": 1725520495100}
\ No newline at end of file
{"uuid": "fb725e63-56cc-4d24-ab24-98fe0de52dd0", "befores": [{"name": "update_key", "status": "passed", "start": 1725520494949, "stop": 1725520494949}], "start": 1725520494949, "stop": 1725520494984}
\ No newline at end of file
{"uuid": "b042c02c-127a-4142-9db6-74518ce84c58", "children": ["ce30195f-9c6c-446c-91fc-c68efb8e8525", "26067d3e-fa3e-44d1-8f6d-d9b227f8e935", "b05664d2-3a45-4457-9d00-12a1b9a628cc", "a33e4212-022c-4c41-b3d7-7f9bb82f3fb2", "a9a3a025-bc87-412f-887d-34a0d587d383", "d969e8dc-b1c3-454f-94d9-46fd1cb15622", "ba69e580-4a33-495e-8bf2-243c8528b18a", "e94772c2-f030-482d-9833-3d60d11fde86", "73e57a69-5552-485f-b639-c7e6975427f1", "fff6d4b4-90c7-46d0-b0ae-12d512ad2e2c", "e95e1a82-8e71-4029-9fdf-5da9b565d071", "5bec6983-4c98-4238-862a-47ad5f3c474d"], "befores": [{"name": "fix_req", "status": "passed", "start": 1725520494759, "stop": 1725520494790}], "afters": [{"name": "fix_req::0", "status": "passed", "start": 1725520495320, "stop": 1725520495320}], "start": 1725520494759, "stop": 1725520495320}
\ No newline at end of file
{"uuid": "acbc6604-c8d5-48aa-bd3a-4eda5af6acbe", "befores": [{"name": "method", "status": "passed", "start": 1725520495115, "stop": 1725520495115}], "start": 1725520495115, "stop": 1725520495140}
\ No newline at end of file
{"uuid": "0b65460c-153b-4633-88c7-c746e4936cb3", "befores": [{"name": "case", "status": "passed", "start": 1725520494860, "stop": 1725520494860}], "start": 1725520494860, "stop": 1725520494899}
\ No newline at end of file
ERROR  root:test_bpm.py:49 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/addOrg, 用例数据:{'code': 'testAddOrg', 'demId': '1831591367190093824', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据:{'message': '添加组织成功'}, 服务器返回数据:{"state":true,"message":"添加组织成功!","value":"","code":200}
\ No newline at end of file
{"uuid": "7a64e6ea-1a6e-4e10-adca-3538b7db98c9", "befores": [{"name": "api", "status": "passed", "start": 1725520495280, "stop": 1725520495280}], "start": 1725520495280, "stop": 1725520495320}
\ No newline at end of file
{"uuid": "2bb56c73-722a-4aad-8f70-87495ab7f508", "befores": [{"name": "update_key", "status": "passed", "start": 1725520495115, "stop": 1725520495115}], "start": 1725520495115, "stop": 1725520495140}
\ No newline at end of file
INFO  root:test_bpm.py:55 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': ''}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账号或密码错误","code":200,"logId":"1831591370847526912"}
\ No newline at end of file
2024-09-05 12:19:14,428 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}, 期望数据:{'message': '添加维度成功'}, 服务器返回数据:{"state":true,"message":"添加维度成功!","value":"","code":200} -- root
2024-09-05 12:19:14,740 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/updateDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}, 期望数据:{'message': '更新维度成功'}, 服务器返回数据:{"state":true,"message":"更新维度成功!","value":"","code":200} -- root
2024-09-05 12:19:14,802 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/addOrg, 用例数据:{'code': 'testAddOrg', 'demId': '1831547156575133696', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据:{'message': '添加组织成功'}, 服务器返回数据:{"state":true,"message":"添加组织成功!","value":"","code":200} -- root
2024-09-05 12:19:14,865 - test_bpm.py[line:47] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg, 用例数据:{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'}, 期望数据:{'message': '加入成功'}, 服务器返回数据:{"state":true,"message":"加入成功","value":"","code":200} -- root
2024-09-05 12:19:14,912 - test_bpm.py[line:47] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams, 用例数据:{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]}, 期望数据:{'message': '保存组织参数成功!'}, 服务器返回数据:{"state":true,"message":"保存组织参数成功!","value":"","code":200} -- root
2024-09-05 12:19:14,927 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/deleteOrg, 用例数据:testAddOrg, 期望数据:{'message': '删除组织成功!'}, 服务器返回数据:{"state":true,"message":"部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;","value":"","code":200} -- root
2024-09-05 12:19:14,974 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds, 用例数据:{'ids': '1831547156575133696'}, 期望数据:{'message': '删除维度成功!'}, 服务器返回数据:{"state":false,"message":"【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 ","value":"","code":200} -- root
2024-09-05 12:19:15,084 - test_bpm.py[line:47] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU1OTYyNDUsImlhdCI6MTcyNTUwOTg0NX0.LCnrrP6dcESwxOZujEeokuYosTZVzBgtUQ9Qf6zGD5PJneUA46HTSJzF223N4Sr4WdFQa-8ozhLCKj1BRW7fAA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}} -- root
2024-09-05 12:19:15,115 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831547159519535104"} -- root
2024-09-05 12:19:15,178 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831547159771193344"} -- root
2024-09-05 12:19:15,225 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831547159968325632"} -- root
2024-09-05 12:19:15,272 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831547160148680704"} -- root
2024-09-05 12:19:15,318 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831547160341618688"} -- root
2024-09-05 12:19:15,365 - test_bpm.py[line:47] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': ''}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账号或密码错误","code":200,"logId":"1831547160530362368"} -- root
2024-09-05 12:19:15,397 - test_bpm.py[line:47] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '#!$!@#!@#'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账号或密码错误","code":200,"logId":"1831547160668774400"} -- root
2024-09-05 12:19:15,412 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831547160777826304"} -- root
2024-09-05 12:19:15,459 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '123456'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831547160933015552"} -- root
2024-09-05 12:19:15,506 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU1OTYyNDYsImlhdCI6MTcyNTUwOTg0Nn0.m2nDRrnZmDOI35dEouhETXClHkksLAkpBXaNvCeqawgx0H2iiV-f_m5bkezRDMqkhzodsXcxZHgs3SX796_XpA","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}} -- root
2024-09-05 12:19:15,553 - test_bpm.py[line:44] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/refresh, 用例数据:None, 期望数据:{'message': '刷新token成功'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU1OTYyNDYsImlhdCI6MTcyNTUwOTg0Nn0.m2nDRrnZmDOI35dEouhETXClHkksLAkpBXaNvCeqawgx0H2iiV-f_m5bkezRDMqkhzodsXcxZHgs3SX796_XpA","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true} -- root
2024-09-05 15:12:15,630 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}, 期望数据:{'message': '添加维度成功'}, 服务器返回数据:{"state":true,"message":"添加维度成功!","value":"","code":200} -- root
2024-09-05 15:12:15,989 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}, 期望数据:{'message': '添加维度成功'}, 服务器返回数据:{"state":true,"message":"添加维度成功!","value":"","code":200} -- root
2024-09-05 15:12:16,059 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}, 期望数据:{'message': '添加维度成功'}, 服务器返回数据:{"state":true,"message":"添加维度成功!","value":"","code":200} -- root
2024-09-05 15:12:16,160 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}, 期望数据:{'message': '添加维度成功'}, 服务器返回数据:{"state":true,"message":"添加维度成功!","value":"","code":200} -- root
2024-09-05 15:12:16,209 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}, 期望数据:{'message': '添加维度成功'}, 服务器返回数据:{"state":true,"message":"添加维度成功!","value":"","code":200} -- root
2024-09-05 15:12:16,280 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}, 期望数据:{'message': '添加维度成功'}, 服务器返回数据:{"state":true,"message":"添加维度成功!","value":"","code":200} -- root
2024-09-05 15:12:16,439 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/updateDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}, 期望数据:{'message': '更新维度成功'}, 服务器返回数据:{"state":true,"message":"更新维度成功!","value":"","code":200} -- root
2024-09-05 15:12:16,474 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/updateDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}, 期望数据:{'message': '更新维度成功'}, 服务器返回数据:{"state":true,"message":"更新维度成功!","value":"","code":200} -- root
2024-09-05 15:12:16,509 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/updateDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}, 期望数据:{'message': '更新维度成功'}, 服务器返回数据:{"state":true,"message":"更新维度成功!","value":"","code":200} -- root
2024-09-05 15:12:16,540 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/updateDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}, 期望数据:{'message': '更新维度成功'}, 服务器返回数据:{"state":true,"message":"更新维度成功!","value":"","code":200} -- root
2024-09-05 15:12:16,569 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/updateDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}, 期望数据:{'message': '更新维度成功'}, 服务器返回数据:{"state":true,"message":"更新维度成功!","value":"","code":200} -- root
2024-09-05 15:12:16,600 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/updateDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}, 期望数据:{'message': '更新维度成功'}, 服务器返回数据:{"state":true,"message":"更新维度成功!","value":"","code":200} -- root
2024-09-05 15:12:16,669 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/addOrg, 用例数据:{'code': 'testAddOrg', 'demId': '1831590704632668160', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据:{'message': '添加组织成功'}, 服务器返回数据:{"state":true,"message":"添加组织成功!","value":"","code":200} -- root
2024-09-05 15:12:16,729 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/addOrg, 用例数据:{'code': 'testAddOrg', 'demId': '1831590704632668160', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据:{'message': '添加组织成功'}, 服务器返回数据:{"state":true,"message":"添加组织成功!","value":"","code":200} -- root
2024-09-05 15:12:16,799 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/addOrg, 用例数据:{'code': 'testAddOrg', 'demId': '1831590704632668160', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据:{'message': '添加组织成功'}, 服务器返回数据:{"state":true,"message":"添加组织成功!","value":"","code":200} -- root
2024-09-05 15:12:16,859 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/addOrg, 用例数据:{'code': 'testAddOrg', 'demId': '1831590704632668160', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据:{'message': '添加组织成功'}, 服务器返回数据:{"state":true,"message":"添加组织成功!","value":"","code":200} -- root
2024-09-05 15:12:16,949 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/addOrg, 用例数据:{'code': 'testAddOrg', 'demId': '1831590704632668160', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据:{'message': '添加组织成功'}, 服务器返回数据:{"state":true,"message":"添加组织成功!","value":"","code":200} -- root
2024-09-05 15:12:17,159 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/addOrg, 用例数据:{'code': 'testAddOrg', 'demId': '1831590704632668160', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据:{'message': '添加组织成功'}, 服务器返回数据:{"state":true,"message":"添加组织成功!","value":"","code":200} -- root
2024-09-05 15:12:17,210 - test_bpm.py[line:52] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg, 用例数据:{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'}, 期望数据:{'message': '加入成功'}, 服务器返回数据:{"state":true,"message":"加入成功","value":"","code":200} -- root
2024-09-05 15:12:17,259 - test_bpm.py[line:52] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams, 用例数据:{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]}, 期望数据:{'message': '保存组织参数成功!'}, 服务器返回数据:{"state":true,"message":"保存组织参数成功!","value":"","code":200} -- root
2024-09-05 15:12:17,279 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/deleteOrg, 用例数据:testAddOrg, 期望数据:{'message': '删除组织成功!'}, 服务器返回数据:{"state":true,"message":"部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;","value":"","code":200} -- root
2024-09-05 15:12:17,299 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/deleteOrg, 用例数据:testAddOrg, 期望数据:{'message': '删除组织成功!'}, 服务器返回数据:{"state":true,"message":"部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;","value":"","code":200} -- root
2024-09-05 15:12:17,319 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/deleteOrg, 用例数据:testAddOrg, 期望数据:{'message': '删除组织成功!'}, 服务器返回数据:{"state":true,"message":"部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;","value":"","code":200} -- root
2024-09-05 15:12:17,339 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/deleteOrg, 用例数据:testAddOrg, 期望数据:{'message': '删除组织成功!'}, 服务器返回数据:{"state":true,"message":"部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;","value":"","code":200} -- root
2024-09-05 15:12:17,369 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/deleteOrg, 用例数据:testAddOrg, 期望数据:{'message': '删除组织成功!'}, 服务器返回数据:{"state":true,"message":"部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;","value":"","code":200} -- root
2024-09-05 15:12:17,391 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/deleteOrg, 用例数据:testAddOrg, 期望数据:{'message': '删除组织成功!'}, 服务器返回数据:{"state":true,"message":"部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;","value":"","code":200} -- root
2024-09-05 15:12:17,419 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds, 用例数据:{'ids': '1831590704632668160'}, 期望数据:{'message': '删除维度成功!'}, 服务器返回数据:{"state":false,"message":"【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 ","value":"","code":200} -- root
2024-09-05 15:12:17,450 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds, 用例数据:{'ids': '1831590704632668160'}, 期望数据:{'message': '删除维度成功!'}, 服务器返回数据:{"state":false,"message":"【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 ","value":"","code":200} -- root
2024-09-05 15:12:17,479 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds, 用例数据:{'ids': '1831590704632668160'}, 期望数据:{'message': '删除维度成功!'}, 服务器返回数据:{"state":false,"message":"【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 ","value":"","code":200} -- root
2024-09-05 15:12:17,519 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds, 用例数据:{'ids': '1831590704632668160'}, 期望数据:{'message': '删除维度成功!'}, 服务器返回数据:{"state":false,"message":"【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 ","value":"","code":200} -- root
2024-09-05 15:12:17,549 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds, 用例数据:{'ids': '1831590704632668160'}, 期望数据:{'message': '删除维度成功!'}, 服务器返回数据:{"state":false,"message":"【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 ","value":"","code":200} -- root
2024-09-05 15:12:17,584 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds, 用例数据:{'ids': '1831590704632668160'}, 期望数据:{'message': '删除维度成功!'}, 服务器返回数据:{"state":false,"message":"【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 ","value":"","code":200} -- root
2024-09-05 15:12:17,759 - test_bpm.py[line:55] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MjksImlhdCI6MTcyNTUyMDIyOX0.ps5Q6qzXan782HAGtQAd69ugrs6QwN8Y5lCBWW_tekOAexlpMFTtt-wBIP5ZXsVSEnTSbc-yAVTYl2eGTm9wzQ","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}} -- root
2024-09-05 15:12:17,799 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590711054147584"} -- root
2024-09-05 15:12:17,829 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590711209336832"} -- root
2024-09-05 15:12:17,869 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590711356137472"} -- root
2024-09-05 15:12:17,899 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590711498743808"} -- root
2024-09-05 15:12:17,929 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590711641350144"} -- root
2024-09-05 15:12:17,969 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590711779762176"} -- root
2024-09-05 15:12:18,009 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590711934951424"} -- root
2024-09-05 15:12:18,039 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590712094334976"} -- root
2024-09-05 15:12:18,079 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590712262107136"} -- root
2024-09-05 15:12:18,120 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590712434073600"} -- root
2024-09-05 15:12:18,159 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590712593457152"} -- root
2024-09-05 15:12:18,199 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590712740257792"} -- root
2024-09-05 15:12:18,242 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590712908029952"} -- root
2024-09-05 15:12:18,279 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590713067413504"} -- root
2024-09-05 15:12:18,319 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590713230991360"} -- root
2024-09-05 15:12:18,359 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590713411346432"} -- root
2024-09-05 15:12:18,399 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590713574924288"} -- root
2024-09-05 15:12:18,439 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590713738502144"} -- root
2024-09-05 15:12:18,479 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590713914662912"} -- root
2024-09-05 15:12:18,519 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590714082435072"} -- root
2024-09-05 15:12:18,559 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590714275373056"} -- root
2024-09-05 15:12:18,599 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590714438950912"} -- root
2024-09-05 15:12:18,639 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590714598334464"} -- root
2024-09-05 15:12:18,679 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590714745135104"} -- root
2024-09-05 15:12:18,713 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590714908712960"} -- root
2024-09-05 15:12:18,749 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590715076485120"} -- root
2024-09-05 15:12:18,789 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590715227480064"} -- root
2024-09-05 15:12:18,829 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590715391057920"} -- root
2024-09-05 15:12:18,869 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590715546247168"} -- root
2024-09-05 15:12:18,899 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831590715701436416"} -- root
2024-09-05 15:12:18,939 - test_bpm.py[line:55] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': ''}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账号或密码错误","code":200,"logId":"1831590715865014272"} -- root
2024-09-05 15:12:18,969 - test_bpm.py[line:55] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '#!$!@#!@#'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账号或密码错误","code":200,"logId":"1831590715986649088"} -- root
2024-09-05 15:12:18,989 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831590716083118080"} -- root
2024-09-05 15:12:19,029 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831590716213141504"} -- root
2024-09-05 15:12:19,059 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831590716347359232"} -- root
2024-09-05 15:12:19,089 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831590716498354176"} -- root
2024-09-05 15:12:19,119 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831590716619988992"} -- root
2024-09-05 15:12:19,159 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831590716758401024"} -- root
2024-09-05 15:12:19,180 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '123456'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831590716875841536"} -- root
2024-09-05 15:12:19,219 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '123456'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831590717018447872"} -- root
2024-09-05 15:12:19,249 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '123456'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831590717152665600"} -- root
2024-09-05 15:12:19,279 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '123456'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831590717278494720"} -- root
2024-09-05 15:12:19,309 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '123456'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831590717395935232"} -- root
2024-09-05 15:12:19,339 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '123456'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831590717530152960"} -- root
2024-09-05 15:12:19,379 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MzEsImlhdCI6MTcyNTUyMDIzMX0.HcxGSgiPrOfZLIPWhDVF_2EFnkaJkpmH3VSY2x1uw7WVa1g7FIW1xdmPnASO8ZYeXkhox18_Q-SVTJp-kkLS-w","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}} -- root
2024-09-05 15:12:19,419 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MzEsImlhdCI6MTcyNTUyMDIzMX0.HcxGSgiPrOfZLIPWhDVF_2EFnkaJkpmH3VSY2x1uw7WVa1g7FIW1xdmPnASO8ZYeXkhox18_Q-SVTJp-kkLS-w","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}} -- root
2024-09-05 15:12:19,459 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MzEsImlhdCI6MTcyNTUyMDIzMX0.HcxGSgiPrOfZLIPWhDVF_2EFnkaJkpmH3VSY2x1uw7WVa1g7FIW1xdmPnASO8ZYeXkhox18_Q-SVTJp-kkLS-w","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}} -- root
2024-09-05 15:12:19,489 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MzEsImlhdCI6MTcyNTUyMDIzMX0.HcxGSgiPrOfZLIPWhDVF_2EFnkaJkpmH3VSY2x1uw7WVa1g7FIW1xdmPnASO8ZYeXkhox18_Q-SVTJp-kkLS-w","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}} -- root
2024-09-05 15:12:19,530 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MzEsImlhdCI6MTcyNTUyMDIzMX0.HcxGSgiPrOfZLIPWhDVF_2EFnkaJkpmH3VSY2x1uw7WVa1g7FIW1xdmPnASO8ZYeXkhox18_Q-SVTJp-kkLS-w","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}} -- root
2024-09-05 15:12:19,569 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MzEsImlhdCI6MTcyNTUyMDIzMX0.HcxGSgiPrOfZLIPWhDVF_2EFnkaJkpmH3VSY2x1uw7WVa1g7FIW1xdmPnASO8ZYeXkhox18_Q-SVTJp-kkLS-w","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}} -- root
2024-09-05 15:12:19,599 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/refresh, 用例数据:None, 期望数据:{'message': '刷新token成功'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MzEsImlhdCI6MTcyNTUyMDIzMX0.HcxGSgiPrOfZLIPWhDVF_2EFnkaJkpmH3VSY2x1uw7WVa1g7FIW1xdmPnASO8ZYeXkhox18_Q-SVTJp-kkLS-w","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true} -- root
2024-09-05 15:12:19,629 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/refresh, 用例数据:None, 期望数据:{'message': '刷新token成功'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MzEsImlhdCI6MTcyNTUyMDIzMX0.HcxGSgiPrOfZLIPWhDVF_2EFnkaJkpmH3VSY2x1uw7WVa1g7FIW1xdmPnASO8ZYeXkhox18_Q-SVTJp-kkLS-w","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true} -- root
2024-09-05 15:12:19,659 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/refresh, 用例数据:None, 期望数据:{'message': '刷新token成功'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MzEsImlhdCI6MTcyNTUyMDIzMX0.HcxGSgiPrOfZLIPWhDVF_2EFnkaJkpmH3VSY2x1uw7WVa1g7FIW1xdmPnASO8ZYeXkhox18_Q-SVTJp-kkLS-w","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true} -- root
2024-09-05 15:12:19,689 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/refresh, 用例数据:None, 期望数据:{'message': '刷新token成功'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MzEsImlhdCI6MTcyNTUyMDIzMX0.HcxGSgiPrOfZLIPWhDVF_2EFnkaJkpmH3VSY2x1uw7WVa1g7FIW1xdmPnASO8ZYeXkhox18_Q-SVTJp-kkLS-w","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true} -- root
2024-09-05 15:12:19,719 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/refresh, 用例数据:None, 期望数据:{'message': '刷新token成功'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MzEsImlhdCI6MTcyNTUyMDIzMX0.HcxGSgiPrOfZLIPWhDVF_2EFnkaJkpmH3VSY2x1uw7WVa1g7FIW1xdmPnASO8ZYeXkhox18_Q-SVTJp-kkLS-w","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true} -- root
2024-09-05 15:12:19,750 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/refresh, 用例数据:None, 期望数据:{'message': '刷新token成功'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY2MzEsImlhdCI6MTcyNTUyMDIzMX0.HcxGSgiPrOfZLIPWhDVF_2EFnkaJkpmH3VSY2x1uw7WVa1g7FIW1xdmPnASO8ZYeXkhox18_Q-SVTJp-kkLS-w","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true} -- root
2024-09-05 15:14:54,239 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/addDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 1, 'name': 'requests添加的维度'}, 期望数据:{'message': '添加维度成功'}, 服务器返回数据:{"state":true,"message":"添加维度成功!","value":"","code":200} -- root
2024-09-05 15:14:54,514 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/updateDem, 用例数据:{'code': 'requestsAddDem', 'description': 'requestsAddDem', 'isDefault': 0, 'name': 'requestsAddDem'}, 期望数据:{'message': '更新维度成功'}, 服务器返回数据:{"state":true,"message":"更新维度成功!","value":"","code":200} -- root
2024-09-05 15:14:54,579 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/addOrg, 用例数据:{'code': 'testAddOrg', 'demId': '1831591367190093824', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试添加的组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}, 期望数据:{'message': '添加组织成功'}, 服务器返回数据:{"state":true,"message":"添加组织成功!","value":"","code":200} -- root
2024-09-05 15:14:54,634 - test_bpm.py[line:52] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/api/org/v1/orgUsers/addUsersForOrg, 用例数据:{'orgCode': 'testAddOrg', 'accounts': 'admin,guest'}, 期望数据:{'message': '加入成功'}, 服务器返回数据:{"state":true,"message":"加入成功","value":"","code":200} -- root
2024-09-05 15:14:54,669 - test_bpm.py[line:52] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/api/org/v1/orgParam/saveOrgParams, 用例数据:{'query': {'orgCode': 'testAddOrg'}, 'body': [{'alias': 'hxxmts', 'value': '项目中没有关系户'}]}, 期望数据:{'message': '保存组织参数成功!'}, 服务器返回数据:{"state":true,"message":"保存组织参数成功!","value":"","code":200} -- root
2024-09-05 15:14:54,689 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/org/v1/org/deleteOrg, 用例数据:testAddOrg, 期望数据:{'message': '删除组织成功!'}, 服务器返回数据:{"state":true,"message":"部分删除成功,其中编码为【\"testAddOrg\"】的组织不存在;","value":"","code":200} -- root
2024-09-05 15:14:54,736 - test_bpm.py[line:49] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/api/demension/v1/dem/deleteDemByIds, 用例数据:{'ids': '1831591367190093824'}, 期望数据:{'message': '删除维度成功!'}, 服务器返回数据:{"state":false,"message":"【requestsAddDem(requestsAddDem)】的维度下存在组织,不允许删除 ","value":"","code":200} -- root
2024-09-05 15:14:54,849 - test_bpm.py[line:55] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY3ODYsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}} -- root
2024-09-05 15:14:54,869 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591369895419904"} -- root
2024-09-05 15:14:54,929 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': '#!$!@#!@#', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591370117718016"} -- root
2024-09-05 15:14:54,969 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminadminadminadminadminadminadminadminadmin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591370306461696"} -- root
2024-09-05 15:14:55,009 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'a', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591370478428160"} -- root
2024-09-05 15:14:55,059 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'adminxyz', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ='}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账户错误或该租户未启用","code":200,"logId":"1831591370662977536"} -- root
2024-09-05 15:14:55,099 - test_bpm.py[line:55] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': ''}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账号或密码错误","code":200,"logId":"1831591370847526912"} -- root
2024-09-05 15:14:55,137 - test_bpm.py[line:55] - INFO: 断言成功,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '#!$!@#!@#'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"账号或密码错误","code":200,"logId":"1831591370985938944"} -- root
2024-09-05 15:14:55,159 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jznbF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831591371094990848"} -- root
2024-09-05 15:14:55,199 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': '123456'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"state":false,"message":"解密密码异常,请检查RSA公钥和私钥配置","code":200,"logId":"1831591371262763008"} -- root
2024-09-05 15:14:55,259 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/auth, 用例数据:{'username': 'admin', 'password': 'bF6N3L93cX8pV6x2yEqxNjwIIPaEOYw9bNI5GuIY4g9MeoFyPFPL5WteHaV0LcxQqmDJWlhuCRMXzAPvrFcxJrA8BgGjJpmB1WMrQrazIJPbWbCfmDit2s2jzn+DRerVlYIFojDM96y24drEniwWzHtaJKiWoc7LGL1csNmokvQ'}, 期望数据:{'message': '账号或密码错误'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY3ODYsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg","username":"超级管理员","account":"admin","userId":"1","expiration":86400,"loginStatus":true,"userAttrs":{"tenantId":"-1"}} -- root
2024-09-05 15:14:55,299 - test_bpm.py[line:52] - ERROR: 断言失败,接口url为:http://36.139.193.99:8088/refresh, 用例数据:None, 期望数据:{'message': '刷新token成功'}, 服务器返回数据:{"token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE3MjU2MDY3ODYsImlhdCI6MTcyNTUyMDM4Nn0.RihC2cKkHLGDyz9qBljX_8V3cWeoY4DxBHs45mI47F1yFLEpnSp25m77E-g_RBMXdwrwsCcAEQ3CDIK507OHRg","username":"admin","account":"admin","userId":"","expiration":86400,"loginStatus":true} -- root
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: __init__.py
# Author: H_M
# Datetime: 2024/9/4 18:25
# Description:
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: requests_method.py
# Author: H_M
# Datetime: 2024/9/3 19:10
# Description:
# ---------------------------------------------------------------------------
import requests
from MyApiAutoTest_v3.common.basic_read_ini import BasicReadIni
class RequestMethod:
def __init__(self):
"""获取token配置token到headers中"""
login_url = BasicReadIni().get_host("bpm_host") + '/auth'
login_data = {"username": "admin", "password": "Pal0LcFUx+ke5uL88fo7YQzfHZwY5D2Lk76pzG1GjiMLlL6SmA6ls13w2X"
"zN3iSTHXkyqLuY+VT9W9AVUv3gz+4u97eX2myDxC4o4Ov15QWxTEhrPlN"
"NZf18zNEdNRstYUcpDYo5pnWI+zHI5TiRUwcTETG9LqC7cidO0u1cFH4="}
self.sess = requests.sessions.Session()
self.sess.headers['Authorization'] = 'Bearer ' + self.sess.request(method='post', url=login_url, json=login_data).json().get('token')
def request_all(self, url, method, mediatype, case_data):
"""
封装公共的请求方法
:param method: http协议的请求方法
:param url: 请求的url
:param mediatype: 请求的媒体类型
:param case_data: 用例数据
:return: Response type
"""
if mediatype == 'application/json' or mediatype == 'json':
return self.sess.request(url=url, method=method, json=case_data)
elif mediatype == 'query' or mediatype == 'params':
return self.sess.request(url=url, method=method, params=case_data)
elif mediatype == 'application/x-www-form-urlencoded' or mediatype == 'form':
return self.sess.request(url=url, method=method, data=case_data)
elif mediatype == 'multipart/form-data' or mediatype == 'form-data':
return self.sess.request(url=url, method=method, files=case_data)
elif mediatype is None:
return self.sess.request(url=url, method=method)
elif mediatype == 'query|json' or mediatype == 'json|query':
return self.sess.request(url=url, method=method, params=case_data['query'], json=case_data['body'])
else:
raise ValueError('自行补充媒体类型,封装方法')
if __name__ == '__main__':
res = RequestMethod()
print(res.sess.headers)
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: __init__.py
# Author: H_M
# Datetime: 2024/9/4 18:25
# Description:
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: __init__.py
# Author: H_M
# Datetime: 2024/9/4 19:56
# Description:
# ---------------------------------------------------------------------------
username = 'ls'
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: conftest.py
# Author: H_M
# Datetime: 2024/9/3 19:24
# Description:
# ---------------------------------------------------------------------------
import pytest
from MyApiAutoTest_v3.common.db import DB
from MyApiAutoTest_v3.request_method.requests_method import RequestMethod
@pytest.fixture(scope='session')
def fix_db():
db = DB()
yield db
@pytest.fixture(scope='session')
def fix_req():
req = RequestMethod()
yield req
[pytest]
; ;开启日志
; log_cli=true
; ;设置日志的级别,如果不设置级别的话,可以设置为NOTSET,如果要设置级别,级别可以有debug,info,warning,error,致命
; log_level=NOTSET
; ;设置日志显示的信息格式
; log_format=%(levelname)s--%(asctime)s--%(message)s
; ;设置日志中时间显示的格式
; log_date_format=%Y-%m-%d %H:%M:%S
; ;每个py文件运行的时候追加的命令
; ;addopts=-vs
; ;设置日志保存的文件
; log_file=../report/log/bpm_test.log
;设置日志保存在文件中的级别
log_file_level=error
;设置日志在文件中的信息格式
log_file_format=%(levelname)s--%(asctime)s--%(message)s
;设置文件日志中时间显示的格式
log_file_date_format=%Y-%m-%d %H:%M:%S
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: test_bpm.py
# Author: H_M
# Datetime: 2024/9/3 19:24
# Description:
# --------------------------------------------------------------------------
import allure
import pytest
from MyApiAutoTest_v3.common.read_excel import ReadExcel
from MyApiAutoTest_v3 import log
from MyApiAutoTest_v3.test_case.test_ls import username
readexcel = ReadExcel(username)
class TestBpm:
@allure.epic("BPM项目-Demo")
@pytest.mark.parametrize('module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key', readexcel.get_data())
def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key):
"""测试用例"""
allure.dynamic.feature(module)
allure.dynamic.story(api)
allure.dynamic.title(title)
allure.dynamic.severity(level)
print(url, method, mediatype, case, expect, sql, sql_type, update_key)
if sql_type == 'delete':
fix_db.delete(sql['delete'])
elif sql_type == 'select':
sec_res = fix_db.select(sql['select'])
case[update_key] = sec_res
elif sql_type == 'select|delete' or sql_type == 'delete|select':
fix_db.delete(sql['delete'])
sec_res = fix_db.select(sql['select'])
case[update_key] = sec_res
res = fix_req.request_all(url, method, mediatype, case)
try:
for key in expect.keys():
assert expect[key] == res.json().get(key)
except AssertionError:
log.error(f"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}")
raise AssertionError("断言失败")
else:
log.info(f"断言成功,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}")
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: __init__.py
# Author: H_M
# Datetime: 2024/9/4 19:56
# Description:
# ---------------------------------------------------------------------------
username = 'zs'
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: conftest.py
# Author: H_M
# Datetime: 2024/9/3 19:24
# Description:
# ---------------------------------------------------------------------------
import pytest
from MyApiAutoTest_v3.common.db import DB
from MyApiAutoTest_v3.request_method.requests_method import RequestMethod
@pytest.fixture(scope='session')
def fix_db():
db = DB()
yield db
@pytest.fixture(scope='session')
def fix_req():
req = RequestMethod()
yield req
[pytest]
; ;开启日志
; log_cli=true
; ;设置日志的级别,如果不设置级别的话,可以设置为NOTSET,如果要设置级别,级别可以有debug,info,warning,error,致命
; log_level=NOTSET
; ;设置日志显示的信息格式
; log_format=%(levelname)s--%(asctime)s--%(message)s
; ;设置日志中时间显示的格式
; log_date_format=%Y-%m-%d %H:%M:%S
; ;每个py文件运行的时候追加的命令
; ;addopts=-vs
; ;设置日志保存的文件
; log_file=../report/log/bpm_test.log
;设置日志保存在文件中的级别
log_file_level=error
;设置日志在文件中的信息格式
log_file_format=%(levelname)s--%(asctime)s--%(message)s
;设置文件日志中时间显示的格式
log_file_date_format=%Y-%m-%d %H:%M:%S
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: PythonProject_1
# FileName: test_bpm.py
# Author: H_M
# Datetime: 2024/9/3 19:24
# Description:
# --------------------------------------------------------------------------
import allure
import pytest
from MyApiAutoTest_v3.common.read_excel import ReadExcel
from MyApiAutoTest_v3 import log
from MyApiAutoTest_v3.test_case.test_zs import username
readexcel = ReadExcel(username)
class TestBpm:
@allure.epic("BPM项目-Demo")
@pytest.mark.parametrize(
'module, api, title, level, url, method, mediatype, case, expect, sql, sql_type, update_key',
readexcel.get_data())
def test_bpm(self, fix_req, fix_db, module, api, title, level, url, method, mediatype, case, expect, sql, sql_type,
update_key):
"""测试用例"""
allure.dynamic.feature(module)
allure.dynamic.story(api)
allure.dynamic.title(title)
allure.dynamic.severity(level)
print(url, method, mediatype, case, expect, sql, sql_type, update_key)
if sql_type == 'delete':
fix_db.delete(sql['delete'])
elif sql_type == 'select':
sec_res = fix_db.select(sql['select'])
case[update_key] = sec_res
elif sql_type == 'select|delete' or sql_type == 'delete|select':
fix_db.delete(sql['delete'])
sec_res = fix_db.select(sql['select'])
case[update_key] = sec_res
res = fix_req.request_all(url, method, mediatype, case)
try:
for key in expect.keys():
assert expect[key] == res.json().get(key)
except AssertionError:
log.error(f"断言失败,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}")
raise AssertionError("断言失败")
else:
log.info(f"断言成功,接口url为:{url}, 用例数据:{case}, 期望数据:{expect}, 服务器返回数据:{res.text}")
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