Dev Notes:UI自動化測試-2

in


經由上一篇的介紹我們可以了解到利用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();
        
        }

    }
}