您的位置:首页 > 数据库

测试平台系列(64) 用Sqlalchemy填下断言的坑

2021-09-22 13:24 543 查看

大家好~我是

米洛


这是一个完整的
接口测试平台系列教程
,希望能和大家一起学习,从0到1打造一个开源平台。

欢迎关注我的公众号
测试开发坑货
,获取最新文章教程!

回顾

上一节我们讲了

软删除
,一个看似无关紧要却又很严肃的问题。如今我们来填一下
之前的坑

之前埋的坑

之前我们在用例详情页面,只是让用户可以

添加断言
,但是没有支持编辑和删除的功能,甚至连展示的页面
都冇
,那今天我们就来
好好填坑
:

完成这块的编辑和删除功能。

老规矩

做完之前,看下当前的效果图:

其实就是在

断言
tab下面写了个curd的
小页面

后端的改动

之所以把这一节单独拉出来讲,是因为以往我们都是

新增/编辑数据
以后,去请求一次list接口,等于是请求了2次。

这次我们换个方向,请求后直接拿到最新的那条数据,然后整合到现有的table之中。

其实之所以这么做,是因为我这个页面很大,里面有case的很多信息,涉及到多个表,

局部数据
的刷新我又不想单独包装一个接口。

让我们看看怎么做吧!

了解SqlAlchemy的机制

SqlAchemy是一款大家比较熟悉的

orm
库,在我的使用过程中发现一个特点:

比如我新建了一个

model
,使用session.add更新到db里面,如果是同步session则还需要commit操作。

但我们如今的需求是,insert到数据库之后拿到最新的数据。其实sqlalchemy会默认把之前插入过的数据销毁掉,也可能不是销毁,反正就是session结束了之后,数据将

不复存在

所以我们百度查了一下,有这样一个方法,可以保留原先的数据:

session.expunge(data)

编写新增断言的接口

首先用session.flush()等待数据更新,refresh可以帮助我们拿到insert之后的id。

最后我们用expunge方法,保留这个对象,再返回即可。

编写编辑断言的接口

编辑和新增类似,但因为我们不需要

获取主键id
,因为咱们本来就有,所以只需要expunge即可。

编写删除断言的接口

因为软删除的缘故,我们实际上执行的也是

update
操作。

新增执行用例的功能

其实很简单,调用一下之前的

接口
即可。看看图吧~

至此,一个case的百分之80的执行流程就已经完毕了。接下来还是有

很多事情
需要做的:

  • 定时任务执行case
  • 用例变量/全局变量目前应该还没应用到断言之中
  • 断言还不支持JSON对比等等
  • 用例评分系统
  • 用户操作记录
  • 工作台未完成
  • 用户资料修改
  • 用户管理功能
  • 七牛云/阿里云oss接入
  • 其他前置条件类型
  • 后置条件

......

就以上已经有很多内容了,更别说未来的:

  • 数据工厂

  • 精准测试等等

    不过话说回来,这个平台希望的就是

    真正从0到1做成一个完全体的平台
    ,慢慢填坑吧~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: