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

作者:张静文

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

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

任务:

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

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

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

3. 等.......

测试步骤大致为:

1. 设计表结构,数据类型。

2. 使用 dtle 迁移表/数据。

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

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

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

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

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

 (系统:Ubuntu 18.04)

1. 软件下载,地址如下:
https://cdn.mysql.com/archives/mysql-utilities/mysql-utilities-1.6.5.tar.gz
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

如下图:

45dc71ee933eac44b77d80c0344cd0a3.png

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

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

7376272393fe80e09dbbf7b7849bc27e.png

接下来我要测试通过 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

执行效果如下:

ede76a4659edc679abd15539cfb1da04.png

结论:通过比对,发现源数据库中有 2 张表并不在目标数据库中,而且很详细的列出了迁移失败的表名。

mysqldiff--server1=test:test@10.20.30.3:3306--server2=test1:test1@10.20.30.4:3307 testdb.char_columns:testdb.char_columns

执行效果如下:

313dc89f03cbfeb40640f741d45cea0e.png

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

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

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

191bb0ff15330ba16eb9b37135b65fba.png

使用如下命令可以查看源库和目标库中的表数据是否有差异:

mysqldbcompare--server1=test:test@10.20.30.3:3306--server2=test1:test1@10.20.30.4:3307 testdb:testdb

执行效果如下:

5ef72e6f7d94efa85692a7f50f4c2cc5.png

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

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

重点在于:

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

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


文章推荐:

数据传输 | dtle 使用初探数据传输 | dtle 之 job 实现简析
49d33ef921760843d6a98022b035f3d7.png

社区近期动态

da16885890b295ac92784406a23d71f4.png

fd70e049cc657ab2793c9848469efb6a.gif 点一下“阅读原文”了解更多资讯

207cb1cfc5db2fee05378820cbd7651d.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503984.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

raft算法_Raft算法与实现

强一致性、高可用的存储组件是构建现代分布式系统的必要条件,广泛应用于注册中心、配置中心等平台设施中,分布式锁、协调器等等各类场景需求也有相关需求,在该领域有众多知名的开源组件,如etcd、zookeeper、Tikv等等。共识算法是实…

静态ip ssh无法登录_识别动静态IP的技巧

动态IP,又称DHCP上网,即自动获取IP上网。动态IP这种上网方式,连接网络时即可自动获取IP地址来正常上网。在未使用路由器的情况下,只需要把宽带网线连接到电脑上,电脑上的IP地址设置为自动获得,电脑就可以实…

18awg线材最大电流_小米生态链拉车线:2.4A大电流,苹果MFi认证,高速充电不断裂...

对于经常使用苹果手机的用户来说,不随时准备几根充电线好像总感觉差点什么,苹果官方的电源线不耐用早已是公认的事实,其实最主要的还是因为苹果手机电池容量低,相对来说充电次数要比安卓手机多一些,电源线使用频率也就…

a股历史30年的大盘价_2020年7月30日大盘走势分析

2020年7月30日大盘走势分析严正声明:分析下面小程序炒股广告与本公众号zyh218642无关,纯属第三方平台自然生成,不要点开,谨防上当受骗。7月份大盘走势分析7月份大盘的多空压力与支撑位置:…第二压力:3139.0…

vue2.0 唤起百度地图app_开车选高德,出门靠百度,高德百度地图APP对比

高德和百度是在电子地图领域竞争的对手,但是,在同一领域他们的发展方向的侧重也存在差异。那么,他们究竟有什么不同呢?当然,他们的开发人员必须是不同的,肯定不用考虑。此外,在某些数据和功能上…

火力发电厂与变电站设计防火标准_真题—火力发电厂1

做真题,遇真题,解真题1、某燃煤火力发电厂,单机容量200MW,该发电厂火灾自动报警系统的下列设计方案中,正确的是()。A.运煤系统内的火灾探测器防护等级为IP65B.厂区设置集中报警系统C.消防控制室与集中控制室分别独立设…

捷波朗STORM耳机设置中文_2020年 除了Airpods pro以外无线降噪蓝牙耳机如何选?五款热门入耳式蓝牙降噪耳机推荐...

双十二红包,每日三次,手慢无2020 年除了Airpods pro 以外,五款热门入耳式无线蓝牙降噪耳机简评近期,Apple推出的新款无线耳机Air pods pro引起了一波数码控的热议,大致分为两个立场,我个人专门去苹果店试听…

