日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
利用VisualStudio實現(xiàn)自動化測試

自動化測試的實現(xiàn)

目前創(chuàng)新互聯(lián)建站已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計、通化縣網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

編寫自動化測試也許對很多測試人員來說比較陌生。所幸的是Visual Studio中為實現(xiàn)自動化測試提供了一系列的工具,單元測試(Unit Test)、編碼UI測試(Coded UI Test)、壓力測試(Stress Test)、網(wǎng)頁性能測試(Web Performance Test)、數(shù)據(jù)庫單元測試(Database Unit Test)等等,讓實現(xiàn)自動化測試變得輕松。這里我想著重介紹2種最基本的,也是在我們的產(chǎn)品開發(fā)中最常用的測試:單元測試和編碼UI測試。

1. 單元測試

單元測試是Visual Studio中最基本、應(yīng)用最廣泛的一種測試。通常開發(fā)人員可以選擇為一個方法或是一個部件創(chuàng)建單元測試,來保證其邏輯正確。

要在Visual Studio中創(chuàng)建單元測試,可以在源代碼的上下文菜單中選擇“創(chuàng)建單元測試”,并在彈出的窗口中選擇需要為其創(chuàng)建單元測試的方法(如圖一、圖二所示)。這樣Visual Studio就會自動創(chuàng)建出一系列單元測試的代碼框架,以及針對private/internal等無法直接調(diào)用的方法的訪問器(Accessor),用戶只需修改或添加具體測試邏輯即可。訪問器會隨著源代碼的每一次編譯自動更新,為用戶節(jié)省了不少麻煩。當(dāng)然,用戶也可以使用單元測試向?qū)?chuàng)建,或是直接添加一個單元測試(測試->新建測試)文件再自行添加邏輯代碼。

圖一 創(chuàng)建單元測試

圖二 創(chuàng)建單元測試對話框

單元測試通常以[TestClass]屬性來表示一個測試類,在測試類中使用5種不同的屬性標(biāo)示方法:[ClassInitialize]、[TestInitialize]、[TestMethod]、[TestCleanup]、[ClassCleanup]。一個測試類中可包含多個測試方法(Test Method),但是僅可以有一個類初始化方法(Class Initialize)、一個測試初始化方法(Test Initialize)、一個測試清理方法(Test Method)、一個類清理方法(Class Cleanup)。在測試運(yùn)行時,類的初始化會被首先調(diào)用,然后在運(yùn)行每一個測試方法之前運(yùn)行測試初始化,之后運(yùn)行測試清理,在測試方法運(yùn)行結(jié)束后,類清理方法將被運(yùn)行。除測試方法外,其他的輔助方法都不是必須的。大家可以根據(jù)實際需要來安排代碼邏輯。

成功編譯后,所有測試方法都會在測試視圖(Test View)窗口中列出,在該窗口中還可以對測試方法進(jìn)行過濾、查詢和排序,選擇一個或多個測試方法后,可以運(yùn)行或調(diào)試測試用例。測試的結(jié)果(是否通過)會顯示在測試結(jié)果(Test Result)窗口中,雙擊任意一條測試結(jié)果都會打開具體的測試結(jié)果日志以獲取更詳細(xì)的信息,如圖三所示。單元測試還可以通過直接在測試方法代碼中右鍵選擇“運(yùn)行測試”,或是在命令行中直接執(zhí)行mstest命令來運(yùn)行。

圖三 測試視圖和測試結(jié)果

此外,單元測試工具不僅可以用作單元測試的目的,也可以作為一種載體,來實現(xiàn)驗收測試或是功能測試。我們在實踐中大量利用了Visual Studio對單元測試的管理、運(yùn)行、日志等功能,通過在測試代碼中實現(xiàn)驗收測試、功能測試的具體邏輯來完成各種不同類型的測試。

2. 編碼UI測試

雖然單元測試框架適用于各種不同的測試,不過其本身卻沒有提供太多對測試代碼實現(xiàn)上的支持。對于自動化測試中常常令人無從下手的UI操作的自動化,Visual Studio 2010中添加了一種新的測試類型——編碼UI測試,以幫助用戶克服這一難題。編碼UI測試是一種能輕松上手,迅速創(chuàng)建出UI測試的框架。

