测试平台系列(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有权限


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




相关文章
|
4天前
|
资源调度 关系型数据库 MySQL
【Flink on YARN + CDC 3.0】神操作!看完这篇教程,你也能成为数据流处理高手!从零开始,一步步教会你在Flink on YARN模式下如何配置Debezium CDC 3.0,让你的数据库变更数据瞬间飞起来!
【8月更文挑战第15天】随着Apache Flink的普及,企业广泛采用Flink on YARN部署流处理应用,高效利用集群资源。变更数据捕获(CDC)工具在现代数据栈中至关重要,能实时捕捉数据库变化并转发给下游系统处理。本文以Flink on YARN为例,介绍如何在Debezium CDC 3.0中配置MySQL连接器,实现数据流处理。首先确保YARN上已部署Flink集群,接着安装Debezium MySQL连接器并配置Kafka Connect。最后,创建Flink任务消费变更事件并提交任务到Flink集群。通过这些步骤,可以构建出从数据库变更到实时处理的无缝数据管道。
15 2
|
6天前
|
运维 Kubernetes 监控
|
10天前
|
存储 关系型数据库 MySQL
"Linux环境下MySQL数据库名及表名大小写敏感性设置详解:从配置到影响,确保数据库操作的准确与高效"
【8月更文挑战第9天】在Linux环境中,MySQL数据库名及表名的大小写敏感性是一项重要配置。默认情况下,MySQL在Linux上区分大小写,但这可通过配置文件 `/etc/my.cnf` 中的 `lower_case_table_names` 参数调整。该参数设为0时,名称存储时保持原样,查询时不区分大小写;设为1则全部转换为小写。通过编辑配置文件并重启MySQL服务,可根据需求灵活控制名称的大小写敏感性,确保数据一致性和应用兼容性。
26 3
|
3天前
|
安全 Nacos 数据库
【技术安全大揭秘】Nacos暴露公网后被非法访问?!6大安全加固秘籍,手把手教你如何保护数据库免遭恶意篡改,打造坚不可摧的微服务注册与配置中心!从限制公网访问到启用访问控制,全方位解析如何构建安全防护体系,让您从此告别数据安全风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其公网暴露可能引发数据库被非法访问甚至篡改的安全隐患。本文剖析此问题并提供解决方案,包括限制公网访问、启用HTTPS、加强数据库安全、配置访问控制及监控等,帮助开发者确保服务安全稳定运行。
11 0
|
5天前
|
SQL 关系型数据库 MySQL
MySql⭐一、配置MySql数据库,并创建一个表单
MySql⭐一、配置MySql数据库,并创建一个表单
|
10天前
|
安全 关系型数据库 MySQL
"深度解析:MySQL密码修改与远程登录配置全攻略,保障数据库安全与灵活访问"
【8月更文挑战第9天】MySQL是广受青睐的开源关系型数据库系统,其安全性和易用性对DBA和开发者至关重要。本文通过实例解析MySQL中用户密码更新及远程登录配置,确保数据库安全访问与高效管理。首先介绍如何分步修改密码,包括登录MySQL、选择数据库、使用`ALTER USER`命令更新密码,并刷新权限。接着,指导如何配置远程访问,涉及调整MySQL监听地址、授权用户远程登录、检查网络设置及测试远程连接。遵循这些步骤,可强化数据库安全性并实现灵活管理。
45 0
|
1月前
|
JSON JavaScript 测试技术
Postman接口测试工具详解
Postman接口测试工具详解
66 1
|
22天前
|
存储
Postman 接口测试配置 Pre-request Script
Postman 接口测试配置 Pre-request Script
65 5
Postman 接口测试配置 Pre-request Script
|
11天前
|
SQL 安全 测试技术
[go 面试] 接口测试的方法与技巧
[go 面试] 接口测试的方法与技巧
|
1月前
|
XML JSON 测试技术
Postman接口测试工具详解
📚 Postman全攻略:API测试神器!📚 发送HTTP请求,管理集合,写测试脚本,集成CI/CD。从安装配置到环境变量、断言、数据驱动测试,一步步教你如何高效测试RESTful API。实战案例包含GET、POST、PUT、DELETE请求。用Newman在命令行跑集合,自动化测试不发愁!👉 [洛秋小站](https://www.luoqiu.site/) 学更多!🚀
60 1

热门文章

最新文章