测试平台系列(50) 编写数据库连接配置功能(1)

简介: 编写数据库连接配置功能(1)

大家好~我是米洛


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


回顾


上一篇我们已经基本结束了对测试报告相关的处理工作,其实博主最近在考虑怎么去优化用例编写/运行相关的地方,因为发现之前写的过于辣鸡了,用例还是不能完全依附于项目,得有自己的生存之道呀!

于是我决定把项目和用例在页面上进行拆分,但是仍然保持树的形式。目前还没有想到很好的UI展示效果,想到的话也得周末花时间去做了,所以我们先做数据库相关的数据构造器工作。


为什么要做这块?

我们知道,在接口测试中,经常要拿数据库的数据进行断言操作或者查询数据,可能有一些同学不会去db里面进行校验,这个争议咱们先不管,但我是支持去db里面校验数据的。

那么操作db,就得有db的一些连接信息。因为本人从未用过Oracle,所以很礼貌地拒绝支持Oracle

选定好常见的关系型数据库: Mysql+Postgresql即可。我们不但有sql,还会支持Redis

本节内容


  • 设计好数据表存放的核心信息
  • 完成数据库配置的增删改查功能

设计数据库配置表


首先给它取个名字: pity_database_info,一目了然可以知道它是数据库配置相关的表。

  • id
  • env
  • sql_type (数据库类型, 0: mysql 1:postgres)
  • name(数据库配置的名称,比如: 订单表)
  • host
  • port
  • username
  • password
  • database
  • create_user
  • update_user
  • created_at
  • updated_at
  • deleted_at
    基本上我们通过host:port/database@username:password就可以连接上咱们的数据库,能连上了,咱们还怕操作不了数据库吗?

1.jpg

最终代码如图,可以看到字段定义一目了然

编写DbConfigDao.py


首先编写查询功能,我们可以根据env环境,name别名,database数据库名3个维度来查询,至于后续需不需要host,待定,要加也很方便。

2.jpg

代码如图所示

注意,不论是我们从Flask切换到了FastApi,还是我们从同步切换到异步,确实都需要一个过程。但大家也不要惊慌,其实对我们来说,异步是一个提速的过程。

重点是掌握async/await的写法,去掉这2个关键字之后,有没有发现异步和同步代码基本一致?所以,我们要克服一下,未来异步必定是Python的趋势。

query是咱们的查询条件,当name存在,就以它为查询条件。简单解释下: if name

在Python里面,如果if后的对象不是bool对象的话,会自动进行转义,包括while也是。

比如大家熟悉的while 1:,之所以能一直循环下去,是因为1被转义为了True,效果等同于while True:,这样判断比较简洁,但存在一些陷阱

接着说这个功能,选择好对象的查询条件了之后,我们就调用session.execute方法,查找出数据,最后返回。

如果遇到异常,我们直接抛出,给router处理。

编写新增/删除/修改功能


3.jpg

新增/编辑

4.jpg

删除

其实要注意的点是,我们使用了async with session.begin(),并在代码块里面继续操作。

这里博主还没有完全去研究,只是知道需要这么使用,大胆揣测一下是因为with...begin方法结束后会自动提交数据库的变更,但不确定是不是这样,有兴趣的朋友可以去研究下。

编写Router


5.jpg

router层比较简单,基本就是调用dao层方法即可,只需要包装下try catch

这边我封装了专门的Response,这样以后就不需要一直手写dict(code=0,msg="success")这样的返回了。

6.jpg

具体实现

测试一下


7.jpg

查询/新增/编辑/删除都没问题

后端这块内容并没有结束,目前我们只是能够把数据库配置管理起来,还达不到使用的效果。

下一篇将介绍如何在线执行SQL并返回,并用于case数据构造器之中。篇幅可能会比较长,而我也需要做一部分前端的内容。

8.jpg

对应的数据库配置页面会在这儿,只有super idol有权限


今天的内容到这儿就结束啦,感谢大家的观看。如果大家感兴趣的话,可以和我一起敲起来。我也会尽快给一个可用的版本




目录
打赏
0
0
0
0
6
分享
相关文章
使用benchmarksql测试数据库处理能力
传统的OLTP业务,应用系统使用 java 开发,并且不建议使用存储过程,使用 benchmarksql 压测数据库最公平,既可以测试数据库性能,也可以测试JDBC驱动
147 88
基于ssm的培训学校教学管理平台,附源码+数据库+论文
金旗帜文化培训学校网站项目包含管理员、教师和用户三种角色,各角色功能通过用例图展示。技术框架采用Java语言,B/S架构,前端为Vue+HTML+CSS+LayUI,后端为SSM,数据库为MySQL,运行环境为JDK8+Tomcat8.5。项目含12张数据库表,非前后端分离,支持演示视频与截图查看。购买后提供免费安装调试服务,确保顺利运行。
48 14
基于ssm的培训学校教学管理平台,附源码+数据库+论文
该项目为一培训学校教学管理平台,涵盖管理员、教师和学生三大功能模块。管理员可进行系统全面管理,包括学生、教师、课程等信息的增删改查;教师能管理个人中心、课程及选课信息;学生则可管理个人中心及选课信息。技术框架采用Java编程语言,基于B/S架构,前端使用Vue+HTML+JavaScript+CSS+LayUI,后端采用SSM框架,数据库为MySQL。项目运行环境为JDK8+MySQL5.7+Tomcat8.5,支持远程调试安装。演示视频与详细文档截图均提供下载链接。
基于ssm的考研图书电子商务平台,附源码+数据库+论文
考研图书电子商务平台是一个基于Java的B/S架构系统,适用于Windows环境。该平台设有管理员和用户权限,管理员可管理商品、用户、留言板及订单,用户可管理收货地址、订单、收藏及购买商品。技术框架包括前端Vue+HTML+JavaScript+CSS+LayUI,后端SSM,数据库为MySQL。项目包含17个数据库表,支持Maven构建。提供演示视频和详细文档,支持免费远程调试安装,确保顺利运行。
42 13
基于ssm的考研图书电子商务平台,附源码+数据库+论文
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
272 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
基于SpringBoot+Vue实现的冬奥会科普平台设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
3月前
|
陪玩平台中支付与结算模块的代码,陪玩系统数据库设计与代码实现
第三方支付平台对接涉及与微信支付、支付宝等API接口的调用,确保用户支付流程顺畅。结算模块根据业务规则计算陪玩师收益,强调安全性、异常处理、可扩展性和日志记录。数据库设计涵盖用户、陪玩者、订单等信息的存储管理,确保系统稳定运行。
110 12
os-copilot使用之全面配置与使用测试
作为一名个人开发者,我主要从事云服务器架设工作。近期,我成功使用了OS Copilot的 `-t -f |` 功能,解决了执行语句、连续提问及快速理解文件的问题。我发现这些功能非常实用,特别是在使用Workbench时能快速调用AI助手。此外,建议将AI功能与xShell工具联动,进一步提升效率。文中详细记录了购买服务器、远程连接、安装配置OS Copilot以及具体命令测试的过程,展示了如何通过快捷键和命令行操作实现高效开发。
180 67

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等