本人测试人员,在做数据的验证的时候,反复调用pymysql,编写大量的sql语句,特别浪费时间,并且有时候业务比较复杂的时候,一句sql往往不能解决问题(当然如果上纲上线,所有业务逻辑都是可以用一句sql解决的,但那是建立在你的sql基础与时间成本上的)。所以我就产生了这个想法,是否可以借用ORM来实现数据的查询?当然我这个想法可能还不成熟,但不管如何,ORM还是我们测试人员必须会的一个知识点,所以就开始动手
1.SQLAlchemy
该框架偏向于底层,并且网上的资料也少,所以查阅了一些资料后就选择放弃了
2.Flask-SQLAlchemy
思路:编写一个脚本,可以实现测试数据库自动生成models
import os
from config.basic_config import MYSQL_ENVIRONMENT, PROJECT_PATH
from config.mysql_config import set_mysql_config
from properties.common_var import BASIC
'''
针对已有数据库,创建models脚本,只需要执行一次生成model即可
'''
# 数据库服务器:basic/hive
db_service = BASIC
# 数据库的库名——暂定一个库一个model,如想更改为一个表一个model,自行优化
db = 'db_bd'
db_config = set_mysql_config(MYSQL_ENVIRONMENT, db_service)
instructions = 'sqlacodegen mysql://' + db_config['user'] + ':' + db_config['passwd'] + '@' + db_config['host'] + ':' + str(db_config['port']) + '/' + db + ' --flask > ' + PROJECT_PATH + 'mappers/' + db + '.py'
print(f'执行的创建model指令如下:\n{instructions}')
ret = os.popen(instructions)
print(ret.read())
脚本中包含很多我自己环境配置量,自行更改即可