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

简介: 用Sqlalchemy填下断言的坑

大家好~我是米洛


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


回顾


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

之前埋的坑


之前我们在用例详情页面,只是让用户可以添加断言,但是没有支持编辑和删除的功能,甚至连展示的页面都冇,那今天我们就来好好填坑:

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

老规矩


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

16.PNG

提供了一个小小的页面

其实就是在断言tab下面写了个curd的小页面

后端的改动


之所以把这一节单独拉出来讲,是因为以往我们都是新增/编辑数据以后,去请求一次list接口,等于是请求了2次。

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

其实之所以这么做,是因为我这个页面很大,里面有case的很多信息,涉及到多个表,局部数据的刷新我又不想单独包装一个接口。

让我们看看怎么做吧!

了解SqlAlchemy的机制


SqlAchemy是一款大家比较熟悉的orm库,在我的使用过程中发现一个特点:

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

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

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


session.expunge(data)

编写新增断言的接口


17.jpg

新增的接口和之前的区别就在这了

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

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

编写编辑断言的接口


18.jpg

和新增类似

编辑和新增类似,但因为我们不需要获取主键id,因为咱们本来就有,所以只需要expunge即可。

编写删除断言的接口


19.jpg

删除也是一种update

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

20.jpg

这样断言的编辑/删除就完成了

新增执行用例的功能


其实很简单,调用一下之前的接口即可。看看图吧~

21.PNG

执行下看看效果


至此,一个case的百分之80的执行流程就已经完毕了。接下来还是有很多事情需要做的:

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

......


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

  • 数据工厂
  • 精准测试等等
    不过话说回来,这个平台希望的就是真正从0到1做成一个完全体的平台,慢慢填坑吧~




相关文章
|
6月前
|
关系型数据库 测试技术 数据库
使用Docker搭建测试用例管理平台TestLink:简易指南
使用Docker搭建TestLink测试管理软件的步骤如下:首先,拉取`bitnami/mariadb`和`bitnami/testlink-archived`镜像。然后,启动MariaDB容器,创建数据库。接着,启动TestLink容器并连接到MariaDB。检查容器状态确保它们已启动。最后,访问`localhost:8099`以使用TestLink,默认用户名为`user`,密码为`bitnami`。这样,你就能在本地便捷地进行测试管理了。
|
3月前
|
Kubernetes 测试技术 Perl
混沌测试平台 Chaos Mesh
混沌测试平台 Chaos Mesh
110 1
|
4月前
|
传感器 数据采集 监控
LabVIEW电池管理系统测试平台
LabVIEW电池管理系统测试平台
62 4
|
11天前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
47 1
|
29天前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
46 2
|
11天前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
33 0
|
3月前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
116 1
|
3月前
|
运维 Kubernetes 监控
|
5月前
|
人工智能 分布式计算 DataWorks
首批!阿里云 MaxCompute 完成中国信通院数据智能平台专项测试
2024年5月31日,在中国信通院组织的首批数据智能平台专项测试中,阿里云数据智能平台解决方案(MaxCompute、DataWorks、PAI)顺利完成测试。
306 5
首批!阿里云 MaxCompute 完成中国信通院数据智能平台专项测试
|
5月前
|
消息中间件 Kubernetes Kafka
AutoMQ 自动化持续测试平台技术内幕
Marathon 是一个针对流系统 AutoMQ 的自动化持续测试平台,旨在在模拟生产环境和各种故障场景中验证 SLA 的可靠性。设计原则包括易拓展、可观测和低成本。平台采用分布式架构,Controller 负责资源管理和任务编排,动态调整 Worker 数量和配置,而 Worker 是无状态的,用于生成负载和上报数据。系统基于 K8S,利用服务发现、事件总线和 Spot 实例降低成本并提高弹性。测试场景以代码形式描述,支持不同流量模型和断言,提供丰富的可观测性和告警功能。未来,Marathon 有望泛化为适用于各种分布式系统的测试平台。
58 0
AutoMQ 自动化持续测试平台技术内幕