python mysqldb 清除缓存_python SQLAlchemy 缓存问题

本文介绍了在使用Python的SQLAlchemy库操作数据库时遇到的缓存问题。当自动化测试用例执行时,发现从MySQL获取的数据不正确。经过排查,确定问题在于SQLAlchemy的缓存机制。通过强制刷新session解决了问题,代码中添加了`session.expire_all()`来清除缓存。同时,文章还讨论了Python的.pyc文件和编译语言与解释语言的区别。
摘要由CSDN通过智能技术生成

python SQLAlchemy 缓存问题

背景

公司自动化框架采用的python的 SQLAlchemy 进行数据库的操作,在编写一条自动化用例的时候发现,从mysql从获取的数据不对,有个字段一直拿到错误的值(None)

自动化用例设计场景如下:

数据准备阶段,自动化代码删除mysql中的数据;

数据准备阶段,自动化代码往mysql中insert一条数据;

业务代码处理,update刚刚新增的数据;

断言阶段,自动化代码获取数据进行断言;

过程

过程是坎坷的,而且一开始就跑错了方向

明确现象

从mysql的角度来看,数据是update成功了的,符合预期了的,只是自动化代码去拿数据拿错了的

问题就是为什么自动化代码拿不到那个字段的数据

推测

简化重现流程,在sql_template层写了一个main方式,直接通过sqlalchemy的方式去获取数据,如下:

if __name__ == '__main__':

import pymysql, assertpy.assertpy

pymysql.install_as_MySQLdb()

import pkgutil

from features import model

for importer_sql, modname, ispkg_sql in pkgutil.walk_packages(path=model.__path__,

prefix=mode

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值