博主最近在研究接口API自动化测试,之前设计的通过excel来实现自动化测试的框架实际使用中还是有很多局限性
这次博主的思路是:
1 搭建接口API管理平台 支持数据库方便维护
2 自动化测试平台可直接使用平台整理的接口请求参数
3 以web格式形成可视化的界面展示接口测试数据,包括返回值,测试结果
这次博主首先整理的是sqlalchemy,一开始是安装,博主这边有安装包
根据操作系统下载相应压缩文件,解压后进入文件路径下执行安装命令
# python setup.py install
安装成功后就可以直接使用了,下图是mysql中APIMANAGER库中interface表结构:
最后就是实现代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*- from sqlalchemy import Column, create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
# 导入数据库所有表字段类型
from sqlalchemy.dialects.mysql import \
BIGINT, BINARY, BIT, BLOB, BOOLEAN, CHAR, DATE, \
DATETIME, DECIMAL, DECIMAL, DOUBLE, ENUM, FLOAT, INTEGER, \
LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, NCHAR, \
NUMERIC, NVARCHAR, REAL, SET, SMALLINT, TEXT, TIME, TIMESTAMP, \
TINYBLOB, TINYINT, TINYTEXT, VARBINARY, VARCHAR, YEAR # 创建对象的基类:
Base = declarative_base() # 定义Interface表对象:
class Interface(Base):
# 表的名字:
__tablename__ = 'interface' # 表的结构:
id = Column(VARCHAR(50), primary_key=True)
url = Column(VARCHAR(100))
method = Column(VARCHAR(30))
param = Column(VARCHAR(30))
requestExam = Column(TEXT)
responseParam = Column(TEXT)
errorList = Column(TEXT)
trueExam = Column(TEXT)
falseExam = Column(TEXT)
status = Column(TEXT)
moduleId = Column(VARCHAR(50))
interfaceName = Column(VARCHAR(100))
remark = Column()
errors = Column(TEXT)
updateBy = Column(TEXT)
createTime = Column(TEXT)
version = Column(TEXT)
updateTime = Column(TEXT)
sequence = Column(INTEGER(100)) # 数据库连接信息: 数据库类型://用户名:密码@数据库地址:端口/数据库库名?编码
mysql_db = "mysql://api:api@xxx:3306/APIMANAGER?charset=utf8" # 初始化数据库连接:
engine = create_engine(mysql_db) # 创建DBSession类型:
DBSession = sessionmaker(bind=engine) # 创建session对象:
session = DBSession() # query函数相当于select,filter函数相当于where,one是返回一条结果,all是返回所有结果
API = session.query(Interface).filter(Interface.id == "09bd79df-cdbc-4f81-8cdf-c4763fd8a725").one()
print API.interfaceName # API = session.query(Interface).all()
# for i in range(len(API)):
# print API[i].param # 关闭session对象
session.close()
这里备注下安装模块中遇到的问题解答地址