溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

TFS 測(cè)試用例步驟數(shù)據(jù)統(tǒng)計(jì)

發(fā)布時(shí)間:2020-06-10 04:25:37 來源:網(wǎng)絡(luò) 閱讀:208 作者:鄒君安 欄目:網(wǎng)絡(luò)安全

TFS系統(tǒng)集成了一套BI系統(tǒng),基于SQL Server的Analysis Service進(jìn)行實(shí)現(xiàn)的。通過這幾年的深入使用,能夠感觸到這個(gè)數(shù)據(jù)數(shù)據(jù)倉庫模型是多么的優(yōu)秀,和微軟官方提供的數(shù)據(jù)倉庫示例AdventureWorksDW有的一比。系統(tǒng)本身從基礎(chǔ)數(shù)據(jù)ETL到數(shù)據(jù)倉庫再到Cube中,整個(gè)過程渾然一體,對(duì)應(yīng)用戶和系統(tǒng)管理員來說,幾乎都是透明的。并且對(duì)TFS工作項(xiàng)的定制擴(kuò)展自動(dòng)支持,用戶通過添加工作的相關(guān)的維度或度量元數(shù)據(jù)的屬性,在最終的Cub都可以自動(dòng)的加入和統(tǒng)計(jì)數(shù)據(jù)。

但是,在一個(gè)大型客戶使用過程中,提出了統(tǒng)計(jì)TFS中全部測(cè)試用例的全部測(cè)試步驟的數(shù)據(jù),這個(gè)測(cè)試步驟的在TFS系統(tǒng)中根本就沒有設(shè)計(jì)成為可度量的數(shù)據(jù),直接從TFS的數(shù)據(jù)倉庫中統(tǒng)計(jì)這個(gè)數(shù)據(jù),顯然是不可能。通過分析,TFS中的HTMLFieldControl的類型的數(shù)據(jù)是存儲(chǔ)在TFS_Collection庫的WorkItemLongTexts表中,測(cè)試步驟是以XML結(jié)構(gòu)組織的文本形式存儲(chǔ)的。因此要統(tǒng)計(jì)這個(gè)數(shù)據(jù)也必須要從這個(gè)點(diǎn)進(jìn)行著手,通過幾次嘗試,按照下面的步驟終于統(tǒng)計(jì)出了各個(gè)項(xiàng)目的測(cè)試步驟數(shù)量。

1, 跨庫查詢抽取全部的測(cè)試用例相關(guān)數(shù)據(jù)到一個(gè)臨時(shí)的表中。

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 = '測(cè)試用例'

where wilt.fldid = 10181 and wilt.EndDate = '9999-01-01' and  SUBSTRING(wilt.Words,1,6) = '<steps'

  

2, 針對(duì)上面抽取出來的臨時(shí)表,創(chuàng)建了一個(gè)存儲(chǔ)過程,把其中XML類型的測(cè)試步驟數(shù)據(jù)進(jìn)行解析,提取出步驟數(shù)據(jù)。

 

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, 使用報(bào)表進(jìn)行展示

 TFS 測(cè)試用例步驟數(shù)據(jù)統(tǒng)計(jì)

 


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI