Dev Notes:UI自動化測試-2
經由上一篇的介紹我們可以了解到利用WaitN自動操作網頁是可行;但假如能夠能利用Unit Testing的Tool執行WaitN,我們便可透過Unit Testing Tool GUI畫面執行具有邏輯的TestFixture以及使用Unit Testing的Assert Method進行驗證,產生一目了然紅綠燈標式,讓UI的自動化測試更加完善。
剛剛有提到由於IE並不具有ThradSafe,因此我們必須把apartment設為STA;同樣地我們在NUnit也必須進行一樣的設定。首先我們先新增一專案名為WebTest,加入NUnit及WatiN的參考。

接著在WebTest專案中新增App.Config,並在組態檔中設定NUnit Runner為STA,如以此NUnit的GUI畫面及Console在執行我們測試的DLL時,都會以single threaded apartment Thread的狀態執行。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="NUnit">
<section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/>
</sectionGroup>
</configSections>
<NUnit>
<TestRunner>
<!-- Valid values are STA,MTA. Others ignored. -->
<add key="ApartmentState" value="STA" />
</TestRunner>
</NUnit>
</configuration>
如此一來,NUnit將能與WatiN結合了。接著我們新增一類別名為HSDcWebTest,把剛剛下載測試的Method加入到此類別中,宣告NUnit的測試屬性,開始進行測試。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using WatiN.Core;
namespace WebTest
{
[TestFixture]
class HSDcWebTest
{
[Test]
public void TestDownload()
{
// 開啟IE,並連結至HSDc網站
IE ie = new IE("http://www.hsdc.com.tw");
// 找到[文檔下載區]的HyperLink,並點點它
ie.Link(Find.ByTitle("關於 HSDc. 相關的文件、檔案下載區。")).Click();
// 找到[Sequence Generator Plugin beta-1]的HyperLink,並點點它
ie.Link(Find.ByUrl("http://files.hsdc.idv.tw/src/products/HSDcSeq-Beta-Build012.rar")).Click();
// 註解的程式碼為關閉IE
//ie.Close();
}
}
}

- Arthur's blog
- 如果想要發表回應,請先登入 或 註冊。
