数据迁移中的数据测试
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,很久没有写自己的blog了。自动化测试项目结束后,又参加了一些新项目,有些和测试自动化无关。目前做的是数据迁移测试,即把一个老系统的业务数据,迁移到新系统中。大部分测试都集中在数据的测试,主要根据BM
千家信息网最后更新 2026年11月03日数据迁移中的数据测试
很久没有写自己的blog了。自动化测试项目结束后,又参加了一些新项目,有些和测试自动化无关。目前做的是数据迁移测试,即把一个老系统的业务数据,迁移到新系统中。大部分测试都集中在数据的测试,主要根据BMD测试数据字段的对应关系。测试用例都是用SQL脚本写的。为了调用这些测试用例,也写了一个简单的测试框架,思路如下:
Main.sql
这个文件有两部分,
1) 生成一个TestResult表,记录每一个测试用例的结果,如:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TestResult]') AND type in (N'U')) DROP TABLE [dbo].[TestResult]BEGIN CREATE TABLE [dbo].[TestResult]( [ResultId] int identity(1,1) NOT NULL, [TestCaseId] nvarchar(255) NOT NULL, [ProcedureName] nvarchar(255) NOT NULL, [TestCaseResult] nvarchar(255) NOT NULL, [TestLog] nvarchar(max) NULL, [ExecutionTimeStamp] datetime NULL ) INSERT INTO [dbo].[TestResult] VALUES ('C-301','AccountID','NOT RUN','',CURRENT_TIMESTAMP), ...... END2) 调用每一个测试用例对应的存储过程。
EXECUTE C_AccountID
2. 每一部分数据都有自己的文件,如Account.sql. 在这个文件里,包括了将测试用例自动化的存储过程。Example:
--C-301--------------Start of AccountID Procedure-------------------USE TestDatabaseGOIF OBJECT_ID ('dbo.AccountID', 'P') IS NOT NULL DROP PROCEDURE dbo.AccountIDGOCREATE PROCEDURE dbo.AccountIDASBEGIN DECLARE @AccountIDCount int DECLARE @DupCount int DECLARE @LegalCount int DECLARE @Result nvarchar(10) DECLARE @Comments nvarchar(255) /* Test the account id's mapping */ SET @AccountIDCount = 0 SET @AccountIDCount = (SELECT COUNT(*) FROM [MasterData] T LEFT JOIN [TargetList] S ON CAST( T.[iAccountID] as nvarchar) = CAST( S.[PARTYID] as nvarchar) collate Latin1_General_CI_AS WHERE T.[iAccountID] IS NULL ) /* Check there is no duplicate account id */ SET @DupCount = 0 SET @DupCount = (SELECT COUNT(*) FROM [MasterData] WHERE (iAccountID in (select iAccountID from [MasterData] group by iAccountID having count(*)>1) )) /* check the account id is 10 digits */ SET @LegalCount = (SELECT * FROM [Rex_DCL5_LDS_Customer_STG_MasterData] WHERE iAccountID not like '00000000%') IF @AccountIDCount + @DupCount + @LegalCount= 0 BEGIN SET @Result = 'PASS' SET @Comments = '[iAccountID] are correct.' END ELSE BEGIN SET @Result = 'FAIL' SET @Comments = 'There are: ' + CAST(@AccountIDCount as nvarchar) + 'records of T data are not contained in S data.'+ CAST(@DupCount as nvarchar) + ' records are duplicated' + CAST(@LegalCount as nvarchar) + ' records are illegal' END IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TestResult]') AND type in (N'U')) BEGIN UPDATE [dbo].[TestResult] SET TestCaseResult = @Result, TestLog = @Comments, ExecutionTimeStamp = CURRENT_TIMESTAMP WHERE ProcedureName = 'AccountID' END ENDGO--C-301------------End of dbo.AccountID Procedure-------------------执行测试是,先Acount.sql,生产每一个测试用例的存储过程,然后在打开Main.sql去调用这些存储过程。
这个框架本身非常简单,很容易扩展和维护,为进行数据迁移测试的童鞋们,抛砖引玉。
测试
数据
过程
存储
文件
自动化
框架
系统
T.
抛砖引玉
业务
大部分
字段
思路
新项目
童鞋
结果
脚本
部分
项目
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海喔噻互联网科技有限公司
互联网科技的
兼蜜互联网科技
中正互联网科技招聘
华中科技有哪些互联网大佬
上海电发互联网科技有限公司
青岛中康互联网医疗科技有限公司
互联网金融科技公司干啥的
全球顶尖互联网科技公司
语蝶互联网科技有限公司
崇明区互联网教育科技售后服务
锡山区互联网智能科技产品供应
互联网科技收购价值
科技互联网公司两年变化
互联网科技博主张洲
北京品多多互联网科技有限公司
数字科技和互联网金融哪个好
互联网科技创业计划的风险分析
东风日产互联网科技公司叫什么
互联网科技创新方面的资料
互联网科技行业发展
金融科技与互联网金融
朗涯互联网科技
互联网金融 科技创新
国外互联网科技网站
滨湖区互联网智能科技产品供应
互联网科技创新企业排名
互联网巨头投资的硬核科技
怎样加入科技互联网
上海同邻互联网科技有限公司规模