一種最簡單的創(chuàng)建UI測試的方法是直接從手動測試入手。如果此前我們曾在Test Manager中創(chuàng)建了測試用例,并曾在手動執(zhí)行時錄制過其測試步驟,那么我們就可以直接將錄制的步驟轉(zhuǎn)化為編碼UI測試的代碼。在Visual Studio中選擇創(chuàng)建一個編碼UI測試后,會跳出一個對話框詢問用戶是使用已有的操作錄制還是重新錄制,選擇第二項“Use an existing action recording(使用現(xiàn)有操作錄制)”后即可通過查詢測試用例工作項將相應(yīng)的測試轉(zhuǎn)化為自動化測試代碼(見圖四)。

圖四 創(chuàng)建編碼UI測試

如果之前沒有錄制過測試步驟,或是想重新創(chuàng)建測試的話,可以在圖四對話框中選擇第一項“Record actions, edit UI map or add assertions(錄制操作、編輯 UI 映射或添加斷言)”,這樣編碼UI測試生成器(Coded UI Test Builder)就會出現(xiàn)。在編碼UI測試生成器中,用戶可以自由選擇為測試錄制操作步驟(圖五)、手動添加某些UI控件或是斷言(圖六),然后就可以為這些內(nèi)容生成代碼。這一過程可以通過在代碼的上下文菜單中選擇“Generate Code for Coded UI Test(為編碼UI測試生成代碼) ”反復(fù)執(zhí)行,需要提醒用戶的一點是每一次所有的代碼都將被重新生成,所以手動修改生成的代碼是沒有意義的,除非此后不再借助編碼UI測試生成器生成代碼。

圖五 編碼UI測試生成器——錄制

圖六 編碼UI測試生成器——添加UI控件和斷言

此外,用戶還可以不借助Visual Studio提供的這些工具,直接利用編碼UI測試提供的API(Microsoft.VisualStudio.QualityTools.CodedUITestFramework等)編寫代碼,實現(xiàn)UI自動化測試。

編碼UI測試的運(yùn)行方法、運(yùn)行結(jié)果等都與單元測試類似,此處不再贅述。

這里要強(qiáng)調(diào)的是自動生成的自動化UI測試并不能解決UI測試固有的不穩(wěn)定的問題。尤其是這種編碼UI測試是通過UI控件之間的包含關(guān)系來尋找控件并對其執(zhí)行操作的,就導(dǎo)致了如果運(yùn)行測試時UI排列與錄制時不盡相同時,測試可能無法正確運(yùn)行。確保運(yùn)行時UI環(huán)境的一致、在各操作步驟之間添加對UI控件狀態(tài)的判斷、在生成的代碼的基礎(chǔ)上編寫自己的代碼是能提高編碼UI測試穩(wěn)定性的一些方法。

3. 其他類型測試

除了上述兩種常用的測試類型之外,Visual Studio針對不同類型的測試以及測試對象,提供了各種其他的測試工具。例如,網(wǎng)頁性能測試通過記錄用戶每一步操作選擇的地址和發(fā)送的信息來實現(xiàn)網(wǎng)頁測試的自動化;負(fù)載測試幫助用戶模擬多用戶各種不同測試環(huán)境下的負(fù)載;數(shù)據(jù)庫單元測試提供了直接針對數(shù)據(jù)庫的測試支持。這里我就不再一一詳細(xì)介紹了,有興趣的讀者可以自己在MSDN上查詢使用方法或者直接試用這些功能。

自動化測試的管理

對于手動測試,測試用例工作項已經(jīng)能很好的描述測試的內(nèi)容以及記錄測試的結(jié)果。而自動化測試的不同之處在于其需要代碼的支持。我們通常將測試代碼和產(chǎn)品代碼一起保存在Team Foundation Server的源代碼控制中,這樣一方面便于代碼的統(tǒng)一管理,另一方面讓測試用例也能利用到TFS提供的版本控制、擱置集等功能。另外,我們還可以通過設(shè)置TFS的測試用例工作項中包含的“關(guān)聯(lián)的自動化測試”域的值將測試計劃中的測試用例和實際的代碼聯(lián)系起來。

小結(jié)

在這一篇中,我們討論了手動測試和自動化測試各自的優(yōu)勢和局限性,兩者互補(bǔ)和平衡能幫助測試人員更好的在敏捷開發(fā)的環(huán)境中完成測試任務(wù)。此外,我們還了解了如何借助Visual Studio中提供的一些工具來實現(xiàn)并管理自動化測試。在介紹了自動化測試的方法和工具后,我將在下一篇中進(jìn)一步為大家介紹如何計劃和執(zhí)行自動化的測試用例。


網(wǎng)站欄目:利用VisualStudio實現(xiàn)自動化測試
當(dāng)前地址:http://www.dlmjj.cn/article/dhoepih.html