Commit 335fc15b by Flechazo

APITestAuto_v1.0

parent dc7ec7f4
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: pythonProject
# FileName: __init__.py
# Author: liunian
# Datetime: 2024/1/6 9:12
# Description:
#
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: pythonProject
# FileName: __init__.py
# Author: liunian
# Datetime: 2024/1/6 14:28
# Description:
#
# ---------------------------------------------------------------------------
import functools
import os
from APITestFrame1.common.log import log
# 日志文件的路径,需要先创建好日志文件
log_path = os.path.join(os.path.join(os.path.join(os.path.dirname(os.path.dirname(__file__)), "report"), "log"), "log_template.log")
print(log_path)
# 获取loger
loger = log(log_path)
# 装饰器
def log_decorator(func):
@functools.wraps(func) # 解决被装饰函数和方法名重名的问题,它会将被装饰的函数或方法使用原来的名称
def inner(*args, **kwargs):
# 在执行func之前需要获取func的名称和功能,并写入到日志
loger.info("功能的名称为:"+str(func.__name__)+" 功能的描述为:"+str(func.__doc__))
try:
# 执行func
result = func(*args, **kwargs)
except Exception as e:
# 如果有错误,需要写入到日志
loger.error(str(e))
# 将错误,原路返回
raise e
else:
return result
return inner
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: pythonProject
# FileName: db.py
# Author: liunian
# Datetime: 2024/1/6 10:47
# Description:
#
# ---------------------------------------------------------------------------
import pymysql
from APITestFrame1.common.read_ini import Read_ini
from APITestFrame1.data_config.settings import *
class DB:
def __init__(self):
"""连接数据库,创建游标"""
read_ini = Read_ini()
self.conn = pymysql.connect(
host=read_ini.get_sql(SQL_HOST),
port=int(read_ini.get_sql(SQL_PORT)),
user=read_ini.get_sql(SQL_USER),
password=read_ini.get_sql(SQL_PWD),
database=read_ini.get_sql(SQL_DATABASE),
charset="utf8"
)
self.cursor = self.conn.cursor()
def select(self, sql_content: str):
"""sql查询语句"""
try:
self.cursor.execute(sql_content)
except:
raise ValueError("请察看sql语句是否正确")
else:
return self.cursor.fetchall()[0][0]
def delete(self, sql_content: str):
"""sql删除语句"""
try:
self.cursor.execute(sql_content)
self.conn.commit()
except:
raise ValueError("请察看sql语句是否正确")
def close(self):
"""关闭sql连接"""
self.cursor.close()
self.conn.close()
if __name__ == '__main__':
print(DB().select('select ID_ from uc_demension WHERE `CODE_`="test58_dem_abc"'))
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: pythonProject
# FileName: log.py
# Author: liunian
# Datetime: 2024/1/6 14:28
# Description:
#
# ---------------------------------------------------------------------------
import logging
def log(filename):
# 创建logger对象
loger = logging.getLogger()
# 创建文件的控制器
handler = logging.FileHandler(filename, mode="a", encoding="utf-8")
# 设置日志文件中内容的格式
formatter = logging.Formatter('%(levelname)s--%(asctime)s--%(message)s')
# 格式添加到文件的控制器中
handler.setFormatter(formatter)
# logger对象添加文件控制器
loger.addHandler(handler)
# 设置日志文件的级别
loger.level = logging.INFO
return loger
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: pythonProject
# FileName: read_excel.py
# Author: liunian
# Datetime: 2024/1/6 9:46
# Description:
#
# ---------------------------------------------------------------------------
import os.path
import openpyxl
from APITestFrame1.common.read_ini import Read_ini
from APITestFrame1.common.read_json import read_json
from APITestFrame1.data_config.settings import *
class Read_excel:
def __init__(self, excel_path, case_path, expect_path, sql_path, table_name):
"""根据传入的文件路径,读取文件中的内容"""
self.case_data = read_json(case_path)
self.expect_data = read_json(expect_path)
self.sql_data = read_json(sql_path)
try:
wb = openpyxl.load_workbook(excel_path)
self.ws = wb[table_name]
except:
raise ValueError("传入的excel路径或者工作表的名称错误")
def __get_cell_value(self, column: str, row: int):
"""获取单元格的值"""
try:
cell_value = self.ws[column + str(row)].value
except:
raise ValueError("传入的列号或行号错误")
else:
if cell_value is None:
return None
elif cell_value:
return cell_value.strip()
def get_module_name(self, row):
"""获取模块名称"""
return self.__get_cell_value(MODULE_NAME, row)
def get_API_name(self, row):
"""获取接口名称"""
return self.__get_cell_value(API_NAME, row)
def get_title_name(self, row):
"""获取标题名称"""
return self.__get_cell_value(TITLE, row)
def get_case_level(self, row):
"""获取用例等级"""
return self.__get_cell_value(LEVEL, row)
def get_request_method(self, row):
"""获取请求方法"""
return self.__get_cell_value(REQUEST_METHOD, row)
def get_url_path(self, row):
"""获取请求URL"""
res = self.__get_cell_value(PATH, row)
if res:
return Read_ini().get_host(SYSTEM_URL) + res
def get_media_type(self, row):
"""获取媒体类型"""
res = self.__get_cell_value(MIME, row)
if res:
return res.lower()
def get_case_data(self, row):
"""获取用例数据"""
res = self.__get_cell_value(CASE_DATA, row)
if res:
module_name = self.get_module_name(row)
API_name = self.get_API_name(row)
return self.case_data[module_name][API_name][res]
def get_expect_data(self, row):
"""获取期望数据"""
res = self.__get_cell_value(EXPECT_DATA, row)
if res:
module_name = self.get_module_name(row)
API_name = self.get_API_name(row)
return self.expect_data[module_name][API_name][res]
def get_sql_type(self, row):
"""获取sql语句类型"""
res = self.__get_cell_value(SQL_TYPE, row)
if res:
return res.lower()
def get_sql_content(self, row):
"""获取sql语句"""
res = self.__get_cell_value(SQL_DATA, row)
if res:
module_name = self.get_module_name(row)
API_name = self.get_API_name(row)
return self.sql_data[module_name][API_name][res]
def get_update_key(self, row):
"""获取更新的key"""
return self.__get_cell_value(UPDATE_KEY, row)
def datas(self):
result = []
for row in range(2, self.ws.max_row + 1):
get_module_name=self.get_module_name(row)
get_API_name = self.get_API_name(row)
get_title_name = self.get_title_name(row)
get_case_level = self.get_case_level(row)
get_request_method = self.get_request_method(row)
get_url_path = self.get_url_path(row)
get_media_type = self.get_media_type(row)
get_case_data = self.get_case_data(row)
get_expect_data = self.get_expect_data(row)
get_sql_type = self.get_sql_type(row)
get_sql_content = self.get_sql_content(row)
get_update_key = self.get_update_key(row)
res_list = [get_module_name,get_API_name, get_title_name, get_case_level, get_request_method, get_url_path, get_media_type,
get_case_data, get_expect_data, get_sql_type, get_sql_content, get_update_key]
if res_list.count(None) <= 5:
result.append(res_list)
else:
return result
if __name__ == '__main__':
dirname_path = os.path.join(os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config"),
"data_template")
case_path = os.path.join(dirname_path, "case_data.json")
expect_path = os.path.join(dirname_path, "expect_data.json")
sql_path = os.path.join(dirname_path, "sql_data.json")
excel_path = os.path.join(dirname_path, "APIAutoTest.xlsx")
table_name = "BPM"
print(Read_excel(excel_path, case_path, expect_path, sql_path, table_name).datas())
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: pythonProject
# FileName: read_ini.py
# Author: liunian
# Datetime: 2024/1/6 9:27
# Description:
#
# ---------------------------------------------------------------------------
import configparser
import os
from APITestFrame1.data_config.settings import *
class Read_ini:
def __init__(self):
"""获取配置文件路径,并读取数据"""
configini_path = os.path.join(os.path.join(os.path.dirname(os.path.dirname(__file__)), "data_config"),
"config.ini")
self.conf = configparser.ConfigParser()
self.conf.read(configini_path, encoding="utf-8")
def get_host(self, key):
"""获取ini文件中的域名IP"""
try:
res = self.conf.get(HOST, key)
except:
raise KeyError("传入的key值有误~~~")
else:
return res
def get_sql(self,key):
"""获取ini文件中的sql配置"""
try:
res=self.conf.get(SQL,key)
except:
raise KeyError("传入的key值有误~~~")
else:
return res
if __name__ == '__main__':
print(Read_ini().get_host(SYSTEM_URL))
print(Read_ini().get_sql(SQL_PWD))
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: pythonProject
# FileName: read_json.py
# Author: liunian
# Datetime: 2024/1/6 9:40
# Description:
#
# ---------------------------------------------------------------------------
import json
import os.path
def read_json(file_path: str):
"""获取json文件,并将json文件数据转为python数据"""
if os.path.isfile(file_path) and file_path.endswith(".json"):
with open(file_path, mode="r", encoding="utf-8") as f:
try:
res = json.loads(f.read())
except:
raise FileExistsError("将文件的内容转成python对象出错~~")
else:
return res
else:
raise FileNotFoundError("传入的json文件错误")
if __name__ == '__main__':
print(read_json("E:\Python_File\pythonProject\APITestFrame1\data_config\data_template\case_data.json"))
\ No newline at end of file
;域名
[host]
bpm = http://120.46.172.186:8080
;数据库配置
[sql]
host = 120.46.172.186
port = 3306
user = root
pwd = root@2023
database = eipsaas
\ No newline at end of file
{
"认证接口":{
"登录系统":{
"LoginSuccess":{"username":"admin","password":"MTIzNDU2"},
"LoginErrorUsernameIsNone":{"username":"","password":"MTIzNDU2"},
"LoginErrorUsernameIsShort":{"username":"a","password":"MTIzNDU2"},
"LoginErrorUsernameIsLong":{"username":"adminadminadminadminadminadminadminadminadminadmin","password":"MTIzNDU2"},
"LoginErrorUsernameIsSpecial":{"username":"♠♣▣▤▥▦▩◘◙◈","password":"MTIzNDU2"},
"LoginErrorUsernameIsError":{"username":"Admin","password":"MTIzNDU2"},
"LoginErrorPasswordIsNone":{"username":"admin","password":""},
"LoginErrorPasswordIsLong":{"username":"admin","password":"MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2"},
"LoginErrorPasswordIsShort":{"username":"admin","password":"m"},
"LoginErrorPasswordIsSpecial":{"username":"admin","password":"♠♣▣▤▥▦▩◘◙◈"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {
"code": "test58_dem_abc",
"description": "测试维度-58",
"isDefault": 0,
"name": "测试维度-58"
}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "需要更新"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "test_58_org",
"demId": "需要更新",
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": "测试组织-58",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"用户加入组织": {
"OrgAddUserSuccess": {"orgCode": "test_58_org", "accounts": "admin,guest"}
},
"保存组织参数": {
"OrgSaveParamSuccess": {"query": {"orgCode": "test_58_org"}, "json": [{"alias": "sz", "value": "999"}]}
},
"删除组织": {
"DeleteOrgSuccess": "test_58_org"
}
},
"用户管理": {
"添加用户": {
"AddUserSuccess": {"id":"","account":"laowang","address":"","email":"","fullname":"laowang","mobile":"","password":"123456","photo":"","sex":"","status":1}
}
}
}
{
"认证接口":{
"登录系统":{
"LoginSuccess":{"username":"超级管理员","account":"admin","loginStatus":true},
"LoginErrorUsernameIsNone":{"state":false,"message":"账号或密码错误"},
"LoginErrorUsernameIsShort":{"state":false,"message":"账号或密码错误"},
"LoginErrorUsernameIsLong":{"state":false,"message":"账号或密码错误"},
"LoginErrorUsernameIsSpecial":{"state":false,"message":"账号或密码错误"},
"LoginErrorUsernameIsError":{"state":false,"message":"账号或密码错误"},
"LoginErrorPasswordIsNone":{"state":false,"message":"账号或密码错误"},
"LoginErrorPasswordIsLong":{"state":false,"message":"账号或密码错误"},
"LoginErrorPasswordIsShort":{"state":false,"message":"账号或密码错误"},
"LoginErrorPasswordIsSpecial":{"state":false,"message":"账号或密码错误"}
},
"刷新token": {
"RefreshTokenSuccess": null
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"message": "添加维度成功!"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"message": "删除维度成功!"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"message": "添加组织成功!"}
},
"用户加入组织": {
"OrgAddUserSuccess": {"state":true,"message":"加入成功"}
},
"保存组织参数": {
"OrgSaveParamSuccess": {"state":true,"message":"保存组织参数成功!"}
},
"删除组织": {
"DeleteOrgSuccess": {"state":true,"message":"删除组织成功!"}
}
},
"用户管理": {
"添加用户": {
"AddUserSuccess": {"state":true,"message":"用户添加成功!"}
}
}
}
{
"维度管理": {
"添加维度": {
"AddDemSuccess": " delete from uc_demension WHERE `CODE_`=\"test58_dem_abc\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "select ID_ from uc_demension WHERE `CODE_`=\"test58_dem_abc\";"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"delete": "delete from uc_org WHERE `CODE_`=\"test_58_org\";", "select": "select ID_ from uc_demension WHERE `CODE_`=\"test58_dem_abc\";"}
}
},
"用户管理": {
"添加用户": {
"AddUserSuccess": "delete from uc_user WHERE `ACCOUNT_`=\"laowang\";"
}
}
}
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: pythonProject
# FileName: settings.py
# Author: liunian
# Datetime: 2024/1/6 9:20
# Description:
#
# ---------------------------------------------------------------------------
# "ini文件中的节点"
HOST="host"
SQL="sql"
# --------------------------------------------------
# 配置HOST节点下的key
SYSTEM_URL="bpm"
# --------------------------------------------------
# 配置SQL节点下的key
SQL_HOST="host"
SQL_PORT="port"
SQL_USER="user"
SQL_PWD="pwd"
SQL_DATABASE="database"
# --------------------------------------------------
# 配置Excel用例文件中的列号
MODULE_NAME = "B" # 模块名称
API_NAME = "c" # 接口名称
TITLE = "d" # 标题
LEVEL = "E" # 用例等级
REQUEST_METHOD = "F" # 请求方法
PATH = "G" # 路径
MIME = "H" # 媒体类型
CASE_DATA = "I" # 用例数据
EXPECT_DATA = "J" # 期望数据
SQL_TYPE = "K" # SQL语句类型
SQL_DATA = "L" # SQL语句
UPDATE_KEY = "M" # 更新的key
\ No newline at end of file
{"uuid": "e53dce98-6b22-4dd2-a084-4237c3fd4f99", "befores": [{"name": "get_case_level", "status": "passed", "start": 1704525180551, "stop": 1704525180551}], "start": 1704525180551, "stop": 1704525180899}
\ No newline at end of file
{"uuid": "5cffafe6-9621-4575-95e3-ffdf2e8ee148", "befores": [{"name": "get_title_name", "status": "passed", "start": 1704525180264, "stop": 1704525180264}], "start": 1704525180264, "stop": 1704525180384}
\ No newline at end of file
{"uuid": "eaec64d9-7379-43f0-ba7f-b89a605f6473", "befores": [{"name": "get_case_level", "status": "passed", "start": 1704525180264, "stop": 1704525180264}], "start": 1704525180264, "stop": 1704525180383}
\ No newline at end of file
{"uuid": "265c001b-2528-4b53-a81d-c210effbf1b1", "befores": [{"name": "get_request_method", "status": "passed", "start": 1704525182582, "stop": 1704525182582}], "start": 1704525182582, "stop": 1704525182741}
\ No newline at end of file
{"uuid": "bec66989-d309-4740-9def-7d1633d57633", "befores": [{"name": "get_request_method", "status": "passed", "start": 1704525180986, "stop": 1704525180986}], "start": 1704525180986, "stop": 1704525181116}
\ No newline at end of file
INFO  root:__init__.py:27 功能的名称为:test_template 功能的描述为:None
\ No newline at end of file
{"uuid": "27284cfa-25f5-4250-997c-be6e16000d85", "befores": [{"name": "get_case_level", "status": "passed", "start": 1704525182314, "stop": 1704525182314}], "start": 1704525182314, "stop": 1704525182377}
\ No newline at end of file
{"uuid": "3fd7aa1e-a278-4f4c-8695-d2bb88808317", "befores": [{"name": "get_url_path", "status": "passed", "start": 1704525182582, "stop": 1704525182583}], "start": 1704525182582, "stop": 1704525182741}
\ No newline at end of file
{"uuid": "9bf6332b-b40b-4afa-b1ff-642ee618e539", "befores": [{"name": "get_url_path", "status": "passed", "start": 1704525180551, "stop": 1704525180552}], "start": 1704525180551, "stop": 1704525180898}
\ No newline at end of file
{"uuid": "ca1a4c84-0b92-43eb-8c6a-9a2a02b841b4", "befores": [{"name": "get_media_type", "status": "passed", "start": 1704525182472, "stop": 1704525182472}], "start": 1704525182472, "stop": 1704525182577}
\ No newline at end of file
{"uuid": "b474d207-ad30-4e5c-8c4c-d35b04028d83", "befores": [{"name": "get_url_path", "status": "passed", "start": 1704525182472, "stop": 1704525182472}], "start": 1704525182472, "stop": 1704525182577}
\ No newline at end of file
{"uuid": "235aa4e9-206e-4d72-bf5b-756bb97346df", "befores": [{"name": "get_media_type", "status": "passed", "start": 1704525180122, "stop": 1704525180122}], "start": 1704525180122, "stop": 1704525180244}
\ No newline at end of file
{"uuid": "166ce59d-76ae-4a92-bbe5-16fc7a882bf2", "befores": [{"name": "get_sql_content", "status": "passed", "start": 1704525180552, "stop": 1704525180552}], "start": 1704525180552, "stop": 1704525180896}
\ No newline at end of file
{"uuid": "7ed4decc-752e-41e3-b8cb-23f1f68aff48", "befores": [{"name": "get_media_type", "status": "passed", "start": 1704525179950, "stop": 1704525179950}], "start": 1704525179950, "stop": 1704525180023}
\ No newline at end of file
{"uuid": "6bb91f43-d883-4800-aca5-c2bdba878f52", "befores": [{"name": "get_expect_data", "status": "passed", "start": 1704525182314, "stop": 1704525182314}], "start": 1704525182314, "stop": 1704525182375}
\ No newline at end of file
INFO  root:__init__.py:27 功能的名称为:test_template 功能的描述为:None
\ No newline at end of file
{"uuid": "6b4f3166-60cd-4283-b40c-2ad307034b17", "befores": [{"name": "get_API_name", "status": "passed", "start": 1704525181259, "stop": 1704525181259}], "start": 1704525181259, "stop": 1704525181400}
\ No newline at end of file
INFO  root:__init__.py:27 功能的名称为:test_template 功能的描述为:None
\ No newline at end of file
{"uuid": "b5ee6c57-8256-404e-b7c6-97eda0d32672", "befores": [{"name": "get_update_key", "status": "passed", "start": 1704525181127, "stop": 1704525181127}], "start": 1704525181127, "stop": 1704525181245}
\ No newline at end of file
{"uuid": "6066042f-5aee-4806-bf7d-163eb2ff2da5", "befores": [{"name": "get_case_data", "status": "passed", "start": 1704525180986, "stop": 1704525180986}], "start": 1704525180986, "stop": 1704525181112}
\ No newline at end of file
{"uuid": "f854a8cb-8f4b-4798-8834-e4f6ad2f055f", "befores": [{"name": "get_case_level", "status": "passed", "start": 1704525180388, "stop": 1704525180388}], "start": 1704525180388, "stop": 1704525180543}
\ No newline at end of file
INFO  root:__init__.py:27 功能的名称为:test_template 功能的描述为:None
\ No newline at end of file
INFO  root:__init__.py:27 功能的名称为:test_template 功能的描述为:None
\ No newline at end of file
{"uuid": "82ed814b-28dc-4f8d-80e4-969bb4b1adf6", "befores": [{"name": "get_url_path", "status": "passed", "start": 1704525182314, "stop": 1704525182314}], "start": 1704525182314, "stop": 1704525182376}
\ No newline at end of file
{"uuid": "be5350d6-adc9-4d60-8607-9d40a26a32d8", "befores": [{"name": "get_module_name", "status": "passed", "start": 1704525180986, "stop": 1704525180986}], "start": 1704525180986, "stop": 1704525181119}
\ No newline at end of file
{"uuid": "f86a5587-2dc9-42f4-8933-0616583e0eaa", "befores": [{"name": "get_title_name", "status": "passed", "start": 1704525182237, "stop": 1704525182237}], "start": 1704525182237, "stop": 1704525182309}
\ No newline at end of file
{"uuid": "9e88edea-c311-48a0-8666-34540ce37882", "befores": [{"name": "get_case_level", "status": "passed", "start": 1704525180903, "stop": 1704525180903}], "start": 1704525180903, "stop": 1704525180981}
\ No newline at end of file
{"uuid": "0eba02d2-a0e2-45fb-8b2a-39a7b41aa71e", "befores": [{"name": "get_title_name", "status": "passed", "start": 1704525180551, "stop": 1704525180551}], "start": 1704525180551, "stop": 1704525180899}
\ No newline at end of file
{"name": "反向用例-username错误", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <APITestFrame1.test_case.test_template.test_template.TestTemplate object at 0x0000022AC510E410>\nreq_fix = <APITestFrame1.request_method.request_methods.Requesting object at 0x0000022AC518AE90>\ndb_fix = <APITestFrame1.common.db.DB object at 0x0000022AC4C9B450>, get_module_name = '认证接口', get_API_name = '登录系统'\nget_title_name = '反向用例-username错误', get_case_level = '中', get_request_method = 'Post', get_url_path = 'http://120.46.172.186:8080/auth'\nget_media_type = 'json', get_case_data = {'password': 'MTIzNDU2', 'username': 'Admin'}, get_expect_data = {'message': '账号或密码错误', 'state': False}\nget_sql_type = None, get_sql_content = None, get_update_key = None\n\n @log_decorator\n @allure.epic(\"BPM系统-模板\")\n @pytest.mark.parametrize(\n \"get_module_name,get_API_name, get_title_name, get_case_level, get_request_method, get_url_path, get_media_type,get_case_data, get_expect_data, get_sql_type, get_sql_content, get_update_key\",\n Read_excel(excel_path=excel_path, case_path=case_path, expect_path=expect_path,\n sql_path=sql_path, table_name=table_name).datas())\n def test_template(self, req_fix, db_fix, get_module_name, get_API_name, get_title_name, get_case_level, get_request_method,\n get_url_path, get_media_type,\n get_case_data, get_expect_data, get_sql_type, get_sql_content, get_update_key):\n # 调用allure的功能,影响报告的内容\n allure.dynamic.feature(get_module_name)\n allure.dynamic.story(get_API_name)\n allure.dynamic.title(get_title_name)\n allure.dynamic.severity(get_case_level)\n # print(get_case_data, get_expect_data, get_sql_type, get_sql_content, get_update_key)\n if get_sql_type == \"delete\":\n db_fix.delete(get_sql_content)\n elif get_sql_type == \"select\":\n ids = db_fix.select(get_sql_content)\n get_case_data[get_update_key] = ids\n elif get_sql_type == \"delete|select\" or get_sql_type == \"select|delete\":\n db_fix.delete(get_sql_content[\"delete\"])\n ids = db_fix.select(get_sql_content[\"select\"])\n get_case_data[get_update_key] = ids\n # print(get_url_path, get_request_method, get_case_data, get_media_type)\n result = req_fix.request_all(req_url=get_url_path, req_method=get_request_method, media_type=get_media_type,\n req_data=get_case_data)\n try:\n for i in get_expect_data.keys():\n> assert get_expect_data[i] == result.json().get(i)\nE AssertionError: assert False == None\nE + where None = <built-in method get of dict object at 0x0000022AC5110F80>('state')\nE + where <built-in method get of dict object at 0x0000022AC5110F80> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...AsImlhdCI6MTcwNDUyNTE4MH0.5JxsHITSZUZInewJR2-gFoTlL7GBOfRJQsdXcy2bs6SGgfed7k4tvspRRTP2-KTUWmejI-_NJ9ZJCzYEtAkgeA', ...}.get\nE + where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...AsImlhdCI6MTcwNDUyNTE4MH0.5JxsHITSZUZInewJR2-gFoTlL7GBOfRJQsdXcy2bs6SGgfed7k4tvspRRTP2-KTUWmejI-_NJ9ZJCzYEtAkgeA', ...} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_template\\test_template.py:50: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APITestFrame1.test_case.test_template.test_template.TestTemplate object at 0x0000022AC510E410>\nreq_fix = <APITestFrame1.request_method.request_methods.Requesting object at 0x0000022AC518AE90>\ndb_fix = <APITestFrame1.common.db.DB object at 0x0000022AC4C9B450>, get_module_name = '认证接口', get_API_name = '登录系统'\nget_title_name = '反向用例-username错误', get_case_level = '中', get_request_method = 'Post', get_url_path = 'http://120.46.172.186:8080/auth'\nget_media_type = 'json', get_case_data = {'password': 'MTIzNDU2', 'username': 'Admin'}, get_expect_data = {'message': '账号或密码错误', 'state': False}\nget_sql_type = None, get_sql_content = None, get_update_key = None\n\n @log_decorator\n @allure.epic(\"BPM系统-模板\")\n @pytest.mark.parametrize(\n \"get_module_name,get_API_name, get_title_name, get_case_level, get_request_method, get_url_path, get_media_type,get_case_data, get_expect_data, get_sql_type, get_sql_content, get_update_key\",\n Read_excel(excel_path=excel_path, case_path=case_path, expect_path=expect_path,\n sql_path=sql_path, table_name=table_name).datas())\n def test_template(self, req_fix, db_fix, get_module_name, get_API_name, get_title_name, get_case_level, get_request_method,\n get_url_path, get_media_type,\n get_case_data, get_expect_data, get_sql_type, get_sql_content, get_update_key):\n # 调用allure的功能,影响报告的内容\n allure.dynamic.feature(get_module_name)\n allure.dynamic.story(get_API_name)\n allure.dynamic.title(get_title_name)\n allure.dynamic.severity(get_case_level)\n # print(get_case_data, get_expect_data, get_sql_type, get_sql_content, get_update_key)\n if get_sql_type == \"delete\":\n db_fix.delete(get_sql_content)\n elif get_sql_type == \"select\":\n ids = db_fix.select(get_sql_content)\n get_case_data[get_update_key] = ids\n elif get_sql_type == \"delete|select\" or get_sql_type == \"select|delete\":\n db_fix.delete(get_sql_content[\"delete\"])\n ids = db_fix.select(get_sql_content[\"select\"])\n get_case_data[get_update_key] = ids\n # print(get_url_path, get_request_method, get_case_data, get_media_type)\n result = req_fix.request_all(req_url=get_url_path, req_method=get_request_method, media_type=get_media_type,\n req_data=get_case_data)\n try:\n for i in get_expect_data.keys():\n assert get_expect_data[i] == result.json().get(i)\n except:\n logging.error(\"断言失败:用例为:\" + str(get_case_data) + \"期望数据为:\" + str(get_expect_data) + \"服务器返回数据为:\" + result.text)\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_case\\test_template\\test_template.py:53: AssertionError"}, "attachments": [{"name": "log", "source": "5c66683d-2e70-4d82-9d3d-43124c2424c3-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "get_module_name", "value": "'认证接口'"}, {"name": "get_API_name", "value": "'登录系统'"}, {"name": "get_title_name", "value": "'反向用例-username错误'"}, {"name": "get_case_level", "value": "'中'"}, {"name": "get_request_method", "value": "'Post'"}, {"name": "get_url_path", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "get_media_type", "value": "'json'"}, {"name": "get_case_data", "value": "{'username': 'Admin', 'password': 'MTIzNDU2'}"}, {"name": "get_expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "get_sql_type", "value": "None"}, {"name": "get_sql_content", "value": "None"}, {"name": "get_update_key", "value": "None"}], "start": 1704525180553, "stop": 1704525180667, "uuid": "c99f297b-7528-47df-ae66-ade48e8863eb", "historyId": "1a25f7c52f2d58e9ba72164d4e10055b", "testCaseId": "1707f878cc06db78a5d9602ee61f4b2a", "fullName": "test_case.test_template.test_template.TestTemplate#test_template", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-模板"}, {"name": "parentSuite", "value": "test_case.test_template"}, {"name": "suite", "value": "test_template"}, {"name": "subSuite", "value": "TestTemplate"}, {"name": "host", "value": "LAPTOP-B135APRS"}, {"name": "thread", "value": "11664-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_template.test_template"}]}
\ No newline at end of file
{"uuid": "f01e1e4d-4d2b-418b-934c-bd58cf43281f", "befores": [{"name": "get_sql_type", "status": "passed", "start": 1704525182382, "stop": 1704525182382}], "start": 1704525182382, "stop": 1704525182465}
\ No newline at end of file
{"uuid": "da3f7917-139c-473b-a218-b7aba8bb3b74", "befores": [{"name": "get_sql_type", "status": "passed", "start": 1704525181408, "stop": 1704525181408}], "start": 1704525181408, "stop": 1704525182004}
\ No newline at end of file
{"uuid": "72ea40de-f835-4576-8062-6b436dc54fa6", "befores": [{"name": "get_case_data", "status": "passed", "start": 1704525180904, "stop": 1704525180904}], "start": 1704525180904, "stop": 1704525180979}
\ No newline at end of file
{"uuid": "a0702025-1785-420c-aa8a-ab58f2f4826e", "befores": [{"name": "get_module_name", "status": "passed", "start": 1704525180903, "stop": 1704525180903}], "start": 1704525180903, "stop": 1704525180983}
\ No newline at end of file
{"uuid": "7cb59c90-8aa1-4f0e-8f52-ae7a4a5acc0a", "befores": [{"name": "get_title_name", "status": "passed", "start": 1704525181259, "stop": 1704525181259}], "start": 1704525181259, "stop": 1704525181399}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "24042afa-4297-4f15-9c94-a0a2d54f77e8-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "1a2f7426-3d9f-42bd-9257-641d97982332-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "get_module_name", "value": "'用户管理'"}, {"name": "get_API_name", "value": "'添加用户'"}, {"name": "get_title_name", "value": "'正向用例'"}, {"name": "get_case_level", "value": "'高'"}, {"name": "get_request_method", "value": "'POST'"}, {"name": "get_url_path", "value": "'http://120.46.172.186:8080/api/user/v1/user/addUser'"}, {"name": "get_media_type", "value": "'json'"}, {"name": "get_case_data", "value": "{'id': '', 'account': 'laowang', 'address': '', 'email': '', 'fullname': 'laowang', 'mobile': '', 'password': '123456', 'photo': '', 'sex': '', 'status': 1}"}, {"name": "get_expect_data", "value": "{'state': True, 'message': '用户添加成功!'}"}, {"name": "get_sql_type", "value": "'delete'"}, {"name": "get_sql_content", "value": "'delete from uc_user WHERE `ACCOUNT_`=\"laowang\";'"}, {"name": "get_update_key", "value": "None"}], "start": 1704525182584, "stop": 1704525182737, "uuid": "e087d421-db33-4389-b339-9c78f66b0240", "historyId": "34fbfe57938b87e118556ebe9c290519", "testCaseId": "1707f878cc06db78a5d9602ee61f4b2a", "fullName": "test_case.test_template.test_template.TestTemplate#test_template", "labels": [{"name": "feature", "value": "用户管理"}, {"name": "story", "value": "添加用户"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-模板"}, {"name": "parentSuite", "value": "test_case.test_template"}, {"name": "suite", "value": "test_template"}, {"name": "subSuite", "value": "TestTemplate"}, {"name": "host", "value": "LAPTOP-B135APRS"}, {"name": "thread", "value": "11664-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_template.test_template"}]}
\ No newline at end of file
INFO  root:__init__.py:27 功能的名称为:test_template 功能的描述为:None
\ No newline at end of file
INFO  root:__init__.py:27 功能的名称为:test_template 功能的描述为:None
\ No newline at end of file
{"uuid": "d50c9804-06cd-4340-bac8-c65478807ca9", "befores": [{"name": "get_sql_content", "status": "passed", "start": 1704525182472, "stop": 1704525182472}], "start": 1704525182472, "stop": 1704525182575}
\ No newline at end of file
{"uuid": "2002e820-8e4c-40a2-8119-673a5fe70c40", "befores": [{"name": "get_request_method", "status": "passed", "start": 1704525180903, "stop": 1704525180903}], "start": 1704525180903, "stop": 1704525180981}
\ No newline at end of file
{"uuid": "6f458cd6-7ac9-4ef3-b514-d9f57a6ecd58", "befores": [{"name": "get_request_method", "status": "passed", "start": 1704525182237, "stop": 1704525182237}], "start": 1704525182237, "stop": 1704525182308}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "0efd2905-785d-4b3b-87c7-1cee306ede79-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "297f422a-aa04-4918-9083-fc324f1e9da3-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "get_module_name", "value": "'组织管理'"}, {"name": "get_API_name", "value": "'添加组织'"}, {"name": "get_title_name", "value": "'正向用例'"}, {"name": "get_case_level", "value": "'高'"}, {"name": "get_request_method", "value": "'POST'"}, {"name": "get_url_path", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "get_media_type", "value": "'application/json'"}, {"name": "get_case_data", "value": "{'code': 'test_58_org', 'demId': '需要更新', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织-58', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "get_expect_data", "value": "{'message': '添加组织成功!'}"}, {"name": "get_sql_type", "value": "'select|delete'"}, {"name": "get_sql_content", "value": "{'delete': 'delete from uc_org WHERE `CODE_`=\"test_58_org\";', 'select': 'select ID_ from uc_demension WHERE `CODE_`=\"test58_dem_abc\";'}"}, {"name": "get_update_key", "value": "'demId'"}], "start": 1704525182011, "stop": 1704525182229, "uuid": "1ca4ea48-adb4-42d9-82f9-e21b742a2bbb", "historyId": "5bec44327ceb2db6592349cf77cb6765", "testCaseId": "1707f878cc06db78a5d9602ee61f4b2a", "fullName": "test_case.test_template.test_template.TestTemplate#test_template", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "添加组织"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-模板"}, {"name": "parentSuite", "value": "test_case.test_template"}, {"name": "suite", "value": "test_template"}, {"name": "subSuite", "value": "TestTemplate"}, {"name": "host", "value": "LAPTOP-B135APRS"}, {"name": "thread", "value": "11664-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_template.test_template"}]}
\ No newline at end of file
{"uuid": "c80a7d4e-0c71-4e7a-9f8d-a78de1427c80", "befores": [{"name": "get_media_type", "status": "passed", "start": 1704525181126, "stop": 1704525181126}], "start": 1704525181126, "stop": 1704525181250}
\ No newline at end of file
{"uuid": "a76c3568-392e-437e-bb6b-8e594e7f4b55", "befores": [{"name": "get_sql_type", "status": "passed", "start": 1704525179950, "stop": 1704525179950}], "start": 1704525179950, "stop": 1704525180022}
\ No newline at end of file
{"uuid": "f8b586ea-8a38-45c0-952c-3ca69bdba0be", "befores": [{"name": "get_case_level", "status": "passed", "start": 1704525180029, "stop": 1704525180029}], "start": 1704525180029, "stop": 1704525180115}
\ No newline at end of file
{"uuid": "edc75716-3421-4a42-a75f-b2f63d66accc", "befores": [{"name": "get_API_name", "status": "passed", "start": 1704525181125, "stop": 1704525181125}], "start": 1704525181125, "stop": 1704525181254}
\ No newline at end of file
{"uuid": "0587d818-4692-4464-a635-97aaacfd63e9", "befores": [{"name": "get_sql_content", "status": "passed", "start": 1704525181408, "stop": 1704525181409}], "start": 1704525181408, "stop": 1704525182003}
\ No newline at end of file
{"uuid": "38f3816c-b409-45e8-bd5c-6af206d5e8b4", "befores": [{"name": "get_API_name", "status": "passed", "start": 1704525182582, "stop": 1704525182582}], "start": 1704525182582, "stop": 1704525182742}
\ No newline at end of file
{"uuid": "712940b2-3176-4a93-9612-47a5b44f61c3", "befores": [{"name": "get_title_name", "status": "passed", "start": 1704525182582, "stop": 1704525182582}], "start": 1704525182582, "stop": 1704525182742}
\ No newline at end of file
INFO  root:__init__.py:27 功能的名称为:test_template 功能的描述为:None
\ No newline at end of file
{"uuid": "131f3ca6-7d65-4823-91c1-b39a2c5cd17f", "befores": [{"name": "get_request_method", "status": "passed", "start": 1704525180388, "stop": 1704525180388}], "start": 1704525180388, "stop": 1704525180542}
\ No newline at end of file
{"uuid": "fb5fd9b7-a04d-4556-ac9f-e48a7fa98e84", "befores": [{"name": "get_sql_content", "status": "passed", "start": 1704525180986, "stop": 1704525180987}], "start": 1704525180986, "stop": 1704525181108}
\ No newline at end of file
{"uuid": "e5c0c30a-29af-46de-9235-228dfafb3168", "befores": [{"name": "get_title_name", "status": "passed", "start": 1704525179949, "stop": 1704525179949}], "start": 1704525179949, "stop": 1704525180025}
\ No newline at end of file
{"uuid": "d83e3f3a-2624-4e1c-8f99-fdb27d9000ac", "befores": [{"name": "get_update_key", "status": "passed", "start": 1704525180388, "stop": 1704525180388}], "start": 1704525180388, "stop": 1704525180527}
\ No newline at end of file
{"uuid": "abd921e2-fff5-4ab5-a4a6-32862081fe1c", "befores": [{"name": "get_url_path", "status": "passed", "start": 1704525182382, "stop": 1704525182382}], "start": 1704525182382, "stop": 1704525182467}
\ No newline at end of file
{"uuid": "c57d34c7-0c1b-42d5-afde-80e094a95036", "befores": [{"name": "get_url_path", "status": "passed", "start": 1704525182011, "stop": 1704525182011}], "start": 1704525182011, "stop": 1704525182233}
\ No newline at end of file
{"uuid": "32a8b5a2-007b-4b1f-8add-02c9c8d11f36", "befores": [{"name": "get_media_type", "status": "passed", "start": 1704525180552, "stop": 1704525180552}], "start": 1704525180552, "stop": 1704525180898}
\ No newline at end of file
{"uuid": "3b219323-3165-4f3f-a676-5704ccd8191e", "befores": [{"name": "get_update_key", "status": "passed", "start": 1704525180904, "stop": 1704525180904}], "start": 1704525180904, "stop": 1704525180977}
\ No newline at end of file
{"uuid": "2883f4ee-a6a4-4ef1-8969-70cd4460ef22", "befores": [{"name": "get_media_type", "status": "passed", "start": 1704525181260, "stop": 1704525181260}], "start": 1704525181260, "stop": 1704525181395}
\ No newline at end of file
{"uuid": "c39614bc-e887-4b15-8487-10da8fae8073", "befores": [{"name": "get_case_level", "status": "passed", "start": 1704525182010, "stop": 1704525182010}], "start": 1704525182010, "stop": 1704525182233}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "22c3a01d-5bdd-404b-83c8-54b68c580508-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "7a19f3a1-7cfe-4c25-88cd-5654dcb280cb-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "get_module_name", "value": "'组织管理'"}, {"name": "get_API_name", "value": "'保存组织参数'"}, {"name": "get_title_name", "value": "'正向用例'"}, {"name": "get_case_level", "value": "'高'"}, {"name": "get_request_method", "value": "'post'"}, {"name": "get_url_path", "value": "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'"}, {"name": "get_media_type", "value": "'query|json'"}, {"name": "get_case_data", "value": "{'query': {'orgCode': 'test_58_org'}, 'json': [{'alias': 'sz', 'value': '999'}]}"}, {"name": "get_expect_data", "value": "{'state': True, 'message': '保存组织参数成功!'}"}, {"name": "get_sql_type", "value": "None"}, {"name": "get_sql_content", "value": "None"}, {"name": "get_update_key", "value": "None"}], "start": 1704525182315, "stop": 1704525182373, "uuid": "2463de1a-1271-4c13-81fe-d04dbfc1a845", "historyId": "b09d5b4db8a5f92d0b819ee2269b0c6b", "testCaseId": "1707f878cc06db78a5d9602ee61f4b2a", "fullName": "test_case.test_template.test_template.TestTemplate#test_template", "labels": [{"name": "feature", "value": "组织管理"}, {"name": "story", "value": "保存组织参数"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-模板"}, {"name": "parentSuite", "value": "test_case.test_template"}, {"name": "suite", "value": "test_template"}, {"name": "subSuite", "value": "TestTemplate"}, {"name": "host", "value": "LAPTOP-B135APRS"}, {"name": "thread", "value": "11664-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_template.test_template"}]}
\ No newline at end of file
{"name": "正向用例", "status": "passed", "attachments": [{"name": "log", "source": "978275b3-24a3-4994-8b64-bed84e5fe526-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "e5fe77f9-278a-49ed-a0a0-a36eb1fea0d6-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "get_module_name", "value": "'维度管理'"}, {"name": "get_API_name", "value": "'添加维度'"}, {"name": "get_title_name", "value": "'正向用例'"}, {"name": "get_case_level", "value": "'高'"}, {"name": "get_request_method", "value": "'POST'"}, {"name": "get_url_path", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'"}, {"name": "get_media_type", "value": "'application/json'"}, {"name": "get_case_data", "value": "{'code': 'test58_dem_abc', 'description': '测试维度-58', 'isDefault': 0, 'name': '测试维度-58'}"}, {"name": "get_expect_data", "value": "{'message': '添加维度成功!'}"}, {"name": "get_sql_type", "value": "'delete'"}, {"name": "get_sql_content", "value": "' delete from uc_demension WHERE `CODE_`=\"test58_dem_abc\";'"}, {"name": "get_update_key", "value": "None"}], "start": 1704525181410, "stop": 1704525182002, "uuid": "73047af8-9c87-459d-8e5a-8fae5c695296", "historyId": "4c2415a05594a39116a1714cb6d00e68", "testCaseId": "1707f878cc06db78a5d9602ee61f4b2a", "fullName": "test_case.test_template.test_template.TestTemplate#test_template", "labels": [{"name": "feature", "value": "维度管理"}, {"name": "story", "value": "添加维度"}, {"name": "severity", "value": "高"}, {"name": "epic", "value": "BPM系统-模板"}, {"name": "parentSuite", "value": "test_case.test_template"}, {"name": "suite", "value": "test_template"}, {"name": "subSuite", "value": "TestTemplate"}, {"name": "host", "value": "LAPTOP-B135APRS"}, {"name": "thread", "value": "11664-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_template.test_template"}]}
\ No newline at end of file
{"uuid": "924851a6-161c-4c42-b7b9-c7f94c6a4fc6", "befores": [{"name": "get_module_name", "status": "passed", "start": 1704525180262, "stop": 1704525180263}], "start": 1704525180262, "stop": 1704525180384}
\ No newline at end of file
{"uuid": "24492a8e-b5bf-4ba8-9128-b373e7dc65e2", "befores": [{"name": "get_media_type", "status": "passed", "start": 1704525180029, "stop": 1704525180029}], "start": 1704525180029, "stop": 1704525180113}
\ No newline at end of file
{"uuid": "49372b82-a95b-4a60-b3a2-71e2b97d9adf", "befores": [{"name": "get_expect_data", "status": "passed", "start": 1704525182472, "stop": 1704525182472}], "start": 1704525182472, "stop": 1704525182576}
\ No newline at end of file
{"uuid": "fc469906-397a-4ba6-8f97-1cc7ddd6f998", "befores": [{"name": "get_title_name", "status": "passed", "start": 1704525180122, "stop": 1704525180122}], "start": 1704525180122, "stop": 1704525180251}
\ No newline at end of file
{"uuid": "6d0218c8-9c63-410f-9a40-1c853542cbdc", "befores": [{"name": "get_sql_type", "status": "passed", "start": 1704525182314, "stop": 1704525182314}], "start": 1704525182314, "stop": 1704525182374}
\ No newline at end of file
{"uuid": "58443788-629b-4264-9df0-3adf7dd24521", "befores": [{"name": "get_case_level", "status": "passed", "start": 1704525180122, "stop": 1704525180122}], "start": 1704525180122, "stop": 1704525180250}
\ No newline at end of file
{"uuid": "1236eaa1-6179-466a-9aaf-8557205e5827", "befores": [{"name": "get_API_name", "status": "passed", "start": 1704525182472, "stop": 1704525182472}], "start": 1704525182472, "stop": 1704525182579}
\ No newline at end of file
{"uuid": "da8226cc-b967-4854-b56e-6c74b8838cb4", "befores": [{"name": "get_update_key", "status": "passed", "start": 1704525180030, "stop": 1704525180030}], "start": 1704525180030, "stop": 1704525180110}
\ No newline at end of file
{"uuid": "d0f8f201-18ad-4e7e-b947-77bc1b6c2bf4", "befores": [{"name": "get_request_method", "status": "passed", "start": 1704525180029, "stop": 1704525180029}], "start": 1704525180029, "stop": 1704525180114}
\ No newline at end of file
{"uuid": "b79edd64-e4dc-4be2-9a48-95d68776b3a3", "befores": [{"name": "get_API_name", "status": "passed", "start": 1704525179949, "stop": 1704525179949}], "start": 1704525179949, "stop": 1704525180025}
\ No newline at end of file
{"uuid": "83e1de71-3393-477d-a265-94b1e6a5c573", "befores": [{"name": "get_sql_content", "status": "passed", "start": 1704525180029, "stop": 1704525180030}], "start": 1704525180029, "stop": 1704525180111}
\ No newline at end of file
{"uuid": "c133ca67-1ea1-4d11-9287-c6e3352e5373", "befores": [{"name": "get_update_key", "status": "passed", "start": 1704525182472, "stop": 1704525182472}], "start": 1704525182472, "stop": 1704525182574}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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