Commit 71e80f88 by 艺术就是爆炸

接口自动化1.0.0

parent 42fab556
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: login.py
# FileName: __init__.py
# Author: xxxxxxx
# Datetime: 2023/11/4 9:21
# Description:
# 命名规范:文件名全小写+下划线,类名大驼峰,方法和变量小写+下划线连接,
# 常量大写,变量和常量用名词,方法用动词
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: login.py
# FileName: __init__.py
# Author: xxxxxxx
# Datetime: 2023/11/4 9:27
# Description:
# 命名规范:文件名全小写+下划线,类名大驼峰,方法和变量小写+下划线连接,
# 常量大写,变量和常量用名词,方法用动词
# ---------------------------------------------------------------------------
from interfaceAutoTest1.common.log import writelog
log = writelog()
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: login.py
# FileName: db.py
# Author: xxxxxxx
# Datetime: 2023/11/4 9:39
# Description:
# 命名规范:文件名全小写+下划线,类名大驼峰,方法和变量小写+下划线连接,
# 常量大写,变量和常量用名词,方法用动词
# ---------------------------------------------------------------------------
import pymysql
from interfaceAutoTest1.common.read_ini import Read_ini
from interfaceAutoTest1.common import log
class DB:
def __init__(self):
try:
self.conn = pymysql.connect(
host=Read_ini().get_sql('host'),
port=int(Read_ini().get_sql('port')),
user=Read_ini().get_sql('user'),
password=Read_ini().get_sql('pwd'),
database=Read_ini().get_sql('database'),
charset='utf8'
)
self.cursor = self.conn.cursor()
except:
log.error('链接数据库错误或者获取游标对象失败!!!,请求察看数据库的链接配置.')
raise pymysql.MySQLError('链接数据库错误或者获取游标对象失败!!!,请求察看数据库的链接配置.')
def close(self):
self.cursor.close()
self.conn.close()
def select_sql(self, sql):
try:
self.cursor.execute(sql)
result = self.cursor.fetchall()
return result
except:
log.error("执行删除的sql语句错误,请察看对应的删除的sql语句")
raise ValueError("执行删除的sql语句错误,请察看对应的删除的sql语句")
def delete_sql(self, sql):
try:
self.cursor.execute(sql)
result = self.conn.commit()
return result
except:
log.error("执行删除的sql语句错误,请察看对应的删除的sql语句")
raise ValueError("执行删除的sql语句错误,请察看对应的删除的sql语句")
if __name__ == '__main__':
db = DB()
sql = '''select * from uc_demension where CODE_ = 'lzh';'''
result = db.select_sql(sql)
print(result)
sql = """SELECT * FROM uc_demension"""
print(db.select_sql(sql))
# host = Read_ini().get_sql('host')
# port = Read_ini().get_sql('port')
# user = Read_ini().get_sql('user')
# password = Read_ini().get_sql('pwd')
# database = Read_ini().get_sql('database')
# charset = 'utf8'
# print(host)
# print(port)
# print(user)
# print(password)
# print(database)
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: login.py
# FileName: log.py
# Author: xxxxxxx
# Datetime: 2023/11/4 9:27
# Description:
# 命名规范:文件名全小写+下划线,类名大驼峰,方法和变量小写+下划线连接,
# 常量大写,变量和常量用名词,方法用动词
# ---------------------------------------------------------------------------
import logging
import os
def writelog():
logger = logging.getLogger("艺术")
logger.level = logging.NOTSET
logger_path = os.path.join(os.path.dirname(os.path.dirname(__file__)),'report/log/日志.log')
handerl = logging.FileHandler(logger_path, mode='a', encoding='utf-8')
format = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s - %(name)s')
handerl.setFormatter(format)
logger.addHandler(handerl)
return logger
if __name__ == '__main__':
log = writelog()
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: login.py
# FileName: read_excel.py
# Author: xxxxxxx
# Datetime: 2023/11/4 9:44
# Description:
# 命名规范:文件名全小写+下划线,类名大驼峰,方法和变量小写+下划线连接,
# 常量大写,变量和常量用名词,方法用动词
# ---------------------------------------------------------------------------
import openpyxl
from interfaceAutoTest1.common import log
from interfaceAutoTest1.common.read_ini import Read_ini
from interfaceAutoTest1.common.read_json import Read_json
from interfaceAutoTest1.data_config.settings import *
class Read_excel:
def __init__(self, tables='BPM'):
self.re_ini = Read_ini()
excel_path = self.re_ini.get_file_data(EXCEL)
case_path = self.re_ini.get_file_data(CASE)
expect_path = self.re_ini.get_file_data(EXPECT)
sql_path = self.re_ini.get_file_data(SQL)
if tables is not 'BPM':
table_name = self.re_ini.get_table(TABLE_NAME)
else:
table_name = tables
wb = openpyxl.load_workbook(excel_path)
try:
self.ws = wb[table_name]
except:
log.error('获取工作表失败,请察看工作表名称是否配置正确!!!')
raise NameError('获取工作表失败,请察看工作表名称是否配置正确!!!')
self.case_data = Read_json(case_path)
self.expect_data = Read_json(expect_path)
self.sql_data = Read_json(sql_path)
# print(self.case_data)
# print(self.expect_data)
print(self.sql_data)
# print(tables)
def get_cell_value(self, column, row):
try:
value = self.ws[column + str(row)].value
if value is None:
return None
elif value.strip():
return value.strip()
except:
log.error('获取指定单元格数据失败,请察看输入的列号和行号是否正确!!')
raise ValueError('获取指定单元格数据失败,请察看输入的列号和行号是否正确!!')
# 获取模块名称
def module_value(self,row):
# return self.ws[MODULE+str(row)].value
return self.get_cell_value(MODULE, row)
# 获取接口名称
def api_value(self,row):
# return self.ws[API+str(row)].value
return self.get_cell_value(API, row)
# 获取请求方法
def req_method(self,row):
# return self.ws[METHOD+str(row)].value
return self.get_cell_value(METHOD, row)
# 获取请求路径
def req_url(self,row):
# return self.ws[URL+str(row)].value
return self.re_ini.get_host(URL_HOST_CUSTOM) + self.get_cell_value(URL, row)
# 获取传参类型
def req_mime(self,row):
# mine = self.ws[MIME+str(row)].value
mine = self.get_cell_value(MIME, row)
if mine:
return mine.lower()
# 获取用例数据
def case_datas(self,row):
case_value = self.get_cell_value(CASE_DATA, row)
API_value = self.api_value(row)
module_value = self.module_value(row)
if case_value:
try:
return self.case_data[module_value][API_value][case_value]
except:
log.error('请察看是否配置了用例数据!!!')
raise ValueError('请察看是否配置了用例数据!!!')
# 获取期望数据
def expect_datas(self,row):
expect_value = self.get_cell_value(EXPECT_DATA, row)
module_value = self.module_value(row)
API_value = self.api_value(row)
if expect_value:
try:
return self.expect_data[module_value][API_value][expect_value]
except:
log.error('请察看是否配置了期望数据!!!')
raise ValueError('请察看是否配置了期望数据!!!')
# 获取sql语句类型
def sql_type(self,row):
sql_type_data = self.get_cell_value(SQL_TYPE, row)
return sql_type_data
# 获取sql语句
def sql_datas(self,row):
sql_value = self.get_cell_value(SQL_DATA, row)
module_name = self.module_value(row)
API_name = self.api_value(row)
if sql_value:
try:
return self.sql_data[module_name][API_name][sql_value]
except:
log.error('请察看是否配置了sql数据!!!')
raise ValueError('请察看是否配置了sql数据!!!')
# 获取更新key
def update_key(self,row):
return self.get_cell_value(UPDATE_KEY,row)
# 获取实际数据
def get_data(self):
# 存放在一个二维列表中
list_all = []
try:
for row in range(2, self.ws.max_row+1):
# 请求方法
method = self.req_method(row)
# url
url = self.req_url(row)
# 传参类型
mine = self.req_mime(row)
# 用例数据
case_data = self.case_datas(row)
# 期望数据
expect_data = self.expect_datas(row)
# sql类型
sql_type = self.sql_type(row)
# sql语句
sql_data = self.sql_datas(row)
# 更新key
update_key = self.update_key(row)
list_all.append([url, method, mine, case_data, expect_data, sql_type, sql_data, update_key])
return list_all
except:
log.error('请察看excel中是否存在空行,如果存在,请删除空行!!')
raise TypeError('请察看excel中是否存在空行,如果存在,请删除空行!!')
if __name__ == '__main__':
re_ini = Read_ini()
read_excel = Read_excel()
print(read_excel.get_data())
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: login.py
# FileName: read_ini.py
# Author: xxxxxxx
# Datetime: 2023/11/4 9:44
# Description:
# 命名规范:文件名全小写+下划线,类名大驼峰,方法和变量小写+下划线连接,
# 常量大写,变量和常量用名词,方法用动词
# ---------------------------------------------------------------------------
import os
import configparser
from interfaceAutoTest1.data_config.settings import *
from interfaceAutoTest1.common import log
class Read_ini:
def __init__(self):
self.ini_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'data_config')
conf_path = os.path.join(self.ini_path, 'config.ini')
self.conf = configparser.ConfigParser()
self.conf.read(conf_path, encoding='utf-8')
def get_file_data(self, key):
try:
file_data = self.conf.get(FILE, key)
except:
log.error("输入file节点下的key,错误,请求察看配置文件~!!!")
raise KeyError("输入file节点下的key,错误,请求察看配置文件~!!!")
file_path = os.path.join(self.ini_path, file_data)
if os.path.isfile(file_path):
return file_path
else:
log.error("获取file节点下,文件的路径错误,请察看配置文件是否配置正确~!!!")
raise FileExistsError("获取file节点下,文件的路径错误,请察看配置文件是否配置正确~!!!")
def get_host(self, key):
try:
return self.conf.get(URL_HOST, key)
except:
log.error("输入host节点下的key,错误,请求察看配置文件~!!!")
raise KeyError("输入host节点下的key,错误,请求察看配置文件~!!!")
def get_table(self, key):
try:
return self.conf.get(TABLE, key)
except:
log.error("输入table节点下的key,错误,请求察看配置文件~!!!")
raise KeyError("输入table节点下的key,错误,请求察看配置文件~!!!")
def get_sql(self, key):
try:
return self.conf.get(CONN_SQL, key)
except:
log.error("输入sql节点下的key,错误,请求察看配置文件~!!!")
raise KeyError("输入sql节点下的key,错误,请求察看配置文件~!!!")
if __name__ == '__main__':
re_ini = Read_ini()
print("*"*67)
print(re_ini.get_file_data('sql'))
print(re_ini.get_host('url'))
print(re_ini.get_table('table_name'))
print(re_ini.get_sql('host'))
print("*"*67)
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: login.py
# FileName: read_json.py
# Author: xxxxxxx
# Datetime: 2023/11/4 9:44
# Description:
# 命名规范:文件名全小写+下划线,类名大驼峰,方法和变量小写+下划线连接,
# 常量大写,变量和常量用名词,方法用动词
# ---------------------------------------------------------------------------
import json
import os
from interfaceAutoTest1.common import log
def Read_json(filepath):
if os.path.isfile(filepath) and filepath.endswith('.json'):
try:
with open(filepath, mode='r', encoding='utf-8') as fp:
return json.loads(fp.read())
except:
log.error('打开json文件获取json文件的内容序列化为python对象失败,请察看json文件是否有错误!!!')
raise FileExistsError('打开json文件获取json文件的内容序列化为python对象失败,请察看json文件是否有错误!!!')
else:
log.error("json文件的路径不合法")
raise FileNotFoundError("json文件的路径不合法")
if __name__ == '__main__':
path = 'E:/train_test/7python/笔记/interfaceAutoTest1/data_config/case_data.json'
result = Read_json(path)
print(path)
print(result['认证接口'])
{
"认证接口":{
"登录系统":{
"LoginSuccess": {"password": "MTIzNDU2","username": "admin"},
"LoginErrorUsernameLong":{"password": "MTIzNDU2","username": "adminadminadminadminadminadmin"},
"LoginErrorUsernameShort":{"password": "MTIzNDU2","username": "a"},
"LoginErrorUsernameNone":{"password": "MTIzNDU2","username": ""},
"LoginErrorUsernameSpecial":{"password": "MTIzNDU2","username": "@#!@#!@"},
"LoginErrorPwdLong":{"password": "MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2","username": "admin"},
"LoginErrorPwdShort":{"password": "m","username": "admin"},
"LoginErrorPwdNone":{"password": "","username": "admin"},
"LoginErrorPwdSpecial":{"password": "@#!@#!@","username": "admin"},
"LoginErrorPwdError":{"password": "MTIzNDU222","username": "admin"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {
"code": "dem_test57_abc",
"description": "测试维度57",
"isDefault": 0,
"name": "测试57期的维度"
}
},
"根据维度编码获取维度信息": {
"GetDemMessageSuccess": {"code": "dem_test57_abc"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"ids": "不知道"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"code": "test_org_57",
"demId": "不知道",
"exceedLimitNum": 0,
"grade": "",
"limitNum": 0,
"name": "测试组织",
"nowNum": 0,
"orderNo": 0,
"parentId": "0"
}
},
"添加组织参数": {
"AddOrgParamsSuccess": {"query": {"orgCode": "test_org_57"}, "body": [{"alias":"sz","value":9000}]}
},
"删除组织": {
"DelOrgSuccess": "test_org_57"
}
}
}
[file]
;case为用例数据文件
case=case_data.json
;expect为期望数据文件
expect=expect_data.json
;excel为用例管理文件
excel=APIAutoTest.xlsx
;sql语句的json文件
sql=sql_data.json
[url]
;host为被测系统的域名
url=http://120.46.172.186:8080
[table]
;table_name为excel的工作表名称
table_name=BPM
[sql]
;链接数据库的配置
host=120.46.172.186
port=3306
user=root
pwd=root@2023
database=eipsaas
\ No newline at end of file
{
"认证接口":{
"登录系统":{
"LoginSuccess": {"username": "超级管理员","account": "admin", "loginStatus": true},
"LoginErrorUsernameLong":{"state": false, "message":"账号或密码错误"},
"LoginErrorUsernameShort":{"state": false, "message":"账号或密码错误"},
"LoginErrorUsernameNone":{"state": false, "message":"账号或密码错误"},
"LoginErrorUsernameSpecial":{"state": false, "message":"账号或密码错误"},
"LoginErrorPwdLong":{"state": false, "message":"账号或密码错误"},
"LoginErrorPwdShort":{"state": false, "message":"账号或密码错误"},
"LoginErrorPwdNone":{"state": false, "message":"账号或密码错误"},
"LoginErrorPwdSpecial":{"state": false, "message":"账号或密码错误"},
"LoginErrorPwdError":{"state": false, "message":"账号或密码错误"}
},
"刷新token": {
"RefreshSuccess": {"message": "刷新成功"}
}
},
"维度管理": {
"添加维度": {
"AddDemSuccess": {"state": true, "message": "添加维度成功!"}
},
"根据维度编码获取维度信息": {
"GetDemMessageSuccess": {"demCode": "dem_test57_abc", "name": "测试57期的维度"}
},
"根据维度编码删除维度": {
"DeleteDemSuccess": {"state": true, "message": "删除维度成功!"}
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {"state": true, "message": "添加组织成功!"}
},
"添加组织参数": {
"AddOrgParamsSuccess": {"state":true,"message":"保存组织参数成功!"}
},
"删除组织": {
"DelOrgSuccess": {"state":true,"message":"删除组织成功!"}
}
}
}
\ No newline at end of file
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: test_57
# FileName: settings.py
# Author: xxxxxxx
# Datetime: 2023/11/3 17:03
# Description:
#
# ---------------------------------------------------------------------------
# file节点名称====================
FILE = "file"
# file节点名称=key的名称===================
CASE = "case"
EXPECT = "expect"
EXCEL = "excel"
SQL = "sql"
# table节点名称========================
TABLE = "table"
# table节点名称=key的名称=======================
TABLE_NAME = "table_name"
# url节点名称=================
URL_HOST = "url"
# url节点名称=key的名称================
URL_HOST_CUSTOM = "url"
# sql节点名称==========================
CONN_SQL = "sql"
# sql节点名称=key的名称=========================
HOST = "host"
PORT = "port"
USER = "user"
PWD = "pwd"
DATABASE = "database"
# excel文件中的列号
NUMBER = "A"
MODULE = "B"
API = "C"
TITLE = "D"
LEVEL = "E"
URL = "G"
METHOD = "F"
MIME = "H"
CASE_DATA = "I"
EXPECT_DATA = "J"
SQL_TYPE = "K"
SQL_DATA = "L"
UPDATE_KEY = "M"
{
"维度管理": {
"添加维度": {
"AddDemSuccess": "DELETE FROM uc_demension WHERE `CODE_`=\"dem_test57_abc\";"
},
"根据维度编码删除维度": {
"DeleteDemSuccess": "SELECT ID_ from uc_demension WHERE `CODE_`=\"dem_test57_abc\";"
}
},
"组织管理": {
"添加组织": {
"AddOrgSuccess": {
"select": "SELECT ID_ from uc_demension WHERE `CODE_`=\"dem_test57_abc\";",
"delete": "DELETE FROM uc_org WHERE `CODE_`=\"test_org_57\";"
}
}
}
}
\ No newline at end of file
body {
font-family: Helvetica, Arial, sans-serif;
font-size: 12px;
/* do not increase min-width as some may use split screens */
min-width: 800px;
color: #999;
}
h1 {
font-size: 24px;
color: black;
}
h2 {
font-size: 16px;
color: black;
}
p {
color: black;
}
a {
color: #999;
}
table {
border-collapse: collapse;
}
/******************************
* SUMMARY INFORMATION
******************************/
#environment td {
padding: 5px;
border: 1px solid #E6E6E6;
}
#environment tr:nth-child(odd) {
background-color: #f6f6f6;
}
/******************************
* TEST RESULT COLORS
******************************/
span.passed, .passed .col-result {
color: green;
}
span.skipped, span.xfailed, span.rerun, .skipped .col-result, .xfailed .col-result, .rerun .col-result {
color: orange;
}
span.error, span.failed, span.xpassed, .error .col-result, .failed .col-result, .xpassed .col-result {
color: red;
}
/******************************
* RESULTS TABLE
*
* 1. Table Layout
* 2. Extra
* 3. Sorting items
*
******************************/
/*------------------
* 1. Table Layout
*------------------*/
#results-table {
border: 1px solid #e6e6e6;
color: #999;
font-size: 12px;
width: 100%;
}
#results-table th, #results-table td {
padding: 5px;
border: 1px solid #E6E6E6;
text-align: left;
}
#results-table th {
font-weight: bold;
}
/*------------------
* 2. Extra
*------------------*/
.log:only-child {
height: inherit;
}
.log {
background-color: #e6e6e6;
border: 1px solid #e6e6e6;
color: black;
display: block;
font-family: "Courier New", Courier, monospace;
height: 230px;
overflow-y: scroll;
padding: 5px;
white-space: pre-wrap;
}
div.image {
border: 1px solid #e6e6e6;
float: right;
height: 240px;
margin-left: 5px;
overflow: hidden;
width: 320px;
}
div.image img {
width: 320px;
}
div.video {
border: 1px solid #e6e6e6;
float: right;
height: 240px;
margin-left: 5px;
overflow: hidden;
width: 320px;
}
div.video video {
overflow: hidden;
width: 320px;
height: 240px;
}
.collapsed {
display: none;
}
.expander::after {
content: " (show details)";
color: #BBB;
font-style: italic;
cursor: pointer;
}
.collapser::after {
content: " (hide details)";
color: #BBB;
font-style: italic;
cursor: pointer;
}
/*------------------
* 3. Sorting items
*------------------*/
.sortable {
cursor: pointer;
}
.sort-icon {
font-size: 0px;
float: left;
margin-right: 5px;
margin-top: 5px;
/*triangle*/
width: 0;
height: 0;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
}
.inactive .sort-icon {
/*finish triangle*/
border-top: 8px solid #E6E6E6;
}
.asc.active .sort-icon {
/*finish triangle*/
border-bottom: 8px solid #999;
}
.desc.active .sort-icon {
/*finish triangle*/
border-top: 8px solid #999;
}
{"uuid": "b8ec3776-b411-424f-a060-6fa1545e8bc6", "befores": [{"name": "mine", "status": "passed", "start": 1699240393814, "stop": 1699240393814}], "start": 1699240393814, "stop": 1699240393940}
\ No newline at end of file
{"uuid": "6baa32fa-054a-4758-bab8-18e4bc4168c3", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240393651, "stop": 1699240393651}], "start": 1699240393651, "stop": 1699240393801}
\ No newline at end of file
{"uuid": "27094c50-428f-4e54-8a2d-cbf8a5198fce", "befores": [{"name": "case_data", "status": "passed", "start": 1699240393650, "stop": 1699240393650}], "start": 1699240393650, "stop": 1699240393803}
\ No newline at end of file
{"uuid": "6a992b74-0d93-4544-9e81-8aec3bc2fdd4", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240393502, "stop": 1699240393502}], "start": 1699240393502, "stop": 1699240393621}
\ No newline at end of file
{"uuid": "09a37d05-2392-42e8-9009-3baf7d9af5b5", "children": ["019f49fb-9917-4d18-88e6-793e8b89b26e", "d2ea3287-5ab5-4ec6-ade2-b437a298a207", "483d6c9d-d487-4347-86ca-3f909523e61c", "f389337c-3929-4e15-88db-db87bed7ed26", "93577a56-d932-4f0e-9af9-8c3e95a2376a", "3d8900f5-c85a-4a04-b662-649492392cc6", "6899ff54-b111-46e4-be70-677cbdc513f4", "a3d380de-0552-4504-9bca-d429cd751916", "5c69bf8f-8158-48a9-a9a1-f98bfee2cf6a", "c236ef77-6677-4892-803b-90ab945d42f4", "32cc1a1c-b0c7-49e0-940d-f0c14bde80fa", "13e2e7db-e001-44a3-9b63-f7155e034133", "c24b0107-5d8c-40a5-a9d2-60e2985cadba", "e918b2ea-1b49-4be2-a63d-32239d4e6437", "fd94191b-973f-401f-a8cf-18bd99b049a4", "ccd16a7e-932d-479d-97eb-b504e884ef7f", "c92a81a0-2ddf-4149-8285-7b47b35a6522"], "befores": [{"name": "_session_faker", "status": "passed", "start": 1699240391763, "stop": 1699240392113}], "start": 1699240391763, "stop": 1699240394808}
\ No newline at end of file
{"uuid": "90cb8a50-cc9a-4525-a6ed-3154a30dbd38", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240393947, "stop": 1699240393947}], "start": 1699240393946, "stop": 1699240394135}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams-POST-body|query-case_data14-expect_data14-None-None-None]", "status": "broken", "statusDetails": {"message": "TypeError: string indices must be integers", "trace": "self = <interfaceAutoTest1.test_run.test_run.TestBpm object at 0x0000016390230B88>\nreq_fix = <interfaceAutoTest1.request_method.request_method.RequestStep object at 0x00000163902A7D48>, db_fix = <interfaceAutoTest1.common.db.DB object at 0x0000016390310DC8>\nurl = 'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams', method = 'POST', mine = 'body|query'\ncase_data = {'body': [{'alias': 'sz', 'value': 9000}], 'query': {'orgCode': 'test_org_57'}}, expect_data = {'message': '保存组织参数成功!', 'state': True}, sql_type = None, sql_data = None\nupdate_key = None\n\n @pytest.mark.parametrize('url, method, mine, case_data, expect_data, sql_type, sql_data, update_key', Read_excel().get_data())\n def test_bpm(self, req_fix, db_fix, url, method, mine, case_data, expect_data, sql_type, sql_data, update_key):\n if sql_type == 'delete':\n db_fix.delete_sql(sql_data)\n elif sql_type == 'select':\n result = db_fix.select_sql(sql_data)\n case_data[update_key] = result\n \n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象执行删除的sql语句\n db_fix.delete(sql_data.get(\"delete\"))\n # 使用DB类对象执行查询的sql语句,并接收查询的结果\n select_result = db_fix.select(sql_data.get(\"select\"))\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 使用RequestsMethod类对象发送请求\n> res = req_fix.request_all(method, url, mine, case_data)\n\ntest_run\\test_run.py:36: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\nself = <interfaceAutoTest1.request_method.request_method.RequestStep object at 0x00000163902A7D48>, method = 'POST'\nurl = 'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams', types = 'body|query', data = {'body': [{'alias': 'sz', 'value': 9000}], 'query': {'orgCode': 'test_org_57'}}\n\n def request_all(self, method, url, types='json', data=None):\n if types == 'json' or types == 'application/json':\n return self.bpm_session.request(method=method, url=url, json=data)\n elif types == \"x-www-form-urlencoded\" or types == \"application/x-www-form-urlencoded\":\n return self.bpm_session.request(method=method, url=url, data=data)\n \n elif types == \"form-data\" or types == \"multipart/form-data\":\n return self.bpm_session.request(method=method, url=url, files=data)\n \n elif types == \"query\" or types == \"params\" or types == \"param\":\n return self.bpm_session.request(method=method, url=url, params=data)\n \n elif types == \"query|body\" or types == \"body|query\" or types == \"json|query\" or types == \"query|json\":\n> return self.bpm_session.request(method=types, url=types, params=types[\"query\"], json=types[\"body\"])\nE TypeError: string indices must be integers\n\nrequest_method\\request_method.py:42: TypeError"}, "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/orgParam/saveOrgParams'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'body|query'"}, {"name": "case_data", "value": "{'query': {'orgCode': 'test_org_57'}, 'body': [{'alias': 'sz', 'value': 9000}]}"}, {"name": "expect_data", "value": "{'state': True, 'message': '保存组织参数成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240394576, "stop": 1699240394577, "uuid": "fd94191b-973f-401f-a8cf-18bd99b049a4", "historyId": "6b0445686d774ec2e84670bdaccde109", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "7cd18d5e-d8da-4aac-8c21-5540a0470f83", "befores": [{"name": "mine", "status": "passed", "start": 1699240394480, "stop": 1699240394480}], "start": 1699240394480, "stop": 1699240394565}
\ No newline at end of file
ERROR  艺术:test_run.py:44 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"}
\ No newline at end of file
{"uuid": "ddd1f8c6-bbec-476a-9151-dfdd5cc37956", "befores": [{"name": "mine", "status": "passed", "start": 1699240394607, "stop": 1699240394607}], "start": 1699240394607, "stop": 1699240394703}
\ No newline at end of file
ERROR  艺术:request_method.py:44 传入的媒体类型的值错误,请察看excel中是否填入正确
\ No newline at end of file
{"uuid": "d5a800be-9d1c-4ccb-b21d-58e7b1baaaff", "befores": [{"name": "mine", "status": "passed", "start": 1699240393076, "stop": 1699240393076}], "start": 1699240393076, "stop": 1699240393202}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/api/org/v1/org/addOrg-POST-application/json-case_data13-expect_data13-Select|delete-sql_data13-demId]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <interfaceAutoTest1.test_run.test_run.TestBpm object at 0x0000016390230EC8>\nreq_fix = <interfaceAutoTest1.request_method.request_method.RequestStep object at 0x00000163902A7D48>, db_fix = <interfaceAutoTest1.common.db.DB object at 0x0000016390310DC8>\nurl = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', method = 'POST', mine = 'application/json'\ncase_data = {'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', ...}, expect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'Select|delete'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_org_57\";', 'select': 'SELECT ID_ from uc_demension WHERE `CODE_`=\"dem_test57_abc\";'}, update_key = 'demId'\n\n @pytest.mark.parametrize('url, method, mine, case_data, expect_data, sql_type, sql_data, update_key', Read_excel().get_data())\n def test_bpm(self, req_fix, db_fix, url, method, mine, case_data, expect_data, sql_type, sql_data, update_key):\n if sql_type == 'delete':\n db_fix.delete_sql(sql_data)\n elif sql_type == 'select':\n result = db_fix.select_sql(sql_data)\n case_data[update_key] = result\n \n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象执行删除的sql语句\n db_fix.delete(sql_data.get(\"delete\"))\n # 使用DB类对象执行查询的sql语句,并接收查询的结果\n select_result = db_fix.select(sql_data.get(\"select\"))\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 使用RequestsMethod类对象发送请求\n res = req_fix.request_all(method, url, mine, case_data)\n \n \n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert True == False\nE + where False = <built-in method get of dict object at 0x00000163903D2408>('state')\nE + where <built-in method get of dict object at 0x00000163903D2408> = {'message': '添加组织失败,组织编码[test_org_57]已存在!', 'state': False, 'value': '保存失败'}.get\nE + where {'message': '添加组织失败,组织编码[test_org_57]已存在!', 'state': False, 'value': '保存失败'} = <bound method Response.json of <Response [200]>>()\nE + where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_run\\test_run.py:42: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <interfaceAutoTest1.test_run.test_run.TestBpm object at 0x0000016390230EC8>\nreq_fix = <interfaceAutoTest1.request_method.request_method.RequestStep object at 0x00000163902A7D48>, db_fix = <interfaceAutoTest1.common.db.DB object at 0x0000016390310DC8>\nurl = 'http://120.46.172.186:8080/api/org/v1/org/addOrg', method = 'POST', mine = 'application/json'\ncase_data = {'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', ...}, expect_data = {'message': '添加组织成功!', 'state': True}, sql_type = 'Select|delete'\nsql_data = {'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_org_57\";', 'select': 'SELECT ID_ from uc_demension WHERE `CODE_`=\"dem_test57_abc\";'}, update_key = 'demId'\n\n @pytest.mark.parametrize('url, method, mine, case_data, expect_data, sql_type, sql_data, update_key', Read_excel().get_data())\n def test_bpm(self, req_fix, db_fix, url, method, mine, case_data, expect_data, sql_type, sql_data, update_key):\n if sql_type == 'delete':\n db_fix.delete_sql(sql_data)\n elif sql_type == 'select':\n result = db_fix.select_sql(sql_data)\n case_data[update_key] = result\n \n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象执行删除的sql语句\n db_fix.delete(sql_data.get(\"delete\"))\n # 使用DB类对象执行查询的sql语句,并接收查询的结果\n select_result = db_fix.select(sql_data.get(\"select\"))\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 使用RequestsMethod类对象发送请求\n res = req_fix.request_all(method, url, mine, case_data)\n \n \n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except:\n log.error(\"断言失败\"+\",用例数据为:\"+str(case_data)+\",期望数据为:\"+str(expect_data)+\",服务器返回的数据为:\"+res.text)\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_run\\test_run.py:45: AssertionError"}, "attachments": [{"name": "log", "source": "0a49a046-cdb9-4c0a-8f92-4824c8449bdd-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/addOrg'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'application/json'"}, {"name": "case_data", "value": "{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '添加组织成功!'}"}, {"name": "sql_type", "value": "'Select|delete'"}, {"name": "sql_data", "value": "{'select': 'SELECT ID_ from uc_demension WHERE `CODE_`=\"dem_test57_abc\";', 'delete': 'DELETE FROM uc_org WHERE `CODE_`=\"test_org_57\";'}"}, {"name": "update_key", "value": "'demId'"}], "start": 1699240394483, "stop": 1699240394541, "uuid": "e918b2ea-1b49-4be2-a63d-32239d4e6437", "historyId": "f8567b5f15355050e558a5d3bedea6da", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "bee8d76c-beff-4789-a072-16b69144e72b", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240392782, "stop": 1699240392782}], "start": 1699240392782, "stop": 1699240392902}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/api/org/v1/org/deleteOrg-POST-x-www-form-urlencoded-test_org_57-expect_data15-None-None-None]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <interfaceAutoTest1.test_run.test_run.TestBpm object at 0x0000016390230808>\nreq_fix = <interfaceAutoTest1.request_method.request_method.RequestStep object at 0x00000163902A7D48>, db_fix = <interfaceAutoTest1.common.db.DB object at 0x0000016390310DC8>\nurl = 'http://120.46.172.186:8080/api/org/v1/org/deleteOrg', method = 'POST', mine = 'x-www-form-urlencoded', case_data = 'test_org_57'\nexpect_data = {'message': '删除组织成功!', 'state': True}, sql_type = None, sql_data = None, update_key = None\n\n @pytest.mark.parametrize('url, method, mine, case_data, expect_data, sql_type, sql_data, update_key', Read_excel().get_data())\n def test_bpm(self, req_fix, db_fix, url, method, mine, case_data, expect_data, sql_type, sql_data, update_key):\n if sql_type == 'delete':\n db_fix.delete_sql(sql_data)\n elif sql_type == 'select':\n result = db_fix.select_sql(sql_data)\n case_data[update_key] = result\n \n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象执行删除的sql语句\n db_fix.delete(sql_data.get(\"delete\"))\n # 使用DB类对象执行查询的sql语句,并接收查询的结果\n select_result = db_fix.select(sql_data.get(\"select\"))\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 使用RequestsMethod类对象发送请求\n res = req_fix.request_all(method, url, mine, case_data)\n \n \n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert '删除组织成功!' == '部分删除成功,其中编码为...rg_57】的组织不存在;'\nE - 部分删除成功,其中编码为【test_org_57】的组织不存在;\nE + 删除组织成功!\n\ntest_run\\test_run.py:42: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <interfaceAutoTest1.test_run.test_run.TestBpm object at 0x0000016390230808>\nreq_fix = <interfaceAutoTest1.request_method.request_method.RequestStep object at 0x00000163902A7D48>, db_fix = <interfaceAutoTest1.common.db.DB object at 0x0000016390310DC8>\nurl = 'http://120.46.172.186:8080/api/org/v1/org/deleteOrg', method = 'POST', mine = 'x-www-form-urlencoded', case_data = 'test_org_57'\nexpect_data = {'message': '删除组织成功!', 'state': True}, sql_type = None, sql_data = None, update_key = None\n\n @pytest.mark.parametrize('url, method, mine, case_data, expect_data, sql_type, sql_data, update_key', Read_excel().get_data())\n def test_bpm(self, req_fix, db_fix, url, method, mine, case_data, expect_data, sql_type, sql_data, update_key):\n if sql_type == 'delete':\n db_fix.delete_sql(sql_data)\n elif sql_type == 'select':\n result = db_fix.select_sql(sql_data)\n case_data[update_key] = result\n \n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象执行删除的sql语句\n db_fix.delete(sql_data.get(\"delete\"))\n # 使用DB类对象执行查询的sql语句,并接收查询的结果\n select_result = db_fix.select(sql_data.get(\"select\"))\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 使用RequestsMethod类对象发送请求\n res = req_fix.request_all(method, url, mine, case_data)\n \n \n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except:\n log.error(\"断言失败\"+\",用例数据为:\"+str(case_data)+\",期望数据为:\"+str(expect_data)+\",服务器返回的数据为:\"+res.text)\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_run\\test_run.py:45: AssertionError"}, "attachments": [{"name": "log", "source": "16e45dd2-dcbe-4197-84b8-167d645f19a1-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/api/org/v1/org/deleteOrg'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'x-www-form-urlencoded'"}, {"name": "case_data", "value": "'test_org_57'"}, {"name": "expect_data", "value": "{'state': True, 'message': '删除组织成功!'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240394610, "stop": 1699240394672, "uuid": "ccd16a7e-932d-479d-97eb-b504e884ef7f", "historyId": "18cb0a9ec05bf88f938b5d4cd3f3573b", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "53b68a1f-feb9-46d4-baea-0be6c67affe0", "befores": [{"name": "url", "status": "passed", "start": 1699240392780, "stop": 1699240392780}], "start": 1699240392780, "stop": 1699240392930}
\ No newline at end of file
{"uuid": "abdfc616-602b-48ee-8418-612fc0f5e94a", "befores": [{"name": "update_key", "status": "passed", "start": 1699240392936, "stop": 1699240392936}], "start": 1699240392936, "stop": 1699240393058}
\ No newline at end of file
{"uuid": "582c1aa4-1671-497c-8d51-39b337af02dc", "befores": [{"name": "method", "status": "passed", "start": 1699240392609, "stop": 1699240392609}], "start": 1699240392609, "stop": 1699240392707}
\ No newline at end of file
{"uuid": "b0f8e0f1-f927-438f-9cd0-45d3e1dc2d80", "befores": [{"name": "url", "status": "passed", "start": 1699240393212, "stop": 1699240393212}], "start": 1699240393212, "stop": 1699240393333}
\ No newline at end of file
{"uuid": "a8f6cd0a-c050-42e8-9bf7-15d8aa42aa78", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240394714, "stop": 1699240394715}], "start": 1699240394714, "stop": 1699240394801}
\ No newline at end of file
{"uuid": "eb3d233c-7040-43d3-aac8-e23d0dd0d8f6", "befores": [{"name": "method", "status": "passed", "start": 1699240393814, "stop": 1699240393814}], "start": 1699240393814, "stop": 1699240393940}
\ No newline at end of file
{"uuid": "ca4c7749-547c-4c85-989e-758467dc6cc4", "befores": [{"name": "mine", "status": "passed", "start": 1699240393946, "stop": 1699240393946}], "start": 1699240393946, "stop": 1699240394138}
\ No newline at end of file
ERROR  艺术:test_run.py:44 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""}
\ No newline at end of file
{"uuid": "e34880c7-2ab5-4dc6-901e-41b1d6533a58", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240394149, "stop": 1699240394149}], "start": 1699240394149, "stop": 1699240394392}
\ No newline at end of file
{"uuid": "b2053a3f-ea36-4003-b04e-5a22fab967c3", "befores": [{"name": "url", "status": "passed", "start": 1699240393340, "stop": 1699240393340}], "start": 1699240393339, "stop": 1699240393495}
\ No newline at end of file
{"uuid": "68d0f3db-aa09-4e84-953e-fc5ea19d53d5", "befores": [{"name": "update_key", "status": "passed", "start": 1699240392714, "stop": 1699240392714}], "start": 1699240392714, "stop": 1699240392771}
\ No newline at end of file
{"uuid": "c0a0ede5-a136-4e22-a613-537d75f39f13", "befores": [{"name": "mine", "status": "passed", "start": 1699240392610, "stop": 1699240392610}], "start": 1699240392610, "stop": 1699240392706}
\ No newline at end of file
{"uuid": "36ccf686-294e-4483-8c02-dcc3c738d74f", "befores": [{"name": "case_data", "status": "passed", "start": 1699240393501, "stop": 1699240393501}], "start": 1699240393501, "stop": 1699240393625}
\ No newline at end of file
{"uuid": "71718033-d7d5-40fe-bc33-24b9d290a8c9", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240392714, "stop": 1699240392714}], "start": 1699240392714, "stop": 1699240392773}
\ No newline at end of file
{"uuid": "31088acc-1499-4d1c-a1f2-49da804b123c", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240392610, "stop": 1699240392610}], "start": 1699240392610, "stop": 1699240392702}
\ No newline at end of file
{"uuid": "38a78eb6-f407-450c-a8de-7af099b324b7", "befores": [{"name": "mine", "status": "passed", "start": 1699240394574, "stop": 1699240394574}], "start": 1699240394574, "stop": 1699240394601}
\ No newline at end of file
{"uuid": "3c88352c-8e7a-4c3c-ae71-2f307047629e", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240393947, "stop": 1699240393947}], "start": 1699240393947, "stop": 1699240394134}
\ No newline at end of file
{"uuid": "be458ee1-fb98-426a-8230-65a7aa7888fd", "befores": [{"name": "update_key", "status": "passed", "start": 1699240394482, "stop": 1699240394482}], "start": 1699240394482, "stop": 1699240394557}
\ No newline at end of file
{"uuid": "5557d9a1-8150-452b-8505-dc87d5824949", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240392781, "stop": 1699240392781}], "start": 1699240392781, "stop": 1699240392903}
\ No newline at end of file
{"uuid": "d5afe095-20b2-48e5-b09f-0df4bbc686b0", "befores": [{"name": "url", "status": "passed", "start": 1699240394573, "stop": 1699240394574}], "start": 1699240394573, "stop": 1699240394603}
\ No newline at end of file
{"uuid": "5f3d3e0a-3103-43a6-b603-cf998b73a44a", "befores": [{"name": "case_data", "status": "passed", "start": 1699240393946, "stop": 1699240393946}], "start": 1699240393946, "stop": 1699240394137}
\ No newline at end of file
{"uuid": "d3b29868-e5c2-4697-85f6-3f5027992739", "befores": [{"name": "method", "status": "passed", "start": 1699240393946, "stop": 1699240393946}], "start": 1699240393945, "stop": 1699240394139}
\ No newline at end of file
{"uuid": "d4de761f-1617-4e4a-89f8-a0291bdea3e2", "befores": [{"name": "mine", "status": "passed", "start": 1699240393340, "stop": 1699240393340}], "start": 1699240393340, "stop": 1699240393493}
\ No newline at end of file
{"uuid": "40e93da4-6f8a-4c56-a1ac-1b37003c8619", "befores": [{"name": "method", "status": "passed", "start": 1699240394574, "stop": 1699240394574}], "start": 1699240394574, "stop": 1699240394602}
\ No newline at end of file
{"uuid": "68c7f6d8-80f5-4578-876f-f340b88eff69", "befores": [{"name": "method", "status": "passed", "start": 1699240393076, "stop": 1699240393076}], "start": 1699240393076, "stop": 1699240393203}
\ No newline at end of file
{"uuid": "df365cb6-b956-4a85-be3c-99e9edc05972", "befores": [{"name": "update_key", "status": "passed", "start": 1699240394608, "stop": 1699240394608}], "start": 1699240394608, "stop": 1699240394694}
\ No newline at end of file
{"uuid": "f43fd706-00e3-424a-b31c-268b457f64d6", "befores": [{"name": "url", "status": "passed", "start": 1699240394713, "stop": 1699240394714}], "start": 1699240394713, "stop": 1699240394804}
\ No newline at end of file
{"uuid": "f7ba29b5-0d05-47ee-bdf4-af759d33280c", "befores": [{"name": "method", "status": "passed", "start": 1699240392935, "stop": 1699240392935}], "start": 1699240392935, "stop": 1699240393069}
\ No newline at end of file
{"uuid": "ba41c925-76b7-4027-9f01-91301d8ca9d3", "befores": [{"name": "url", "status": "passed", "start": 1699240393945, "stop": 1699240393945}], "start": 1699240393945, "stop": 1699240394140}
\ No newline at end of file
{"uuid": "0f6b828e-c299-48e1-9b28-9533039faf59", "befores": [{"name": "update_key", "status": "passed", "start": 1699240394150, "stop": 1699240394150}], "start": 1699240394150, "stop": 1699240394388}
\ No newline at end of file
{"uuid": "c0b7cd69-f28f-4c16-ae27-bb40bff4edc2", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240393815, "stop": 1699240393815}], "start": 1699240393815, "stop": 1699240393938}
\ No newline at end of file
{"uuid": "d4f7bcce-5ea3-45ff-b9b9-5ff511730c91", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240393077, "stop": 1699240393077}], "start": 1699240393077, "stop": 1699240393198}
\ No newline at end of file
{"uuid": "446c7497-5778-4ad4-8ddf-afeedab35cbb", "befores": [{"name": "update_key", "status": "passed", "start": 1699240394575, "stop": 1699240394575}], "start": 1699240394575, "stop": 1699240394591}
\ No newline at end of file
{"uuid": "e40bd1a7-a1c8-4aab-a69b-de9c0f8811e0", "befores": [{"name": "url", "status": "passed", "start": 1699240394402, "stop": 1699240394402}], "start": 1699240394402, "stop": 1699240394472}
\ No newline at end of file
{"uuid": "32f6ad3a-2eee-4a5a-9b1b-bf7b27b1e9f6", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240392936, "stop": 1699240392936}], "start": 1699240392936, "stop": 1699240393062}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/api/demension/v1/dem/getDem-GET-query-case_data12-expect_data12-None-None-None]", "status": "passed", "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/getDem'"}, {"name": "method", "value": "'GET'"}, {"name": "mine", "value": "'query'"}, {"name": "case_data", "value": "{'code': 'dem_test57_abc'}"}, {"name": "expect_data", "value": "{'demCode': 'dem_test57_abc', 'name': '测试57期的维度'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240394405, "stop": 1699240394462, "uuid": "c24b0107-5d8c-40a5-a9d2-60e2985cadba", "historyId": "873f1721f866aae473920aad1c146bd0", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "de557594-9df5-433a-9f23-9b72cb00aaf7", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240392935, "stop": 1699240392936}], "start": 1699240392935, "stop": 1699240393064}
\ No newline at end of file
{"uuid": "f3c78e9e-6325-4494-a7c1-e191c0c5478a", "befores": [{"name": "method", "status": "passed", "start": 1699240393212, "stop": 1699240393212}], "start": 1699240393212, "stop": 1699240393331}
\ No newline at end of file
{"uuid": "8a73910a-e521-4472-b5bf-7be12ae7fe4c", "befores": [{"name": "case_data", "status": "passed", "start": 1699240392610, "stop": 1699240392610}], "start": 1699240392610, "stop": 1699240392705}
\ No newline at end of file
{"uuid": "81a87f42-e295-4ee2-8b01-bbcedd0aaef9", "befores": [{"name": "url", "status": "passed", "start": 1699240394147, "stop": 1699240394147}], "start": 1699240394147, "stop": 1699240394398}
\ No newline at end of file
{"uuid": "b14fd709-6b4e-41b3-9216-801991b72658", "befores": [{"name": "url", "status": "passed", "start": 1699240393075, "stop": 1699240393075}], "start": 1699240393075, "stop": 1699240393205}
\ No newline at end of file
{"uuid": "eefe646c-ac1c-49af-9e17-222af3d9539e", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240393213, "stop": 1699240393213}], "start": 1699240393213, "stop": 1699240393324}
\ No newline at end of file
{"uuid": "26468c0b-fcad-4cc9-bc68-26a26400aded", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240392610, "stop": 1699240392611}], "start": 1699240392610, "stop": 1699240392701}
\ No newline at end of file
{"uuid": "c60e6cce-be68-47e5-87c3-c7c08e45984a", "befores": [{"name": "method", "status": "passed", "start": 1699240394714, "stop": 1699240394714}], "start": 1699240394714, "stop": 1699240394803}
\ No newline at end of file
{"uuid": "48338584-7ee1-48c6-806f-f4e47d34162d", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240393650, "stop": 1699240393651}], "start": 1699240393650, "stop": 1699240393802}
\ No newline at end of file
{"uuid": "33e4d583-179b-4bac-8c6c-8f3325cd1def", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240394575, "stop": 1699240394575}], "start": 1699240394575, "stop": 1699240394597}
\ No newline at end of file
{"uuid": "8cfe589c-de4b-468b-b93c-672384fb3ecb", "befores": [{"name": "mine", "status": "passed", "start": 1699240394403, "stop": 1699240394403}], "start": 1699240394403, "stop": 1699240394469}
\ No newline at end of file
{"uuid": "8cf706b8-cbb6-4298-a3a2-10bfe2cba8ff", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240393815, "stop": 1699240393815}], "start": 1699240393815, "stop": 1699240393937}
\ No newline at end of file
{"uuid": "84fe6cf4-4a5d-4d20-be74-104f3d9f03a5", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240392610, "stop": 1699240392610}], "start": 1699240392610, "stop": 1699240392703}
\ No newline at end of file
{"uuid": "cc3c4bd4-7aa5-402f-b610-8932e247c3d0", "befores": [{"name": "mine", "status": "passed", "start": 1699240394714, "stop": 1699240394714}], "start": 1699240394714, "stop": 1699240394803}
\ No newline at end of file
{"uuid": "8421be5a-7d63-45dc-b188-bb550bd40df8", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240392714, "stop": 1699240392714}], "start": 1699240392714, "stop": 1699240392772}
\ No newline at end of file
{"uuid": "d7b790f8-cd38-4c06-88b7-a2b7fb95cb98", "befores": [{"name": "mine", "status": "passed", "start": 1699240392780, "stop": 1699240392781}], "start": 1699240392780, "stop": 1699240392929}
\ No newline at end of file
{"uuid": "d64bed47-05ef-4853-83c7-9096374cba18", "befores": [{"name": "mine", "status": "passed", "start": 1699240392713, "stop": 1699240392713}], "start": 1699240392713, "stop": 1699240392775}
\ No newline at end of file
{"uuid": "dbdf61df-551a-4438-8fb0-029d151cb12a", "befores": [{"name": "case_data", "status": "passed", "start": 1699240392713, "stop": 1699240392713}], "start": 1699240392713, "stop": 1699240392774}
\ No newline at end of file
ERROR  艺术:test_run.py:44 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721365095323287552"}
\ No newline at end of file
{"uuid": "4e4cfb36-8299-4631-b723-42ea06ed4e52", "befores": [{"name": "mine", "status": "passed", "start": 1699240393212, "stop": 1699240393212}], "start": 1699240393212, "stop": 1699240393330}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/auth-POST-application/json-case_data8-expect_data8-None-None-None]", "status": "passed", "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'application/json'"}, {"name": "case_data", "value": "{'password': '@#!@#!@', 'username': 'admin'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240393652, "stop": 1699240393799, "uuid": "5c69bf8f-8158-48a9-a9a1-f98bfee2cf6a", "historyId": "417a58ab96aa03972062a416b54739ae", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "90448786-7d67-457c-8af1-477f52f9f8f1", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240394608, "stop": 1699240394608}], "start": 1699240394608, "stop": 1699240394701}
\ No newline at end of file
{"uuid": "227312c1-5781-406f-9a19-9dd7d92b226d", "befores": [{"name": "url", "status": "passed", "start": 1699240392934, "stop": 1699240392934}], "start": 1699240392934, "stop": 1699240393070}
\ No newline at end of file
{"uuid": "f63fa8a1-7857-41ee-805f-dd18fa122290", "befores": [{"name": "case_data", "status": "passed", "start": 1699240394403, "stop": 1699240394403}], "start": 1699240394403, "stop": 1699240394468}
\ No newline at end of file
{"uuid": "5b39446a-a6e6-49a4-b25f-79a7289df6d3", "befores": [{"name": "mine", "status": "passed", "start": 1699240394147, "stop": 1699240394148}], "start": 1699240394147, "stop": 1699240394396}
\ No newline at end of file
{"uuid": "bbc60a56-f195-4e0c-8ba3-d6cdb8972783", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240394149, "stop": 1699240394149}], "start": 1699240394149, "stop": 1699240394390}
\ No newline at end of file
{"uuid": "3687967d-9d57-4748-82ff-a201bb9b08af", "befores": [{"name": "case_data", "status": "passed", "start": 1699240394148, "stop": 1699240394148}], "start": 1699240394148, "stop": 1699240394395}
\ No newline at end of file
{"uuid": "da8cf55e-3ccb-48a9-a18b-7172159d762e", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240392714, "stop": 1699240392714}], "start": 1699240392714, "stop": 1699240392772}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/api/demension/v1/dem/addDem-post-json-case_data11-expect_data11-delete-DELETE FROM uc_demension WHERE `CODE_`=\"dem_test57_abc\";-None]", "status": "passed", "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/addDem'"}, {"name": "method", "value": "'post'"}, {"name": "mine", "value": "'json'"}, {"name": "case_data", "value": "{'code': 'dem_test57_abc', 'description': '测试维度57', 'isDefault': 0, 'name': '测试57期的维度'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '添加维度成功!'}"}, {"name": "sql_type", "value": "'delete'"}, {"name": "sql_data", "value": "'DELETE FROM uc_demension WHERE `CODE_`=\"dem_test57_abc\";'"}, {"name": "update_key", "value": "None"}], "start": 1699240394151, "stop": 1699240394387, "uuid": "13e2e7db-e001-44a3-9b63-f7155e034133", "historyId": "50caf6fa2262861bd3eeb248bdfa4697", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "2fed435f-3253-4988-92d5-f8ab2b5f889a", "befores": [{"name": "update_key", "status": "passed", "start": 1699240393213, "stop": 1699240393213}], "start": 1699240393213, "stop": 1699240393321}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds-DELETE-query-case_data16-expect_data16-Select-SELECT ID_ from uc_demension WHERE `CODE_`=\"dem_test57_abc\";-ids]", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败", "trace": "self = <interfaceAutoTest1.test_run.test_run.TestBpm object at 0x0000016390230388>\nreq_fix = <interfaceAutoTest1.request_method.request_method.RequestStep object at 0x00000163902A7D48>, db_fix = <interfaceAutoTest1.common.db.DB object at 0x0000016390310DC8>\nurl = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', method = 'DELETE', mine = 'query', case_data = {'ids': '不知道'}\nexpect_data = {'message': '删除维度成功!', 'state': True}, sql_type = 'Select', sql_data = 'SELECT ID_ from uc_demension WHERE `CODE_`=\"dem_test57_abc\";', update_key = 'ids'\n\n @pytest.mark.parametrize('url, method, mine, case_data, expect_data, sql_type, sql_data, update_key', Read_excel().get_data())\n def test_bpm(self, req_fix, db_fix, url, method, mine, case_data, expect_data, sql_type, sql_data, update_key):\n if sql_type == 'delete':\n db_fix.delete_sql(sql_data)\n elif sql_type == 'select':\n result = db_fix.select_sql(sql_data)\n case_data[update_key] = result\n \n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象执行删除的sql语句\n db_fix.delete(sql_data.get(\"delete\"))\n # 使用DB类对象执行查询的sql语句,并接收查询的结果\n select_result = db_fix.select(sql_data.get(\"select\"))\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 使用RequestsMethod类对象发送请求\n res = req_fix.request_all(method, url, mine, case_data)\n \n \n # 断言\n try:\n for key in expect_data:\n> assert expect_data[key] == res.json().get(key)\nE AssertionError: assert True == False\nE + where False = <built-in method get of dict object at 0x00000163903CEE08>('state')\nE + where <built-in method get of dict object at 0x00000163903CEE08> = {'logId': '1721365095323287552', 'message': '', 'state': False}.get\nE + where {'logId': '1721365095323287552', 'message': '', 'state': False} = <bound method Response.json of <Response [500]>>()\nE + where <bound method Response.json of <Response [500]>> = <Response [500]>.json\n\ntest_run\\test_run.py:42: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <interfaceAutoTest1.test_run.test_run.TestBpm object at 0x0000016390230388>\nreq_fix = <interfaceAutoTest1.request_method.request_method.RequestStep object at 0x00000163902A7D48>, db_fix = <interfaceAutoTest1.common.db.DB object at 0x0000016390310DC8>\nurl = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', method = 'DELETE', mine = 'query', case_data = {'ids': '不知道'}\nexpect_data = {'message': '删除维度成功!', 'state': True}, sql_type = 'Select', sql_data = 'SELECT ID_ from uc_demension WHERE `CODE_`=\"dem_test57_abc\";', update_key = 'ids'\n\n @pytest.mark.parametrize('url, method, mine, case_data, expect_data, sql_type, sql_data, update_key', Read_excel().get_data())\n def test_bpm(self, req_fix, db_fix, url, method, mine, case_data, expect_data, sql_type, sql_data, update_key):\n if sql_type == 'delete':\n db_fix.delete_sql(sql_data)\n elif sql_type == 'select':\n result = db_fix.select_sql(sql_data)\n case_data[update_key] = result\n \n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象执行删除的sql语句\n db_fix.delete(sql_data.get(\"delete\"))\n # 使用DB类对象执行查询的sql语句,并接收查询的结果\n select_result = db_fix.select(sql_data.get(\"select\"))\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 使用RequestsMethod类对象发送请求\n res = req_fix.request_all(method, url, mine, case_data)\n \n \n # 断言\n try:\n for key in expect_data:\n assert expect_data[key] == res.json().get(key)\n except:\n log.error(\"断言失败\"+\",用例数据为:\"+str(case_data)+\",期望数据为:\"+str(expect_data)+\",服务器返回的数据为:\"+res.text)\n> raise AssertionError(\"断言失败\")\nE AssertionError: 断言失败\n\ntest_run\\test_run.py:45: AssertionError"}, "attachments": [{"name": "log", "source": "5ac14646-0514-4e00-a1b5-96f120ff0b02-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"}, {"name": "method", "value": "'DELETE'"}, {"name": "mine", "value": "'query'"}, {"name": "case_data", "value": "{'ids': '不知道'}"}, {"name": "expect_data", "value": "{'state': True, 'message': '删除维度成功!'}"}, {"name": "sql_type", "value": "'Select'"}, {"name": "sql_data", "value": "'SELECT ID_ from uc_demension WHERE `CODE_`=\"dem_test57_abc\";'"}, {"name": "update_key", "value": "'ids'"}], "start": 1699240394716, "stop": 1699240394780, "uuid": "c92a81a0-2ddf-4149-8285-7b47b35a6522", "historyId": "4dd8d699f6e6dbd6fbb5c5fec9d26dfa", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "331a024a-1439-4d31-a16b-a1ac098a6076", "befores": [{"name": "url", "status": "passed", "start": 1699240393814, "stop": 1699240393814}], "start": 1699240393814, "stop": 1699240393941}
\ No newline at end of file
{"uuid": "cdd52b00-dca0-4971-a4d2-13750e7642c5", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240393213, "stop": 1699240393213}], "start": 1699240393213, "stop": 1699240393323}
\ No newline at end of file
{"uuid": "ee144991-aea2-4873-9823-14befb400bf4", "befores": [{"name": "url", "status": "passed", "start": 1699240393500, "stop": 1699240393500}], "start": 1699240393500, "stop": 1699240393637}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/auth-POST-json-case_data9-expect_data9-None-None-None]", "status": "passed", "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'json'"}, {"name": "case_data", "value": "{'password': 'MTIzNDU222', 'username': 'admin'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240393816, "stop": 1699240393934, "uuid": "c236ef77-6677-4892-803b-90ab945d42f4", "historyId": "1e89116e6f47947db7fc95b2dee428fb", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "7f44a84c-9941-4876-8914-7e490b4e4acd", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240393341, "stop": 1699240393341}], "start": 1699240393341, "stop": 1699240393490}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/auth-POST-application/json-case_data6-expect_data6-None-None-None]", "status": "passed", "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'application/json'"}, {"name": "case_data", "value": "{'password': 'm', 'username': 'admin'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240393342, "stop": 1699240393487, "uuid": "6899ff54-b111-46e4-be70-677cbdc513f4", "historyId": "96001822c90ad46909004a42882a1de8", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "0a2f8869-722f-491f-ad6e-2c1613f1f84c", "befores": [{"name": "mine", "status": "passed", "start": 1699240393650, "stop": 1699240393650}], "start": 1699240393650, "stop": 1699240393804}
\ No newline at end of file
{"uuid": "7fa30993-8999-4d3d-b9bf-ffbff00fadc4", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240392935, "stop": 1699240392935}], "start": 1699240392935, "stop": 1699240393066}
\ No newline at end of file
{"uuid": "c481d489-5b18-4759-b277-6f8ee6b54854", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240394715, "stop": 1699240394715}], "start": 1699240394715, "stop": 1699240394800}
\ No newline at end of file
{"uuid": "3c785018-7947-4489-ab80-fc07b402eae9", "befores": [{"name": "method", "status": "passed", "start": 1699240393501, "stop": 1699240393501}], "start": 1699240393501, "stop": 1699240393633}
\ No newline at end of file
{"uuid": "c2bf2b62-d03f-4ec4-ad0e-8cbf68ca36ec", "befores": [{"name": "case_data", "status": "passed", "start": 1699240393814, "stop": 1699240393815}], "start": 1699240393814, "stop": 1699240393939}
\ No newline at end of file
{"uuid": "3e84a6aa-1f9c-4518-a4d9-5655fb8757e5", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240392781, "stop": 1699240392781}], "start": 1699240392781, "stop": 1699240392927}
\ No newline at end of file
{"uuid": "77114ca1-dcea-49aa-bf5e-994d3c9532d6", "befores": [{"name": "method", "status": "passed", "start": 1699240394403, "stop": 1699240394403}], "start": 1699240394402, "stop": 1699240394471}
\ No newline at end of file
{"uuid": "048c89ff-c570-4aaa-ab5b-737e6cb9ad4b", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240393651, "stop": 1699240393651}], "start": 1699240393651, "stop": 1699240393801}
\ No newline at end of file
{"uuid": "8237f36c-aa6e-4aef-8bc2-84dadcf78585", "befores": [{"name": "update_key", "status": "passed", "start": 1699240393651, "stop": 1699240393651}], "start": 1699240393651, "stop": 1699240393800}
\ No newline at end of file
{"uuid": "0d85e202-028a-4240-8de6-12471e1c5433", "befores": [{"name": "update_key", "status": "passed", "start": 1699240392782, "stop": 1699240392782}], "start": 1699240392782, "stop": 1699240392901}
\ No newline at end of file
{"uuid": "cb67777f-8657-42b3-a919-4fc9b6de07d9", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240394148, "stop": 1699240394149}], "start": 1699240394148, "stop": 1699240394394}
\ No newline at end of file
{"uuid": "8d10a376-d5df-4151-ad20-59b32319aecc", "befores": [{"name": "method", "status": "passed", "start": 1699240392780, "stop": 1699240392780}], "start": 1699240392780, "stop": 1699240392930}
\ No newline at end of file
{"uuid": "3e1b5627-1ff2-4e99-838a-1a2fa8f2ee6e", "befores": [{"name": "update_key", "status": "passed", "start": 1699240393077, "stop": 1699240393077}], "start": 1699240393077, "stop": 1699240393194}
\ No newline at end of file
{"uuid": "2632b2f7-6959-49c7-933e-6e860c422bf5", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240393501, "stop": 1699240393501}], "start": 1699240393501, "stop": 1699240393623}
\ No newline at end of file
{"uuid": "e5fe6190-06eb-438d-8861-db9a6c070ea6", "befores": [{"name": "url", "status": "passed", "start": 1699240392609, "stop": 1699240392609}], "start": 1699240392609, "stop": 1699240392708}
\ No newline at end of file
{"uuid": "e7532747-1bd1-4c24-b141-8b5da5d34ddc", "befores": [{"name": "method", "status": "passed", "start": 1699240394479, "stop": 1699240394479}], "start": 1699240394479, "stop": 1699240394566}
\ No newline at end of file
{"uuid": "2bfa3963-e078-4169-8745-6102b7c07d48", "befores": [{"name": "method", "status": "passed", "start": 1699240394607, "stop": 1699240394607}], "start": 1699240394607, "stop": 1699240394704}
\ No newline at end of file
{"uuid": "cb64430c-aea4-4efe-9f7b-82b366122fbb", "befores": [{"name": "method", "status": "passed", "start": 1699240393340, "stop": 1699240393340}], "start": 1699240393340, "stop": 1699240393494}
\ No newline at end of file
{"uuid": "473143ab-d709-4836-ba82-dae918c1a18a", "children": ["019f49fb-9917-4d18-88e6-793e8b89b26e", "d2ea3287-5ab5-4ec6-ade2-b437a298a207", "483d6c9d-d487-4347-86ca-3f909523e61c", "f389337c-3929-4e15-88db-db87bed7ed26", "93577a56-d932-4f0e-9af9-8c3e95a2376a", "3d8900f5-c85a-4a04-b662-649492392cc6", "6899ff54-b111-46e4-be70-677cbdc513f4", "a3d380de-0552-4504-9bca-d429cd751916", "5c69bf8f-8158-48a9-a9a1-f98bfee2cf6a", "c236ef77-6677-4892-803b-90ab945d42f4", "32cc1a1c-b0c7-49e0-940d-f0c14bde80fa", "13e2e7db-e001-44a3-9b63-f7155e034133", "c24b0107-5d8c-40a5-a9d2-60e2985cadba", "e918b2ea-1b49-4be2-a63d-32239d4e6437", "fd94191b-973f-401f-a8cf-18bd99b049a4", "ccd16a7e-932d-479d-97eb-b504e884ef7f", "c92a81a0-2ddf-4149-8285-7b47b35a6522"], "befores": [{"name": "req_fix", "status": "passed", "start": 1699240392114, "stop": 1699240392250}], "afters": [{"name": "req_fix::0", "status": "passed", "start": 1699240394807, "stop": 1699240394807}], "start": 1699240392114, "stop": 1699240394807}
\ No newline at end of file
{"uuid": "8c200fa2-01c2-4a5c-948f-9648eed80bae", "befores": [{"name": "url", "status": "passed", "start": 1699240392713, "stop": 1699240392713}], "start": 1699240392713, "stop": 1699240392776}
\ No newline at end of file
{"uuid": "576ba9e4-6a84-4105-904d-c030313eca5b", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240393341, "stop": 1699240393341}], "start": 1699240393341, "stop": 1699240393491}
\ No newline at end of file
{"uuid": "8cd958e5-d861-4959-b32b-c6051bd40a6d", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240393946, "stop": 1699240393946}], "start": 1699240393946, "stop": 1699240394136}
\ No newline at end of file
{"uuid": "5603fc0a-eaa5-4aef-b3ae-45fcedff84d0", "befores": [{"name": "case_data", "status": "passed", "start": 1699240393212, "stop": 1699240393213}], "start": 1699240393212, "stop": 1699240393328}
\ No newline at end of file
{"uuid": "b83dc62f-f301-42c0-b0a7-ff886a8c3d03", "befores": [{"name": "update_key", "status": "passed", "start": 1699240393815, "stop": 1699240393815}], "start": 1699240393815, "stop": 1699240393935}
\ No newline at end of file
{"uuid": "b310db8f-46a3-4e5e-93c8-251643bb15eb", "befores": [{"name": "case_data", "status": "passed", "start": 1699240393076, "stop": 1699240393076}], "start": 1699240393076, "stop": 1699240393201}
\ No newline at end of file
{"uuid": "4c0853b4-e14e-474f-ba59-34f1998470d0", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240393076, "stop": 1699240393076}], "start": 1699240393076, "stop": 1699240393199}
\ No newline at end of file
{"uuid": "387b22df-8fca-4791-aa92-32dee3de77a4", "befores": [{"name": "update_key", "status": "passed", "start": 1699240393947, "stop": 1699240393947}], "start": 1699240393947, "stop": 1699240394133}
\ No newline at end of file
{"uuid": "b0bbf57a-2cd7-491d-aac2-0c991ddc3e59", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240393077, "stop": 1699240393077}], "start": 1699240393077, "stop": 1699240393197}
\ No newline at end of file
{"uuid": "b9a299d1-dfda-47e5-90ad-3700169d9823", "befores": [{"name": "update_key", "status": "passed", "start": 1699240392611, "stop": 1699240392611}], "start": 1699240392611, "stop": 1699240392700}
\ No newline at end of file
{"uuid": "9155885b-8e19-4452-b59d-40509a45f95b", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240394482, "stop": 1699240394482}], "start": 1699240394482, "stop": 1699240394558}
\ No newline at end of file
{"uuid": "3ec55764-79f8-4601-9e2e-474e19598502", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240394481, "stop": 1699240394481}], "start": 1699240394481, "stop": 1699240394559}
\ No newline at end of file
{"uuid": "1b4ed703-e766-4486-bfb8-60f6fd740e9c", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240394403, "stop": 1699240394403}], "start": 1699240394403, "stop": 1699240394467}
\ No newline at end of file
{"uuid": "b60dd561-99e3-4233-860f-36e7f79239c0", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240394608, "stop": 1699240394608}], "start": 1699240394608, "stop": 1699240394698}
\ No newline at end of file
{"uuid": "03e5ea5b-11d4-42d1-b8b8-d69f889f07ca", "befores": [{"name": "mine", "status": "passed", "start": 1699240393501, "stop": 1699240393501}], "start": 1699240393501, "stop": 1699240393628}
\ No newline at end of file
{'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE2OTkzMjY3OTIsImlhdCI6MTY5OTI0MDM5Mn0.4Dbph1lqmaKzwWPB9owIAy3kl1PSq6F4PhFdjUSF99mxl7ZZiA76BDermypZqlIgYCK7FAQFe9d1U0L7k_Na6g', 'username': '超级管理员', 'account': 'admin', 'userId': '1', 'expiration': 86400, 'loginStatus': True, 'userAttrs': {'tenantId': '-1'}}
{'User-Agent': 'python-requests/2.26.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOjE2OTkzMjY3OTIsImlhdCI6MTY5OTI0MDM5Mn0.4Dbph1lqmaKzwWPB9owIAy3kl1PSq6F4PhFdjUSF99mxl7ZZiA76BDermypZqlIgYCK7FAQFe9d1U0L7k_Na6g'}
{"name": "test_bpm[http://120.46.172.186:8080/auth-POST-json-case_data0-expect_data0-None-None-None]", "status": "passed", "attachments": [{"name": "stdout", "source": "b9be1b26-66d2-40c6-be52-42c1a07750ce-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'json'"}, {"name": "case_data", "value": "{'password': 'MTIzNDU2', 'username': 'admin'}"}, {"name": "expect_data", "value": "{'username': '超级管理员', 'account': 'admin', 'loginStatus': True}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240392612, "stop": 1699240392700, "uuid": "019f49fb-9917-4d18-88e6-793e8b89b26e", "historyId": "9cab9d38dfd5ead49dfc218d6ffa7ad6", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "af4a9e77-b07c-4307-b146-293696f069fc", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240393341, "stop": 1699240393341}], "start": 1699240393341, "stop": 1699240393489}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/auth-POST-json-case_data4-expect_data4-None-None-None]", "status": "passed", "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'json'"}, {"name": "case_data", "value": "{'password': 'MTIzNDU2', 'username': '@#!@#!@'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240393079, "stop": 1699240393192, "uuid": "93577a56-d932-4f0e-9af9-8c3e95a2376a", "historyId": "c29ff36719d64d7a19c5470b03c1999b", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "1e29badc-e833-4a4c-b7f5-1ecd7b06f1a0", "befores": [{"name": "case_data", "status": "passed", "start": 1699240393340, "stop": 1699240393340}], "start": 1699240393340, "stop": 1699240393492}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/refresh-GET-None-None-expect_data10-None-None-None]", "status": "broken", "statusDetails": {"message": "NameError: 传入的媒体类型的值错误,请察看excel中是否填入正确", "trace": "self = <interfaceAutoTest1.test_run.test_run.TestBpm object at 0x000001639021BCC8>\nreq_fix = <interfaceAutoTest1.request_method.request_method.RequestStep object at 0x00000163902A7D48>, db_fix = <interfaceAutoTest1.common.db.DB object at 0x0000016390310DC8>\nurl = 'http://120.46.172.186:8080/refresh', method = 'GET', mine = None, case_data = None, expect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n @pytest.mark.parametrize('url, method, mine, case_data, expect_data, sql_type, sql_data, update_key', Read_excel().get_data())\n def test_bpm(self, req_fix, db_fix, url, method, mine, case_data, expect_data, sql_type, sql_data, update_key):\n if sql_type == 'delete':\n db_fix.delete_sql(sql_data)\n elif sql_type == 'select':\n result = db_fix.select_sql(sql_data)\n case_data[update_key] = result\n \n elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n # 使用DB类对象执行删除的sql语句\n db_fix.delete(sql_data.get(\"delete\"))\n # 使用DB类对象执行查询的sql语句,并接收查询的结果\n select_result = db_fix.select(sql_data.get(\"select\"))\n # 将查询结果更新到用例数据中\n case_data[update_key] = select_result\n \n # 使用RequestsMethod类对象发送请求\n> res = req_fix.request_all(method, url, mine, case_data)\n\ntest_run\\test_run.py:36: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\nself = <interfaceAutoTest1.request_method.request_method.RequestStep object at 0x00000163902A7D48>, method = 'GET', url = 'http://120.46.172.186:8080/refresh', types = None\ndata = None\n\n def request_all(self, method, url, types='json', data=None):\n if types == 'json' or types == 'application/json':\n return self.bpm_session.request(method=method, url=url, json=data)\n elif types == \"x-www-form-urlencoded\" or types == \"application/x-www-form-urlencoded\":\n return self.bpm_session.request(method=method, url=url, data=data)\n \n elif types == \"form-data\" or types == \"multipart/form-data\":\n return self.bpm_session.request(method=method, url=url, files=data)\n \n elif types == \"query\" or types == \"params\" or types == \"param\":\n return self.bpm_session.request(method=method, url=url, params=data)\n \n elif types == \"query|body\" or types == \"body|query\" or types == \"json|query\" or types == \"query|json\":\n return self.bpm_session.request(method=types, url=types, params=types[\"query\"], json=types[\"body\"])\n else:\n log.error(\"传入的媒体类型的值错误,请察看excel中是否填入正确\")\n> raise NameError(\"传入的媒体类型的值错误,请察看excel中是否填入正确\")\nE NameError: 传入的媒体类型的值错误,请察看excel中是否填入正确\n\nrequest_method\\request_method.py:45: NameError"}, "attachments": [{"name": "log", "source": "0b9935f5-0575-4ec6-ba8c-0d17e5ebbfe7-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/refresh'"}, {"name": "method", "value": "'GET'"}, {"name": "mine", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新成功'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240393948, "stop": 1699240393949, "uuid": "32cc1a1c-b0c7-49e0-940d-f0c14bde80fa", "historyId": "996e9178bfc32eacab56778cdbeffea8", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "a51cb6d0-adad-43a6-8d94-3a514ebe5bbd", "befores": [{"name": "case_data", "status": "passed", "start": 1699240392781, "stop": 1699240392781}], "start": 1699240392781, "stop": 1699240392928}
\ No newline at end of file
{"uuid": "ac852b7c-c189-4a10-bbb7-7baed60a1376", "befores": [{"name": "expect_data", "status": "passed", "start": 1699240394481, "stop": 1699240394481}], "start": 1699240394481, "stop": 1699240394561}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/auth-POST-json-case_data7-expect_data7-None-None-None]", "status": "passed", "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'json'"}, {"name": "case_data", "value": "{'password': '', 'username': 'admin'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240393504, "stop": 1699240393616, "uuid": "a3d380de-0552-4504-9bca-d429cd751916", "historyId": "bf5771441bcdfe667eb573fabbc1d9d9", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "35703609-3841-4a58-b0bd-d80f0591a1b5", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240394575, "stop": 1699240394575}], "start": 1699240394575, "stop": 1699240394594}
\ No newline at end of file
{"uuid": "717031e5-6bdc-4a47-b11b-c744626eb6c0", "befores": [{"name": "method", "status": "passed", "start": 1699240393649, "stop": 1699240393649}], "start": 1699240393649, "stop": 1699240393805}
\ No newline at end of file
{"uuid": "36ed58bb-398f-4145-b136-c91ecc3f9cef", "befores": [{"name": "case_data", "status": "passed", "start": 1699240394714, "stop": 1699240394714}], "start": 1699240394714, "stop": 1699240394802}
\ No newline at end of file
{"uuid": "b643a844-e0fe-4663-a593-0e085d2e9357", "befores": [{"name": "url", "status": "passed", "start": 1699240393648, "stop": 1699240393648}], "start": 1699240393648, "stop": 1699240393806}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/auth-POST-json-case_data2-expect_data2-None-None-None]", "status": "passed", "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'json'"}, {"name": "case_data", "value": "{'password': 'MTIzNDU2', 'username': 'a'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240392783, "stop": 1699240392901, "uuid": "483d6c9d-d487-4347-86ca-3f909523e61c", "historyId": "be4d7e640f36a27775e52241a9b56c8c", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "93aee80d-7d06-4cf5-9a61-2616263bc19d", "befores": [{"name": "url", "status": "passed", "start": 1699240394607, "stop": 1699240394607}], "start": 1699240394607, "stop": 1699240394704}
\ No newline at end of file
{"uuid": "fe641953-f172-4729-9020-5d895a149087", "befores": [{"name": "case_data", "status": "passed", "start": 1699240392935, "stop": 1699240392935}], "start": 1699240392935, "stop": 1699240393067}
\ No newline at end of file
{"uuid": "6d86b222-1e37-43e3-ae5a-51e0758b5ea0", "befores": [{"name": "method", "status": "passed", "start": 1699240392713, "stop": 1699240392713}], "start": 1699240392713, "stop": 1699240392775}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/auth-POST-json-case_data3-expect_data3-None-None-None]", "status": "passed", "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'json'"}, {"name": "case_data", "value": "{'password': 'MTIzNDU2', 'username': ''}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240392937, "stop": 1699240393057, "uuid": "f389337c-3929-4e15-88db-db87bed7ed26", "historyId": "28687ceae3b3ce7dc5e6e2b45d10d29b", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "b6a0553f-5859-4045-ae10-9f7438cae319", "befores": [{"name": "url", "status": "passed", "start": 1699240394478, "stop": 1699240394478}], "start": 1699240394478, "stop": 1699240394567}
\ No newline at end of file
{"uuid": "792d088f-a2a6-47fb-8019-22196ecaa56a", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240393502, "stop": 1699240393502}], "start": 1699240393502, "stop": 1699240393622}
\ No newline at end of file
{"uuid": "ee1b5d51-d973-41de-895c-e781f4ca9f01", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240394403, "stop": 1699240394403}], "start": 1699240394403, "stop": 1699240394466}
\ No newline at end of file
{"uuid": "3d961442-6307-4364-80f9-8a4d7469c6c7", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240394608, "stop": 1699240394608}], "start": 1699240394608, "stop": 1699240394699}
\ No newline at end of file
{"uuid": "94522562-2a4c-45ec-81de-8eff0ea5a946", "befores": [{"name": "update_key", "status": "passed", "start": 1699240393341, "stop": 1699240393341}], "start": 1699240393341, "stop": 1699240393488}
\ No newline at end of file
{"uuid": "9985c5da-f260-4f76-9474-5619b1298944", "befores": [{"name": "case_data", "status": "passed", "start": 1699240394608, "stop": 1699240394608}], "start": 1699240394608, "stop": 1699240394702}
\ No newline at end of file
{"uuid": "c7a9c738-755d-46ab-bb40-9d7a291637af", "befores": [{"name": "method", "status": "passed", "start": 1699240394147, "stop": 1699240394147}], "start": 1699240394147, "stop": 1699240394397}
\ No newline at end of file
{"uuid": "60b95ad7-9576-4ca5-9454-9dd730db8a14", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240393815, "stop": 1699240393815}], "start": 1699240393815, "stop": 1699240393936}
\ No newline at end of file
{"uuid": "6acd6294-2137-4f44-94e1-8c37c13c9212", "befores": [{"name": "sql_type", "status": "passed", "start": 1699240393213, "stop": 1699240393213}], "start": 1699240393213, "stop": 1699240393323}
\ No newline at end of file
{"uuid": "06b8809e-36c5-48d1-bf0c-2b645f415599", "befores": [{"name": "update_key", "status": "passed", "start": 1699240394715, "stop": 1699240394715}], "start": 1699240394715, "stop": 1699240394797}
\ No newline at end of file
{"uuid": "c6da39ce-0100-437e-b186-8184b567c5d4", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240394715, "stop": 1699240394715}], "start": 1699240394715, "stop": 1699240394799}
\ No newline at end of file
{"uuid": "3c51355f-2345-42c8-b31a-38ce8a21be17", "befores": [{"name": "case_data", "status": "passed", "start": 1699240394480, "stop": 1699240394481}], "start": 1699240394480, "stop": 1699240394564}
\ No newline at end of file
{"uuid": "6993d1eb-5618-4f04-afbc-df0a204fa5d4", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240394404, "stop": 1699240394404}], "start": 1699240394404, "stop": 1699240394465}
\ No newline at end of file
{"uuid": "6309d264-dce1-4757-9b01-7987245af8af", "befores": [{"name": "update_key", "status": "passed", "start": 1699240394404, "stop": 1699240394404}], "start": 1699240394404, "stop": 1699240394464}
\ No newline at end of file
{"uuid": "95cf2ecc-1ca5-4a36-ac80-75410b8ee1f8", "befores": [{"name": "case_data", "status": "passed", "start": 1699240394574, "stop": 1699240394574}], "start": 1699240394574, "stop": 1699240394599}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/auth-POST-json-case_data1-expect_data1-None-None-None]", "status": "passed", "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'json'"}, {"name": "case_data", "value": "{'password': 'MTIzNDU2', 'username': 'adminadminadminadminadminadmin'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240392715, "stop": 1699240392770, "uuid": "d2ea3287-5ab5-4ec6-ade2-b437a298a207", "historyId": "d54078ff2a374e89c54c3b5924b58fb8", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"name": "test_bpm[http://120.46.172.186:8080/auth-POST-application/json-case_data5-expect_data5-None-None-None]", "status": "passed", "parameters": [{"name": "url", "value": "'http://120.46.172.186:8080/auth'"}, {"name": "method", "value": "'POST'"}, {"name": "mine", "value": "'application/json'"}, {"name": "case_data", "value": "{'password': 'MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2MTIzNDU2', 'username': 'admin'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账号或密码错误'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1699240393214, "stop": 1699240393320, "uuid": "3d8900f5-c85a-4a04-b662-649492392cc6", "historyId": "5ab5d803d8963ae1752d27440d225a5f", "testCaseId": "b806f6a011e36a7767fe837ccf8e2825", "fullName": "test_run.TestBpm#test_bpm", "labels": [{"name": "suite", "value": "test_run"}, {"name": "subSuite", "value": "TestBpm"}, {"name": "host", "value": "LZH"}, {"name": "thread", "value": "15936-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_run"}]}
\ No newline at end of file
{"uuid": "8c8e7b6b-7a5e-449e-b12f-a4bb0c9fccc0", "befores": [{"name": "sql_data", "status": "passed", "start": 1699240394575, "stop": 1699240394575}], "start": 1699240394575, "stop": 1699240394592}
\ No newline at end of file
{"uuid": "254c2481-545c-42a3-a9ed-769214b97315", "befores": [{"name": "update_key", "status": "passed", "start": 1699240393502, "stop": 1699240393502}], "start": 1699240393502, "stop": 1699240393619}
\ No newline at end of file
{"uuid": "82a4be2f-ff1c-4aeb-a6d2-c4707ac8e4bf", "children": ["019f49fb-9917-4d18-88e6-793e8b89b26e", "d2ea3287-5ab5-4ec6-ade2-b437a298a207", "483d6c9d-d487-4347-86ca-3f909523e61c", "f389337c-3929-4e15-88db-db87bed7ed26", "93577a56-d932-4f0e-9af9-8c3e95a2376a", "3d8900f5-c85a-4a04-b662-649492392cc6", "6899ff54-b111-46e4-be70-677cbdc513f4", "a3d380de-0552-4504-9bca-d429cd751916", "5c69bf8f-8158-48a9-a9a1-f98bfee2cf6a", "c236ef77-6677-4892-803b-90ab945d42f4", "32cc1a1c-b0c7-49e0-940d-f0c14bde80fa", "13e2e7db-e001-44a3-9b63-f7155e034133", "c24b0107-5d8c-40a5-a9d2-60e2985cadba", "e918b2ea-1b49-4be2-a63d-32239d4e6437", "fd94191b-973f-401f-a8cf-18bd99b049a4", "ccd16a7e-932d-479d-97eb-b504e884ef7f", "c92a81a0-2ddf-4149-8285-7b47b35a6522"], "befores": [{"name": "db_fix", "status": "passed", "start": 1699240392251, "stop": 1699240392609}], "afters": [{"name": "db_fix::0", "status": "passed", "start": 1699240394805, "stop": 1699240394806}], "start": 1699240392251, "stop": 1699240394806}
\ No newline at end of file
{"uuid": "072c9137-3241-4d29-a924-61fff0e82095", "befores": [{"name": "mine", "status": "passed", "start": 1699240392935, "stop": 1699240392935}], "start": 1699240392935, "stop": 1699240393068}
\ No newline at end of file
2023-11-06 11:13:13 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确
2023-11-06 11:13:13 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确
2023-11-06 11:13:14 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"}
2023-11-06 11:13:14 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""}
2023-11-06 11:13:14 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721365095323287552"}
2023-11-04 10:13:03,129 - read_ini.py[line:56] - ERROR: 输入sql节点下的key,错误,请求察看配置文件~!!! - 艺术
2023-11-04 10:13:03,129 - read_ini.py[line:56] - ERROR: 输入sql节点下的key,错误,请求察看配置文件~!!! - 艺术
2023-11-04 10:27:10,167 - read_json.py[line:25] - ERROR: json文件的路径不合法 - 艺术
2023-11-04 10:32:21,280 - read_ini.py[line:42] - ERROR: 输入host节点下的key,错误,请求察看配置文件~!!! - 艺术
2023-11-04 10:34:17,856 - read_ini.py[line:42] - ERROR: 输入host节点下的key,错误,请求察看配置文件~!!! - 艺术
2023-11-04 11:32:07,419 - db.py[line:29] - ERROR: 链接数据库错误或者获取游标对象失败!!!,请求察看数据库的链接配置. - 艺术
2023-11-04 14:28:45,931 - read_excel.py[line:31] - ERROR: 获取工作表失败,请察看工作表名称是否配置正确!!! - 艺术
2023-11-04 14:34:14,909 - read_excel.py[line:31] - ERROR: 获取工作表失败,请察看工作表名称是否配置正确!!! - 艺术
2023-11-04 14:35:52,471 - read_excel.py[line:31] - ERROR: 获取工作表失败,请察看工作表名称是否配置正确!!! - 艺术
2023-11-04 14:36:52,359 - read_ini.py[line:49] - ERROR: 输入table节点下的key,错误,请求察看配置文件~!!! - 艺术
2023-11-04 14:37:35,181 - read_ini.py[line:49] - ERROR: 输入table节点下的key,错误,请求察看配置文件~!!! - 艺术
2023-11-04 14:37:43,745 - read_excel.py[line:31] - ERROR: 获取工作表失败,请察看工作表名称是否配置正确!!! - 艺术
2023-11-04 14:38:28,349 - read_ini.py[line:49] - ERROR: 输入table节点下的key,错误,请求察看配置文件~!!! - 艺术
2023-11-04 14:39:05,358 - read_excel.py[line:31] - ERROR: 获取工作表失败,请察看工作表名称是否配置正确!!! - 艺术
2023-11-04 15:57:49,142 - read_excel.py[line:52] - ERROR: 获取指定单元格数据失败,请察看输入的列号和行号是否正确!! - 艺术
2023-11-04 15:57:59,129 - read_excel.py[line:52] - ERROR: 获取指定单元格数据失败,请察看输入的列号和行号是否正确!! - 艺术
2023-11-04 15:58:22,240 - read_excel.py[line:52] - ERROR: 获取指定单元格数据失败,请察看输入的列号和行号是否正确!! - 艺术
2023-11-04 15:59:06,487 - read_excel.py[line:52] - ERROR: 获取指定单元格数据失败,请察看输入的列号和行号是否正确!! - 艺术
2023-11-04 16:01:32,827 - read_excel.py[line:52] - ERROR: 获取指定单元格数据失败,请察看输入的列号和行号是否正确!! - 艺术
2023-11-04 16:01:53,574 - read_excel.py[line:52] - ERROR: 获取指定单元格数据失败,请察看输入的列号和行号是否正确!! - 艺术
2023-11-04 16:08:02,371 - read_excel.py[line:52] - ERROR: 获取指定单元格数据失败,请察看输入的列号和行号是否正确!! - 艺术
2023-11-06 10:16:43,738 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:17:33,707 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:23:50,923 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:23:51,361 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"} - 艺术
2023-11-06 10:23:51,458 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:23:51,535 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721352666530988032"} - 艺术
2023-11-06 10:29:18,186 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:29:20,411 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:29:22,430 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:29:24,439 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:29:26,458 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:29:28,470 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:29:28,835 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"} - 艺术
2023-11-06 10:29:30,928 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"} - 艺术
2023-11-06 10:29:33,027 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"} - 艺术
2023-11-06 10:29:35,113 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"} - 艺术
2023-11-06 10:29:37,192 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"} - 艺术
2023-11-06 10:29:39,274 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"} - 艺术
2023-11-06 10:29:49,425 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:29:51,528 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:29:53,763 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:29:55,833 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:29:57,901 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:29:59,975 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:30:00,118 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721354212144594944"} - 艺术
2023-11-06 10:30:02,228 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721354221313343488"} - 艺术
2023-11-06 10:30:04,393 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721354230263988224"} - 艺术
2023-11-06 10:30:06,525 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721354239353044992"} - 艺术
2023-11-06 10:30:08,640 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721354248223997952"} - 艺术
2023-11-06 10:30:10,779 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721354257195614208"} - 艺术
2023-11-06 10:34:10,220 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:34:10,742 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"} - 艺术
2023-11-06 10:34:10,842 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:34:10,922 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721355264411582464"} - 艺术
2023-11-06 10:37:23,939 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:37:24,408 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"} - 艺术
2023-11-06 10:37:24,481 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:37:24,555 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721356076546277376"} - 艺术
2023-11-06 10:40:33,534 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:40:35,649 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:40:37,667 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:40:39,678 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:40:41,699 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:40:43,720 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:40:44,070 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,根据输入的demId[不知道]没有找到对应的维度信息!","value":"保存失败"} - 艺术
2023-11-06 10:40:46,141 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,根据输入的demId[不知道]没有找到对应的维度信息!","value":"保存失败"} - 艺术
2023-11-06 10:40:48,210 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,根据输入的demId[不知道]没有找到对应的维度信息!","value":"保存失败"} - 艺术
2023-11-06 10:40:50,291 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,根据输入的demId[不知道]没有找到对应的维度信息!","value":"保存失败"} - 艺术
2023-11-06 10:40:52,359 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,根据输入的demId[不知道]没有找到对应的维度信息!","value":"保存失败"} - 艺术
2023-11-06 10:40:54,417 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,根据输入的demId[不知道]没有找到对应的维度信息!","value":"保存失败"} - 艺术
2023-11-06 10:41:04,554 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:41:06,632 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:41:08,702 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:41:10,763 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:41:12,830 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:41:14,891 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:41:14,951 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721357042939084800"} - 艺术
2023-11-06 10:41:17,071 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721357051826814976"} - 艺术
2023-11-06 10:41:19,179 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721357060672602112"} - 艺术
2023-11-06 10:41:21,290 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721357069551943680"} - 艺术
2023-11-06 10:41:23,401 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721357078401925120"} - 艺术
2023-11-06 10:41:25,509 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721357087235129344"} - 艺术
2023-11-06 10:59:42,342 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 10:59:42,894 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"} - 艺术
2023-11-06 10:59:43,159 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 10:59:43,265 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721361691519762432"} - 艺术
2023-11-06 11:10:43,901 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 11:10:44,323 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"} - 艺术
2023-11-06 11:10:44,412 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 11:10:44,483 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721364464927784960"} - 艺术
2023-11-06 11:13:13,947 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确 - 艺术
2023-11-06 11:13:14,540 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"} - 艺术
2023-11-06 11:13:14,671 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""} - 艺术
2023-11-06 11:13:14,779 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721365095323287552"} - 艺术
This source diff could not be displayed because it is too large. You can view the blob instead.
++ "b/interfaceAutoTest1/report/\346\227\245\345\277\227.log"
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: login.py
# FileName: __init__.py
# Author: xxxxxxx
# Datetime: 2023/11/4 9:40
# Description:
# 命名规范:文件名全小写+下划线,类名大驼峰,方法和变量小写+下划线连接,
# 常量大写,变量和常量用名词,方法用动词
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: login.py
# FileName: request_method.py
# Author: xxxxxxx
# Datetime: 2023/11/4 9:43
# Description:
# 命名规范:文件名全小写+下划线,类名大驼峰,方法和变量小写+下划线连接,
# 常量大写,变量和常量用名词,方法用动词
# ---------------------------------------------------------------------------
import base64
import requests
from interfaceAutoTest1.common import log
from interfaceAutoTest1.common.read_ini import Read_ini
class RequestStep:
def __init__(self):
log_url = Read_ini().get_host('url') + '/auth'
log_data = {'username': 'admin', 'password': base64.b64encode('123456'.encode()).decode()}
self.bpm_session = requests.sessions.Session()
result = self.bpm_session.request(method='post', url=log_url, json=log_data)
print(result.json())
self.bpm_session.headers.update({'Authorization':'Bearer '+result.json()['token']})
print(self.bpm_session.headers)
def request_all(self, method, url, types='json', data=None):
if types == 'json' or types == 'application/json':
return self.bpm_session.request(method=method, url=url, json=data)
elif types == "x-www-form-urlencoded" or types == "application/x-www-form-urlencoded":
return self.bpm_session.request(method=method, url=url, data=data)
elif types == "form-data" or types == "multipart/form-data":
return self.bpm_session.request(method=method, url=url, files=data)
elif types == "query" or types == "params" or types == "param":
return self.bpm_session.request(method=method, url=url, params=data)
elif types == "query|body" or types == "body|query" or types == "json|query" or types == "query|json":
return self.bpm_session.request(method=types, url=types, params=types["query"], json=types["body"])
else:
log.error("传入的媒体类型的值错误,请察看excel中是否填入正确")
raise NameError("传入的媒体类型的值错误,请察看excel中是否填入正确")
if __name__ == '__main__':
log_url = Read_ini().get_host('url') + '/auth'
print(log_url)
request = RequestStep()
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: login.py
# FileName: __init__.py
# Author: xxxxxxx
# Datetime: 2023/11/4 9:43
# Description:
# 命名规范:文件名全小写+下划线,类名大驼峰,方法和变量小写+下划线连接,
# 常量大写,变量和常量用名词,方法用动词
# ---------------------------------------------------------------------------
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: login.py
# FileName: conftest.py
# Author: xxxxxxx
# Datetime: 2023/11/4 11:13
# Description:
# 命名规范:文件名全小写+下划线,类名大驼峰,方法和变量小写+下划线连接,
# 常量大写,变量和常量用名词,方法用动词
# ---------------------------------------------------------------------------
import pytest
from interfaceAutoTest1.common.db import DB
from interfaceAutoTest1.request_method.request_method import RequestStep
@pytest.fixture(scope='session')
def req_fix():
req = RequestStep()
yield req
@pytest.fixture(scope='session')
def db_fix():
db = DB()
yield db
db.close()
[pytest]
;开启日志
;log_cli=true
;设置日志的级别,如果不设置级别的话,可以设置为NOTSET,如果要设置级别,级别可以有debug,info,warning,error,致命
;log_level=NOTSET
;设置日志显示的信息格式
;log_format=%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s
;设置日志中时间显示的格式
;log_date_format=%Y-%m-%d %H:%M:%S
;每个py文件运行的时候追加的命令
;addopts=-vs
;设置日志保存的文件
log_file=./report/log/bpm_接口自动化框架最新运行日志.log
;设置日志保存在文件中的级别
log_file_level=error
;设置日志在文件中的信息格式
log_file_format=%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s
;设置文件日志中时间显示的格式
log_file_date_format=%Y-%m-%d %H:%M:%S
\ No newline at end of file
2023-11-06 10:37:23 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确
2023-11-06 10:37:23 - request_method.py[line:44] - ERROR: 传入的媒体类型的值错误,请察看excel中是否填入正确
2023-11-06 10:37:24 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'code': 'test_org_57', 'demId': '不知道', 'exceedLimitNum': 0, 'grade': '', 'limitNum': 0, 'name': '测试组织', 'nowNum': 0, 'orderNo': 0, 'parentId': '0'},期望数据为:{'state': True, 'message': '添加组织成功!'},服务器返回的数据为:{"state":false,"message":"添加组织失败,组织编码[test_org_57]已存在!","value":"保存失败"}
2023-11-06 10:37:24 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:test_org_57,期望数据为:{'state': True, 'message': '删除组织成功!'},服务器返回的数据为:{"state":true,"message":"部分删除成功,其中编码为【test_org_57】的组织不存在;","value":""}
2023-11-06 10:37:24 - test_run.py[line:44] - ERROR: 断言失败,用例数据为:{'ids': '不知道'},期望数据为:{'state': True, 'message': '删除维度成功!'},服务器返回的数据为:{"state":false,"message":"","logId":"1721356076546277376"}
# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName: login.py
# FileName: test_run.py
# Author: xxxxxxx
# Datetime: 2023/11/4 11:48
# Description:
# 命名规范:文件名全小写+下划线,类名大驼峰,方法和变量小写+下划线连接,
# 常量大写,变量和常量用名词,方法用动词
# ---------------------------------------------------------------------------
#[url, method, mine, case_data, expect_data, sql_type ,sql_data ,updata_key]
import pytest
from interfaceAutoTest1.common.read_excel import Read_excel
from interfaceAutoTest1.common import log
class TestBpm:
@pytest.mark.parametrize('url, method, mine, case_data, expect_data, sql_type, sql_data, update_key', Read_excel().get_data())
def test_bpm(self, req_fix, db_fix, url, method, mine, case_data, expect_data, sql_type, sql_data, update_key):
if sql_type == 'delete':
db_fix.delete_sql(sql_data)
elif sql_type == 'select':
result = db_fix.select_sql(sql_data)
case_data[update_key] = result
elif sql_type == "select|delete" or sql_type == "delete|select":
# 使用DB类对象执行删除的sql语句
db_fix.delete(sql_data.get("delete"))
# 使用DB类对象执行查询的sql语句,并接收查询的结果
select_result = db_fix.select(sql_data.get("select"))
# 将查询结果更新到用例数据中
case_data[update_key] = select_result
# 使用RequestsMethod类对象发送请求
res = req_fix.request_all(method, url, mine, case_data)
# 断言
try:
for key in expect_data:
assert expect_data[key] == res.json().get(key)
except:
log.error("断言失败"+",用例数据为:"+str(case_data)+",期望数据为:"+str(expect_data)+",服务器返回的数据为:"+res.text)
raise AssertionError("断言失败")
if __name__ == '__main__':
pytest.main()
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