前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如果有一千张表,如何测试?

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

作者头像
苦叶子
发布2018-12-27 14:07:27
3130
发布2018-12-27 14:07:27
举报
文章被收录于专栏:开源优测开源优测开源优测

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

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

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

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

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

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

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

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

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

技术上,笔者在实践中基于Python进行

需要以下知识:

Python编程

对应数据库的驱动包,例如mysql可以选择pymysql库

SQL,需要掌握如何利用sql查看表结构、属性、key、索引等等

下面我们来个简单的实例,用来查看下mysql中默认的mysql库中是user表的索引情况

我们先用sql看下user表中的索引情况,如图

下面我们简单的用python代码进行验证

# -*- coding: utf-8 -*-
__author__ = "苦叶子"
"""
    数据库模型自动化测试demo
"""
import pymysql
import sys

# 目标索引字段
TAR_INDEX = ["Host", "User"]


def test_user_index(cur):
    # 使用mysql库
    cur.execute("USE mysql")

    # 查看user表的索引
    cur.execute("SHOW INDEX FROM user")

    indexs = cur.fetchall()

    for index in indexs:
        # 断言目标索引存在
        assert index[4] in TAR_INDEX
        print("in table [%s] assert index (%s) succeed" % (index[0], 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)

运行结果如下图:

本文用个简单的示例,作为引子,对于大规模的自动化测试验证,其代码肯定需要进行比较精心的设计,大家可以自己尝试下自己的想法和思路

  1. 可以尝试去提炼出一个通用的测试框架
  2. 可以尝试定制型的测试框架
  3. 参数化
  4. 全部基于Python代码,不用任何其他类型的配置文件
  5. 等等其他想法
  6. 理论上应该可以做到90%以上的自动化覆盖验证
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档