作者:张静文

爱可生上海研发中心成员,测试工程师,负责 DMP 以及 DTLE 自动化测试。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

任务:

测试开源产品 dtle(https://github.com/actiontech...),对 mysql 字符类型,表结构的支持性。

测试需求如下:

1. 测试 dtle 对 mysql 所有的字符类型支持性

2. 测试 dtle 对表结构的支持性

3. 等.......

测试步骤大致为:设计表结构,数据类型。

使用 dtle 迁移表/数据。

对比使用 dtle 迁移的源数据库和目标数据库的数据、表结构是否有差异。

起初,我开启了 2 个窗口一条条的对比,但是当我比对到第 100 条数据的时候,我发现眼花了,似乎有些数据“好像不一样”。我还有好几万条数据要这么对比呢,而且每次发新版本,我都要这么来一次......这不是人能完成的艰难任务!

所以我寻找是不是有什么工具能帮我做这部分工作,搜索后发现一部分私人写的小工具(具体的就不列举了),但是经过使用后,发现很多工具自身就带有一部分 BUG,如果我用这些工具做数据对比肯定会遗漏 BUG。

经过几天的搜索试用,发现 mysql 官方提供了一个非常不错工具mysqldiff/mysqldbcompare,所以想着分享给大家。

以下就直接说说使用方法:

(系统:Ubuntu 18.04)

1. 软件下载,地址如下:

2. 解压到当前目录 mysql-utilities-1.6.5 下:tar -zxvf mysql-utilities-1.6.5.tar.gz

3. cd 到 mysql-utilities-1.6.5,执行安装:apt install mysql-utilities

如下图:

4. 演示 mysql-utilities 中的 mysqldiff 使用和效果:

首先我们可以通 过 mysqldiff --help 命令查看用法:

接下来我要测试通过 DTLE 数据迁移的 2 个数据库,然后验证:

1. 是否有表结构改变

2. DTLE 是否将源数据库的所有数据全部迁移到目标数据库

分别使用如下 2 条命令:mysqldiff--server1=test:test@10.20.30.3:3306--server2=test1:test1@10.20.30.4:3307 testdb:testdb

执行效果如下:

结论:通过比对,发现源数据库中有 2 张表并不在目标数据库中,而且很详细的列出了迁移失败的表名。mysqldiff--server1=test:test@10.20.30.3:3306--server2=test1:test1@10.20.30.4:3307 testdb.char_columns:testdb.char_columns

执行效果如下:

结论:通过比对,发现有源数据库中 char_columns 表的建表语句有差异。

5. 演示 mysql-utilities 中的 mysqldbcompare 使用和效果:

同上我们可以通过 mysqldbcompare --help 命令查看用法:

使用如下命令可以查看源库和目标库中的表数据是否有差异:mysqldbcompare--server1=test:test@10.20.30.3:3306--server2=test1:test1@10.20.30.4:3307 testdb:testdb

执行效果如下:

结论:通过比对,发现源库和目标库中的数据一致。

本次分享几条简单的命令到此结束。

重点在于:作为测试,我们可以通过以上 2 个小工具减少我们重复性的工作,提高测试结果的准确性。

如果我们有一定代码基础,可以集成以上小工具,完成一套 DTLE 的自动化测试脚本,方便以后每次版本发布的回归测试。

mysql db compare_数据传输 | mysqldiff/mysqldbcompare 实现 DTLE 自动化测试相关推荐

  1. vs xaml 语句完成 自动列出成员_数据传输 | mysqldiff/mysqldbcompare 实现 DTLE 自动化测试...

    作者:张静文 爱可生上海研发中心成员,测试工程师,负责 DMP 以及 DTLE 自动化测试. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 任务: ...

  2. 自定义表单mysql_自定义表单,计算答案然后更新mysql DB(Custom form, calculate answer then update mysql DB)...

    自定义表单,计算答案然后更新mysql DB(Custom form, calculate answer then update mysql DB) 我想要实现的是用户购买代币时的模拟支付系统. 我坚 ...

  3. dbcontext mysql_.Net Core 2.0数据库第一种方法Mysql DB的Scaffold-DbContext

    我正在使用 MySQL DB在.Net Core 2.0中开发WEB API.我正在尝试搭建MySQL DB.我跟随 This link (MySQL Official Site)但是当我解除脚手架命 ...

  4. DBD::mysql::db do failed: Table cl_access was locked with a READ lock and can't be updated

    DBD::mysql::db do failed: Table 'acl_access' was locked with a READ lock and can't be updated at /us ...

  5. mysql Can‘t open and lock privilege tables: Table ‘.\mysql\db‘ is marked as crashed .. repair failed

    今日xampp的mysql报错 Fatal error: Can't open and lock privilege tables: Table '.\mysql\db' is marked as c ...

  6. azdb文件怎么打开_az mysql db

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. az mysql db ...

  7. dbd mysql db_mysqlhotcopy备份时出现“DBD::mysql::db do faile\问题-huifeideluotuo-ChinaUnix博客...

    今天早上去检查mysql备份的信息,我这边是用 mysql-zrm 软件进行备份的,在检查备份log的时候,发现有下面这样的错误信息: BackupSet1:backup:INFO: PHASE ST ...

  8. 爱可生 mysql监控_MySQL 数据传输DTLE 最新版来啦-爱可生

    原标题:MySQL 数据传输DTLE 最新版来啦-爱可生 开源数据传输组件 DTLE 3.20.09.0 已发布. 一.DTLE 项目介绍 爱可生开源社区的 DTLE ,自开源起一直定位于一款针对 M ...

  9. mysql 跳过checksum_MySQL-Utilities:mysqldbcompare及跳过复制错误

    mysqldbcompare也是MySQL-Utilities工具集的一个脚本.mysqldbcompare从两个数据库比较对象和数据的不同.数据库中的对象包括:表.视图.触发器.存储过程.函数和事件 ...

最新文章

  1. DCN-s4600 ssh服务登录配置:
  2. html转义字符对照表
  3. python flask安装_python flask安装和命令详解
  4. 科技感的动态设计方法-1
  5. 基于Android NDK的交叉编译
  6. 6位顺序号生成_分布式id生成策略,我和面试官扯了一个半小时
  7. Android 报错:Conversion to Dalvik format failed: ...
  8. 域组策略--+域控中组策略基本设置
  9. CCFA中国国际零售创新大会,观远数据用智能分析驱动零售决策
  10. python下的selenium和PhantomJS
  11. audio 相关概念梳理记录
  12. 点云配准(一)— ICP方法
  13. 垃圾分类小程序 — 微信小程序源码分享
  14. 关于重写equals()和hashCode()的思考__从HashMap源码分析
  15. Linux CentOS 服务器清理磁盘空间
  16. 10.3注意力的评价函数
  17. jpg转word免费的软件
  18. 使用MATLAB App Design 工具设计一个 简易App
  19. 手机通话记录重复显示怎么处理_华为出现重复联系人 - 卡饭网
  20. Redis异地多活原理简介

热门文章

  1. Mac 可设置环境变量的位置、查看和添加PATH环境变量
  2. 企业CIO如何让IT部门成为价值中心
  3. 微型计算机地未来发展,微型计算机的发展历史、现状和未来(最新) PDF.doc
  4. python数组随机分组_Python实用黑科技——以某个字段进行分组
  5. (20):数据的准备工作
  6. SpringBatch批处理框架入门(二)
  7. SpringSecurity - 基础篇
  8. Spring AOP注解方式实现日志管理
  9. 【收藏】HUE配置HDFS
  10. 【收藏】如何避免everything每次都重建索引