前言

软件测试中,当涉及到对特定规则的验证时,常常需要我们在数据库中构造合适的数据。以航空公司为例,航段数与会员等级之间存在着明确的关联规则,测试这一规则需要一定的航段数,我们就需要去数据库里造航段记录的会员数据。

DataGrip

DataGrip 是一款功能强大的数据库管理工具,支持多种主流数据库,包括但不限于 MySQL、Oracle、PostgreSQL、SQL Server、SQLite 等,且它能够很好地适应各种数据库的特性和语法差异。例如,在处理 MySQL 的存储过程和 Oracle 的包时,都能根据各自数据库的规范提供准确的代码补全、语法检查等功能。
DataGrip下载地址👉DataGrip官网

连接Oracle数据库

连接

问开发或者之前测试过此规则的同事要到数据库地址
在这里插入图片描述
上面的是URL,下面的是账号和密码
在这里插入图片描述
点击左上角的,点击Data Source,接下来得看使用的数据库类型,这里以Oracle为例,选择OracleOracel,如果你知道数据库版本,选择对应的版本选项(如 “Oracle for 9.X 10.X 和 11.1”);如果不确定版本,选择 “Oracle” 让 DataGrip 自行尝试连接。
在这里插入图片描述

将URL地址填入URL中,上面的一些信息如Host都会自动生成,再填入账号和密码即可,点击Test Connection
在这里插入图片描述
出现此弹框表示连接成功

数据库构成

连接到数据库后我们发现有两个架构(schema)和一个数据库服务器上的对象。Schema 是用于组织数据库对象(如表、视图、存储过程等)的逻辑容器。用户可以根据业务需求或项目来创建不同的 schema。 打开`HOFFDEV`发现有6个文件夹,它们代表的含义分别是
  • DBLinks:数据库链接是一种允许本地数据库用户访问远程数据库对象的机制。它在本地数据库和远程数据库之间建立连接,使得用户能够如同在本地数据库操作一样去查询、修改远程数据库中的数据。
  • Tables:表是数据库中最基本的数据存储结构。它由行和列组成,每一行代表一条记录,每一列代表记录中的一个字段。表用于存储和组织数据。
  • Views:视图是基于一个或多个表(或其他视图)的查询结果而定义的虚拟表。它本身不存储数据,而是在查询时动态生成数据。
  • Routines:例程通常包括存储过程和函数。存储过程是一组预编译的 SQL 语句,可以被反复调用执行,它可以包含逻辑控制语句(如条件判断、循环等)。函数则类似于存储过程,但它通常返回一个值。
  • Packages:包是一种将相关的存储过程、函数、变量、游标等组合在一起的机制。它提供了一种模块化的方式来组织和管理数据库中的程序单元。
  • Sequences:序列是用于生成唯一数字值的数据库对象。它通常用于为主键字段提供自动递增的数值。

操作数据库造测试数据

先是创建console,快捷键Crtl+ENTER,接着是了解你需要操作的数据它在哪张表里,可以问开发或者问测试过的同事。
下面以我自己的实际操作,过程可供参考:
从福卡升级到银卡会员需要4段航段数据,首先我先搜索测试环境数据库中的航段数据表:

SELECT *
FROM TBL_FLIGHT_ACTIVITY;

在这里插入图片描述
可以查询到所有的航段数据,接下来我们有两种操作,一是自己插数据,二是直接在测试数据库里修改,将已有的航段数据修改到自己的账号下。这里我选择了第二种,反正是测试数据库(预发布和生产的他也不会给我🐶)。
需要修改的数据有三个一是ID,二是MEMBER_ID,三是FLIGHT_DATA,将IDMEMBER_ID修改成自己的测试账号的数据,再根据升级规则修改日期即可,可直接在表里修改也可以用数据库语句修改。
PS:事物要提交,不然会锁表❗❗❗❗submitcommit都要执行
在这里插入图片描述
修改完点击图中框框中的即可。
修改完之后我们可以搜索下是否添加成功
在这里插入图片描述
可以看到全部添加成功了。

在我实际操作时遇到了一个问题,就是添加完数据后APP端没有同步,经过排查得出航段数据是存在Redis缓存中的,我们需要删除缓存或者刷新一下缓存即可同步到APP端,有关Redis的操作可以移步到我之前写的一篇博客🔜Redis入门,解决手机短信验证码发送上限问题

总结

文章主要讲述软件测试中数据库数据构造相关内容。介绍数据库管理工具DataGrip的下载、破解方法,然后说明了连接Oracle数据库的步骤,还阐述了数据库构成,最后详细展示了操作数据库造测试数据的过程。

PS:今天是我大汉堡来公司的第112天了。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