TFS系统集成了一套BI系统,基于SQL Server的Analysis Service进行实现的。通过这几年的深入使用,能够感触到这个数据数据仓库模型是多么的优秀,和微软官方提供的数据仓库示例AdventureWorksDW有的一比。系统本身从基础数据ETL到数据仓库再到Cube中,整个过程浑然一体,对应用户和系统管理员来说,几乎都是透明的。并且对TFS工作项的定制扩展自动支持,用户通过添加工作的相关的维度或度量元数据的属性,在最终的Cub都可以自动的加入和统计数据。
创新互联是专业的五寨网站建设公司,五寨接单;提供成都网站建设、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行五寨网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
但是,在一个大型客户使用过程中,提出了统计TFS中全部测试用例的全部测试步骤的数据,这个测试步骤的在TFS系统中根本就没有设计成为可度量的数据,直接从TFS的数据仓库中统计这个数据,显然是不可能。通过分析,TFS中的HTMLFieldControl的类型的数据是存储在TFS_Collection库的WorkItemLongTexts表中,测试步骤是以XML结构组织的文本形式存储的。因此要统计这个数据也必须要从这个点进行着手,通过几次尝试,按照下面的步骤终于统计出了各个项目的测试步骤数量。
1, 跨库查询抽取全部的测试用例相关数据到一个临时的表中。
1 2 3 4 5 | select cwv.ProjectNodeName,cwv.System_AssignedTo, cwv.System_CreatedDate, cwv.System_Id,cwv.System_Title, wilt.words
from WorkItemLongTexts wilt
left join
[Tfs_Warehouse].[dbo].[CurrentWorkItemView] cwv on wilt.ID = cwv.System_Id and cwv.System_WorkItemType = '测试用例'
where wilt.fldid = 10181 and wilt.EndDate = '9999-01-01' and SUBSTRING (wilt.Words,1,6) = '
|
2, 针对上面抽取出来的临时表,创建了一个存储过程,把其中XML类型的测试步骤数据进行解析,提取出步骤数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | CREATE PROCEDURE [dbo].[CalcTestSetpProg]
AS
BEGIN
SET NOCOUNT ON ;
--Delete illegal record
delete [TeamProjectTestStep] where isnull (system_id,0)=0
DECLARE @ temp TABLE
(
sys_id INT ,
word ntext
)
INSERT INTO @ temp (sys_id, word ) select [System_Id],words from [dbo].[TeamProjectTestStep];
DECLARE
@sys_id AS INT ,
@word As nvarchar( max )
WHILE EXISTS( SELECT sys_id FROM @ temp )
BEGIN
SET ROWCOUNT 1
SELECT @sys_id= sys_id,@word = word FROM @ temp ;
BEGIN Try
UPDATE [TeamProjectTestStep] SET StepCount = Cast (@word as xml).value( 'count(/steps/step)' , 'int' ) WHERE System_Id=@sys_id;
END Try
Begin Catch
End Catch
SET ROWCOUNT 0
DELETE FROM @ temp WHERE sys_id=@sys_id;
END
END
|
3, 使用报表进行展示
网页题目:TFS测试用例步骤数据统计
网址分享:
http://cxhlcq.com/article/jhcghp.html