测试平台系列(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做成一个完全体的平台
,慢慢填坑吧~
相关文章推荐
- Google C++单元测试框架(Gtest)系列教程之二——断言、函数测试
- 【腾讯TMQ】【UTP自动化测试平台系列之二】任务管理设计
- 【腾讯TMQ】【UTP自动化测试平台系列之一】架构介绍与优化
- 用ROS来做无人测试平台系列之ROS学习-3-差速控制
- 用ROS来做无人测试平台系列之国外的一些RACECAR
- Google C++单元测试框架(Gtest)系列教程之二——断言、函数测试
- ambari 搭建hadoop大数据平台系列6-验证测试
- Google C++单元测试框架(Gtest)系列教程之二——断言、函数测试
- 接口测试从零开始系列4_junit断言介绍
- Selenium系列之--测试框架断言【转】
- 用ROS来做无人测试平台系列之ROS学习-1-基础知识
- 接口测试从零开始系列4_junit断言介绍2
- Google C++测试框架系列高级篇:第一章 更多关于断言的知识
- 接口测试从零开始系列4_junit断言介绍3
- Caffe学习系列(12):训练和测试自己的图片--linux平台
- SOAPUI系列11- 测试步骤中设置断言
- 微信公众平台开发学习系列(一):公众平台测试号申请与自定义菜单创建
- 【腾讯TMQ】【UTP自动化测试平台系列之三】用例管理
- 用ROS来做无人测试平台系列之ROS学习-2-tf
- NodeJS学习系列课程笔记(NodeJs Assert断言测试)