性能測試方面:
1. 可以使用loadrunner/" target="_blank" >LoadRunner11.0,LR11.0支持Sliverlight的性能測試,壓力測試,負載測試等。
UI測試方面:
1. 開發人員可以使用VS2010自帶的Test來測試SliverLight。但是要安裝
“en_visual_studio_2010_fp2_x86_604352.msi”并且要將“C:\Program Files\Common Files\microsoft shared\VSTT\10.0\UITestExtensionPackages\SilverlightUIAutomationHelper”下的“Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper.dll”引入到Sliverlight工程中。具體操作為:
1. 將Sliverlight工程卸載。
2. 編輯.csproj文件。
3. 將
將
<Choose>
<When Condition=" '$(Production)'=='False' ">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper">
</Reference>
</ItemGroup>
</When>
</Choose>
放入到.csproj文件中,放入的位置如下圖:
4. 將工程加載,rebuild。
參考:http://msdn.microsoft.com/zh-cn/library/gg413374
這樣就可以錄制SliverLight Web項目了。
使用VS2010自帶的測試工具來測試的弊端是:必須要在測試之前將
Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper引用。這就需要在開發的工程中完成。
VS2010UI測試之旅
開始我們的第一個UITest文件
下面就真正地開始VS2010的UI測試之旅。
1. 建立一個Test Project。
2. 新建完測試工程后,要建立一個Test,我們要做的是UI測試,所以這里選擇的是“Coded UI Test”
3. 新建完Test之后,會有一個提示框彈出,詢問你是想怎么創建UI測試,這是會選擇“錄制操作、編輯UI映射或添加斷言”
4. 這時屏幕右下角會出現UI測試生成器。
5. 本例中以PSD系統為例來對SliverLight的UI進行測試。
6. 點擊“開始錄制”按鈕。
7. 打開要錄制操作的SliverLight頁面,進行相應的操作。這時可以在UI測試生成器處看到一些相應操作的名稱以及操作對象的名稱。做完一系列操作后,點擊“停止錄制”按鈕,這時點擊代碼生成按鈕。就會出現下面的對話框,將剛剛的操作生成一個方法,方法名稱可以自定義。
8. 當代碼生成完畢后,面板上的準星可以使用。點擊準星不放,拖動到想要錄制的對象上,放開鼠標。
剛剛被選中的對象并且添加到對象庫的對象。注:要點擊左上角的,這樣才能將選中的對象添加到對象庫中,生成代碼時被初始化。
9. 添加斷言。
同步驟8一樣,但是在右側面板中選擇Exits屬性,值為TRUE。
然后點擊“添加斷言”按鈕。
這里我們要選擇AreEqual,值為True。表示,我們確定UIBingosoftPSDSliverliButton1這個按鈕存在,如果在運行測試的時候,該Button存在,則pass,否則fail。
10. 點擊代碼生成按鈕,為剛才添加的斷言生成判斷方法,方法名稱可以自定義。
11. 點擊VS2010中的運行按鈕。
VS2010會自動演示剛才的操作,并且顯示運行結果。
VS2010生成的代碼到底放在了那里?
下面我們來看一下VS2010生成的代碼放在了哪里。
1. 我們來看一下工程的目錄結構,不難發現,錄制時自動生成了.uitest文件,并且所有的方法代碼都在.Designer.cs文件中。
雖然UIMap.cs和UIMap.Designer.cs是同時生成的,但是VS自動生成的代碼放在.Designer.cs文件中。而在.cs文件中,可以放置一些自己編寫的代碼。
2. 但是最主要的還是.uitest文件,雖然.Designer.cs文件中放置的是生成的代碼,但是會隨著.uitest文件中的內容變化而變化。所以在Coded UI Test中,主導代碼生成的還是.uitest文件。下面我們來看一下.uitest文件的結構。
.uitest文件的結構主要包括
<InitializeActions/>
<ExecuteActions/>
<CleanupActions/>
<OnErrorActions/>
<Maps/>
<ValueMap/>
其中InitializeActions,ExecuteActions,CleanupActions,OnErrorActions都是對于操作動作的描述:
InitializeActions:指初始化需要執行的操作動作
ExecuteActions:只測試過程中的操作動作(通過錄制所生成的操作都默認放在ExecuteActions中)
CleanupActions:指測試完畢需要清理資源的操作動作
OnErrorActions:只帶異常處理的操作動作
他們都對UIMap.Designer.cs操作動作部分代碼的生成和參數的生成有直接的影響。
嚴格地說,放在InitializeActions中的操作動作和放在ExecuteActions,CleanupActions,OnErrorAction的動作沒有任何本質上的區別,僅僅只是從一個代碼可讀性上的考慮。
原文轉自:http://www.anti-gravitydesign.com