Visual Studio 2010中實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)UI測(cè)試
本文將為大家講述的是Visual Studio 2010 Beta 2中實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)Coded UI測(cè)試方面的問(wèn)題,相信在Visual Studio 2010正式版中會(huì)有更好的表現(xiàn)。
#T#
通常情況下,我們要與不同的數(shù)據(jù)值一起重復(fù)一個(gè)測(cè)試。這個(gè)“數(shù)據(jù)驅(qū)動(dòng)”在Coded UI Test中非常容易的。在本例子中,我們創(chuàng)建了一個(gè)Coded UI Test,以驗(yàn)證在計(jì)算器的兩個(gè)數(shù)字增加?,F(xiàn)在,讓我們看看如何能夠把一個(gè)簡(jiǎn)單的CodedUI Test轉(zhuǎn)化為數(shù)據(jù)驅(qū)動(dòng)測(cè)試。
1、首先創(chuàng)建Coded UI Test (Create the Coded UI Test)(請(qǐng)參考上一個(gè)實(shí)例);
然后創(chuàng)建數(shù)據(jù)集。Coded UI Test支持多個(gè)數(shù)據(jù)源。該數(shù)據(jù)集可以定義在一個(gè)CSV(逗號(hào)分隔值)文件,一個(gè)Excel工作表,XML文件,數(shù)據(jù)庫(kù)表或TFS上的一個(gè)測(cè)試用例。在例子中,我們將使用與下面的數(shù)據(jù)CSV文件(TestData.csv)。
Add1
|
Add2
|
Sum
|
8
|
2
|
10
|
6
|
2
|
8
|
4
|
2
|
6
|
l.創(chuàng)建TestData.csv文件
“CSV”,是Comma Separated Value(逗號(hào)分隔值)的英文縮寫,通常都是純文本文件,可以用記事本打開(kāi)。打開(kāi)Excel,并復(fù)制上面數(shù)據(jù)到Excel中,選擇菜單|文件|另存為,選擇CSV格式,即可創(chuàng)建CSV文件。
對(duì)于每一段錄制的操作,VSTS都可以把它抽象成一個(gè)方法,它會(huì)把這些操作以靜態(tài)方法的形式存放在UIMap.Designer.cs的類里面??梢詫?duì)這些方法做任意的修改,也可以把需要輸入的方法增加一個(gè)輸入的參數(shù)。
2、添加數(shù)據(jù)源到Coded UI Test(Add the Data Source binding in Coded UI Test)。
1)打開(kāi)VS菜單|Test View-> Windows -> Test View,如圖1所示。
圖1 Coded UI Test屬性中創(chuàng)建數(shù)據(jù)連接3)通過(guò)上面操作,打開(kāi)新的數(shù)據(jù)源向?qū)Ы缑妫瑒?chuàng)建數(shù)據(jù)源。選擇CSV File—>單擊Next,如圖2所示。
圖2 新建數(shù)據(jù)源向?qū)?/p>
4)選擇步驟一建立的TestData.csv文件,測(cè)試數(shù)據(jù)源向?qū)ьA(yù)覽,單擊“Finish”,該csv數(shù)據(jù)文件加入到該項(xiàng)目中。如圖3所示。
圖3 新建數(shù)據(jù)源向?qū)募?shù)據(jù)預(yù)覽
新文件數(shù)據(jù)文件屬性自動(dòng)添加到Coded UI Test的CodedUITest1.cs文件中。文件屬性如下:
- [DeploymentItem("TestProject\\TestData.csv"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
- "|DataDirectory|\\TestData.csv", "TestData#csv", DataAccessMethod.Sequential), TestMethod]
3、在Coded UI Test中使用數(shù)據(jù)。打開(kāi)Coded UI Test文件(CodedUITest1.cs)添加代碼片段。
代碼片段如下:
- this.UIMap.計(jì)算器Window.Item8Window.Item8Button.SearchProperties
- [WinProperties.Button.Name] =
- TestContext.DataRow["Add1"].ToString();
這樣的修改后,當(dāng)運(yùn)行測(cè)試的時(shí)候會(huì)第一次運(yùn)行單擊按鈕(計(jì)算器)動(dòng)作。程序員會(huì)搜索CSV file,在其中挑選適合的值。
注意:測(cè)試的對(duì)象必須包含被處理的所有數(shù)據(jù),并且數(shù)據(jù)源必須存在??梢詤⒖嫉牧忻ɡ纾?ldquo;Add1”)。
同樣的,添加下面代碼片段,它修改了第二次點(diǎn)擊計(jì)算器。
代碼片段如下:
- this.UIMap.計(jì)算器Window.Item2Window.Item2Button.SearchProperties
- [WinProperties.Button.Name] =
- TestContext.DataRow["Add2"].ToString();
新增this.UIMap.AssertSum()方法,調(diào)用下面的代碼:
- this.UIMap.AssertSumExpectedValues.ItemEditText = TestContext.DataRow["Sum"].ToString();
現(xiàn)在可以進(jìn)行驗(yàn)證,從CSV文件獲取數(shù)據(jù)進(jìn)行自動(dòng)化測(cè)試結(jié)果。
4、運(yùn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試。單擊右鍵彈出菜單,選擇“Run Tests”,運(yùn)行Coded UI Test方法進(jìn)行自動(dòng)化測(cè)試。如圖4所示.
圖4 運(yùn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試
該測(cè)試運(yùn)行時(shí)候?qū)?zhí)行3次(如需要多次迭代,根據(jù)數(shù)據(jù)源的數(shù)據(jù)行)。測(cè)試結(jié)果將顯示每個(gè)迭代的細(xì)節(jié)。如圖5所示。
圖5 數(shù)據(jù)驅(qū)動(dòng)測(cè)試結(jié)果信息至此,我們已經(jīng)看到測(cè)試實(shí)例,了解了如何創(chuàng)建一個(gè)數(shù)據(jù)驅(qū)動(dòng)測(cè)試。VSTS自動(dòng)生成的UIMap.Designer.cs的UIMap類,里面的方法都可以重用,稍加修改就能達(dá)到比較好的測(cè)試效果(同時(shí)也需要對(duì)這個(gè)類的方法進(jìn)行整理)。
如果測(cè)試用例是MTLM工具創(chuàng)建,還有一個(gè)更簡(jiǎn)單的方法,使其數(shù)據(jù)驅(qū)動(dòng)。有關(guān)MTLM結(jié)合的工作流程將在以后中的介紹。
原文標(biāo)題:在Visual Studio 2010中實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)Coded UI Tests
鏈接:http://www.cnblogs.com/xiaoyin_net/archive/2010/01/27/1657808.html






