Python数据库测试实战指南
开源优测
共 1564字,需浏览 4分钟
· 2022-05-26
下方查看历史精选文章
大数据测试过程、策略及挑战
首先我们看一下什么是数据库测试
数据库测试是检查被测数据库的模式、表、触发器等。
它可能涉及创建复杂的查询来加载/压力测试数据库并检查其响应性。
它检查数据的完整性和一致性。
我们在细化成具体的就是,我们需要验证表结构、字段、长度、主键、索引、unique等等属性。
如何做呢?
可能你是直接通过命令行这样验证
也可能你是通过工具这样验证
不管哪种,似乎达到目的就行,那好,我们通过Python写代码验证试试。
毕竟写代码显得比较有意思点!!!
先看下技术准备,需要以下东西
1. Python,笔者用Python3
2. sqlalchemy库(这是什么?你应该要知道的喲)
3. pymysql库(本文以mysql为例,所以选择该mysql驱动库)
4 unittest
IDE,笔者用PyCharm Community版本,最新的嗷嗷嗷~~
以验证mysql默认的mysql数据库中的user表为例,直接上代码实例了
以下代码示例仅验证以下几个目标:
- 表名
- 字段名
- 主键
其他的验证自行研究学习,或是加微信群里讨论即可。
# -*- coding: utf-8 -*-
__author__ = "苦叶子"
import unittest
from sqlalchemy import create_engine
from sqlalchemy.engine import reflection
class TestMySQL(unittest.TestCase):
def setUp(self):
# 创建连接
self.engine = create_engine("mysql+pymysql://root:12345678@127.0.0.1:3306/mysql")
# 创建inspector对象
self.insp = reflection.Inspector.from_engine(self.engine)
def test_table_name(self):
# 判断user表是否在mysql这个实例库中
self.assertIn("user", self.insp.get_table_names())
def test_column(self):
# user表中是否有User字段
User = None
columns = self.insp.get_columns("user")
for col in columns:
if "User" == col["name"]:
User = col["name"]
self.assertIsNotNone(User)
def test_keyprimary(self):
# 验证user表中User字段是否为主键
k = self.insp.get_pk_constraint("user")
self.assertIn("User", k["constrained_columns"])
if __name__ == "__main__":
unittest.main()
保存上述代码在db_test.py中,运行下看结果如下
评论
金融研究 | 使用Python测量关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
金融研究(更新) | 使用Python构建关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
谷歌员工爆料 Python 基础团队原地解散
转自 | 机器之心编辑 | 蛋酱什么?谷歌解雇了整个 Python 基础团队?「当与你直接共事的每个人,包括你的主管,都被裁员 —— 哦,是职位被削减,而你被要求安排他们的替代者入职,这些人被告知在不同的国家担任同样的职位,但他们并不为此感到高兴,这是很艰难的一天。」发布这一动态的 Tho
机器学习算法与Python实战
0
测试新人,如何快速上手一个陌生的系统!
大家好,我是狂师!作为刚入行不久的测试新人,面对一个陌生的系统时,可能会感到有些手足无措。面对一个全新的系统系统,如何快速上手并展开有效的测试工作是一个重要的挑战。本文将探讨测试新人如何通过一系列步骤和策略,快速熟悉并掌握新系统的测试要点,从而提高测试效率和质量。本文旨在为测试新手提供一份指导,帮助
测试开发技术
0
5000w+ 的大表如何拆?亿级别大表拆分实战复盘
前言笔者是在两年前接手公司的财务系统的开发和维护工作。在系统移交的初期,笔者和团队就发现,系统内有一张5000W+的大表。跟踪代码发现,该表是用于存储资金流水的表格,关联着众多功能点,同时也有众多的下游系统在使用这张表的数据。进一步的观察发现,这张表还在以每月600W+的数据持续增长,也就是说,不超
码农编程进阶笔记
0
谷歌员工爆料Python基础团队原地解散
机器之心报道编辑:蛋酱什么?谷歌解雇了整个 Python 基础团队?「当与你直接共事的每个人,包括你的主管,都被裁员 —— 哦,是职位被削减,而你被要求安排他们的替代者入职,这些人被告知在不同的国家担任同样的职位,但他们并不为此感到高兴,这是很艰难的一天。」发布这一动态的 Thomas Wouter
机器学习初学者
0
Python加速运行技巧
Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足。但是,有很多时候,Python 的效率并没有想象中的那么夸张。本文对一些 Python 代码加速运行的技巧进行整理。 0. 代码优化原则 本文会介绍不少的 Python 代码加速运行的技巧。在深入代码优化细
机器学习算法与Python实战
0
APP 安全测试项总结
一、安装包测试 1.1、关于反编译 目的是为了保护公司的知识产权和安全方面的考虑等,一些程序开发人员会在源码中硬编码一些敏感信息,如密码。而且若程序内部一些设计欠佳的逻辑,也可能隐含漏洞,一旦源码泄漏,安全隐患巨大。 为了避免这些问题,除了代码审核外,通常开发的做法是对代码进行混淆,混淆后源代
测试开发技术
0