java如何画百分比圆环_canvas绘制百分比圆环进度条

开发项目,PM会跟踪项目进度;完成某个事情,也可以设置一个完成的进度。这里用canvas绘制一个简单百分比圆环进度条。看下效果:1. 动画方式2. 静默方式贴上代码,仅供参考/*** LBS drawRing* Date: 2015-04-24* * opts.pa…

linux 休眠定时唤醒_Linux重启关机命令经验之谈

请关注本头条号,每天坚持更新原创干货技术文章如需学习视频,请查看本头条号简介,免费在线观看学习视频一般来说,Linux服务器都保存着重要文件和服务,不当使用将可能导致数据丢失甚至是灾难。同样,正确的关闭…

空白世界地图打印版_考研准考证打印什么时候_中国研究生招生信息网官网

考研准考证打印什么时候_中国研究生招生信息网官网由广东研究生考试网考试快讯栏目由提供,更多关于考研准考证打印入口,广东研究生考试快讯的内容,请关注广东研究生考试频道/广东人事考试网!2021考研人注意啦!2021考研准考证下载时间及入口12…

debian java7_Debian 7 和 Debian 8 用户怎样安装 Oracle Java 8

Oracle Java 8 稳定版本近期已发布,有很多新的特征变化。其中,有功能的程序支持通过“Lambda项目 ”,收到了一些安全更新和界面改进上的bug修复,使得开发人员的工作更容易。本文将告诉你如何在Debian 7 “Wheezy”和Debian 8 “Je…

hdu java_HDU-java实现1176

免费馅饼Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 58323 Accepted Submission(s): 20514Problem Description都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下…

千寻位置 开发demo_java程序开发,使用javaagent无侵入代码方式,监控方法执行耗时...

背景描述javaagent是在JDK5之后提供的新特性,也可以叫java代理。开发者通过这种机制(Instrumentation)可以在加载class文件之前修改方法的字节码(此时字节码尚未加入JVM),动态更改类方法实现AOP,提供监控服务如;方法调用时长、可用…

java jvm性能调优_《Java 底层原理》Jvm性能调优

前言Java 的性能调优,主要就是为了防止出现out of memory(oom)。Java出现oom就会直接导致程序停止运行。调优模拟元空间oom的情况importnet.sf.cglib.proxy.Enhancer;importnet.sf.cglib.proxy.MethodInterceptor;importnet.sf.cglib.proxy.MethodProxy;importjava.…

yota3墨水屏设置_汉阳环卫工节前给道路隔音屏“洗澡”

楚天都市报9月27日讯(记者卢成汉 通讯员肖赟 肖利)据了解,三环线汉阳段连接硚口区和经济技术开发区,是货运主通道和入城环路,墨水湖北路二环线延长线高架是二环线汉阳中心城区与三环线的重要连接道,都属“城市快速路”&#xff0c…

java atd_Java字符串String详解

1、String字符串实例化String对象:(1)直接赋值,如:String str"hello";(2)使用关键字 new,如:String strnew String("hello");由图可知:使用 new 的方式在堆内存中开辟了两个空间&#…

while用法_语法宝典:连词while的四种用法,你都学会了吗?

你可能知道while除了表示“当……的时候”,还有它与when, as的用法区别,但是这些还不够全面,今天小编就来给大家详细解析一下相关的用法,一起来看看吧!一、考查表示时间的用法,其意为“当……的时候”。如&…

java基础语法试题_java基础语法测试题

java基础语法测试题 Java 程序设计:07-07考试时间:90 分钟用户:wanggang 难度:0 总分:100导出时间:2011-07-07 13:06:15一、判断题(每题 2 分,总分 20 分)1.( )接口和类一样也可以有继承关系,而…

开发转测试没人要_新人如何快速的进入融入软件测试行业?

古人云“师傅领进门,修行在各人”任何行业的入门门槛都是不一样的,软件测试行业涉及到专业领域的知识,入门的门槛高吗?怎么更好的融入行业呢?首先要说到的是软件测试学习的途径主要就三种,一种自学&#xf…

winform checkbox要点击两次_这个Winform的UI库也太全了!四十多个控件都在这一个项目里了...

之前 Gitee 为大家介绍过几款优质的 Winform 项目:这几个WinForm项目,让你更熟悉 .NET|Gitee 项目推荐,发现Winform在大家心中的地位还是挺高的,那么今天就再给各位分享一款新鲜出炉的 Winform UI库——SunnyUI&#x…