如果有一千张表,如何测试?

在我们日常的测试过程中,大部分的测试人员几乎不会去关注数据库表的结构、字段的属性、主外键关系等测试

在整体的数据级测试中,存储结构的基本属性的验证是非常有必要的

一、是确保存储结构定义与目标需求一致

二、是在从存储层消除肯能的性能瓶颈

三、是验证存储存的逻辑关系

尤其是新发起的项目或涉及存储层迁移项目,数据级存储层的验证显得尤为重要,

而这个验证应当把手工验证与技术验证相结合,形成自动化测试解决方案

在存储层足够复杂时,自动化测试验证显得非常的必要

我以为这个解决方案应该由有丰富测试经验的测试人员来解决

技术上,笔者在实践中基于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/

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181213A066SY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券