数据迁移中的数据测试
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,很久没有写自己的blog了。自动化测试项目结束后,又参加了一些新项目,有些和测试自动化无关。目前做的是数据迁移测试,即把一个老系统的业务数据,迁移到新系统中。大部分测试都集中在数据的测试,主要根据BM
千家信息网最后更新 2024年11月11日数据迁移中的数据测试
很久没有写自己的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), ...... END
2) 调用每一个测试用例对应的存储过程。
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安全错误
数据库的锁怎样保障安全
软件开发自荐信模板
c 数据库属性
高科技和互联网哪个稳
atcc数据库使用
java处理菜单数据库
基层党员干部网络安全
华科网络安全学院怎么样
中国企业并购数据库
第3章 网络安全管理技术
简述数据库的四大基本功能的关系
懒人畅听无法连接服务器
本地电脑怎么设置为网页服务器
数据库原理及应用案例2016
关系数据库有没有数据共享性
中北大学网络安全专业考研考哪些
彗星服务器
金夫人婚纱摄影服务器
一台服务器能用两个网络ip吗
数据库0做除数
db2创建新数据库sql
孝昌警察公务员网络安全管理
ipfs互联网科技巨头谷歌
opc软件读写数据库
数据库查询的多种实现方法的比较
东方货运公司数据库的样本
网络安全的男朋友
浙江银河网络技术有限公司
数据库查询每个班成绩前三的同学
oracle数据库怎么用游标
软件开发一般用什么操作系统