在我们日常的测试过程中,大部分的测试人员几乎不会去关注数据库表的结构、字段的属性、主外键关系等测试
在整体的数据级测试中,存储结构的基本属性的验证是非常有必要的
一、是确保存储结构定义与目标需求一致
二、是在从存储层消除肯能的性能瓶颈
三、是验证存储存的逻辑关系
尤其是新发起的项目或涉及存储层迁移项目,数据级存储层的验证显得尤为重要,
而这个验证应当把手工验证与技术验证相结合,形成自动化测试解决方案
在存储层足够复杂时,自动化测试验证显得非常的必要
我以为这个解决方案应该由有丰富测试经验的测试人员来解决
技术上,笔者在实践中基于Python进行
需要以下知识:
Python编程
对应数据库的驱动包,例如mysql可以选择pymysql库
SQL,需要掌握如何利用sql查看表结构、属性、key、索引等等
下面我们来个简单的实例,用来查看下mysql中默认的mysql库中是user表的索引情况
我们先用sql看下user表中的索引情况,如图
下面我们简单的用python代码进行验证
# -*- coding: utf-8 -*-
__author__ ="苦叶子"
"""
数据库模型自动化测试demo
"""
importpymysql
importsys
# 目标索引字段
TAR_INDEX = ["Host","User"]
deftest_user_index(cur):
# 使用mysql库
cur.execute("USE mysql")
# 查看user表的索引
cur.execute("SHOW INDEX FROM user")
indexs = cur.fetchall()
forindexinindexs:
# 断言目标索引存在
assertindex[4]inTAR_INDEX
print("in table [%s] assert index (%s) succeed"% (index[],index[4]))
if__name__ =="__main__":
conn = pymysql.connect(host="127.0.0.1",user="root",password="12345678",port=3306)
cur = conn.cursor()
test_user_index(cur)
运行结果如下图:
本文用个简单的示例,作为引子,对于大规模的自动化测试验证,其代码肯定需要进行比较精心的设计,大家可以自己尝试下自己的想法和思路
可以尝试去提炼出一个通用的测试框架
可以尝试定制型的测试框架
参数化
全部基于Python代码,不用任何其他类型的配置文件
等等其他想法
理论上应该可以做到90%以上的自动化覆盖验证
欢迎加入下面的圈子一起探讨、交流
扫一扫知识星球:66¥/年
代码托管地址:https://github.com/small99/DevAuto/tree/master/selenium_python/
领取专属 10元无门槛券
私享最新 技术干货