共用方式為


測試指令碼產生器範例

更新:2007 年 11 月

本範例示範如何使用 Microsoft UI 自動化 控制項模式和事件,產生自動化測試案例所需的測試指令碼。測試指令碼產生器會追蹤使用者與目標應用程式的使用者介面 (UI) 之間的互動,並儲存所需的項目和事件。

關於項目以及任何相關聯事件的資訊,會儲存在一般記錄類別 (UIAEventRecord.cs) 中。一般資訊和指令碼都可以傾印成純文字,以供軟體測試人員後續分析或修改,而若為產生的指令碼,則可用於稍後播放。

以事件為基礎的應用程式 (如這個範例) 本身有其限制,它無法辨別使用者介面 (UI) 中的變更是因直接或間接使用者輸入所導致。例如,本範例中的目標應用程式包含三個彼此相依的控制項,只要使用者與其中一個控制項互動,就會使其他兩個控制項跟著變更。

ms771275.alert_caution(zh-tw,VS.90).gif警告:

UI 自動化和本範例中所述的自動化測試案例需要應用程式 (或控制項開發人員) 與軟體測試人員之間訂立合約。換句話說,要能一致地執行產生的指令碼,端視是否有靜態且可預測的目標 UI 可供操作。基於這點,如果需要記錄和後續播放與隨機應用程式和控制項的互動,就不適合使用 UI 自動化。

當項目沒有唯一識別項 (例如 AutomationId 屬性),或者 UI 為動態且無法預測 (例如,在 [Windows 工作管理員] 對話方塊中,列在 [處理程序] 或 [應用程式] 索引標籤的項目會根據系統狀態而定),就會發生「盲目」記錄而使播放變得無用的常見問題。在這些情況下,要在播放期間尋找特定項目是幾乎不可能的事。

這個範例示範 Windows Presentation Foundation (WPF) 的特定功能,因此並未遵循應用程式開發的最佳作法。如需 Windows Presentation Foundation (WPF) 和 Microsoft .NET Framework 應用程式開發最佳做法的完整內容,請依適當情況參閱下列內容:

協助工具 - 協助工具最佳作法

安全性 - Windows Presentation Foundation 安全性

當地語系化 - WPF 全球化和當地語系化概觀

Download sample

建置範例

  • 這個範例是由下列三個專案所組成:

    • ScriptGeneratorClient 在範例中提供指令碼產生功能;目標應用程式是從用戶端 UI 啟動。

    • ScriptGeneratorTarget 提供用戶端應用程式的目標 UI。

    • ExecuteScript 在範例中提供指令碼執行功能;目標應用程式是從用戶端 UI 啟動。這個專案會在指令碼產生並複製到 script.cs 檔案之後手動執行。

  • 安裝 Windows Software Development Kit (SDK),然後開啟 [建置環境命令] 視窗。在 [開始] 功能表中,指向 [所有程式]、[Microsoft Windows SDK],然後按一下 CMD 殼層。

  • 接著,在軟體開發套件 (SDK) 文件處下載軟體,並存至您的硬碟上。

  • 若要組建建置環境命令視窗的範例,您必須先移至範例的來源目錄在命令提示字元中,輸入 MSBUILD。

  • 若要在 Microsoft Visual Studio 中建置範例,請載入範例方案或專案檔,然後按下 CTRL+SHIFT+B。

產生指令碼

  • 若要在 [建置環境命令視窗] 中執行編譯後的範例,請執行位在包含範例原始程式碼的檔案夾 (Bin\Debug 或 Bin\Release 檔案夾) 下的 .exe 檔案。

  • 若要在 Visual Studio 中執行編譯後的範例並進行偵錯,請按 F5。

ms771275.alert_note(zh-tw,VS.90).gif注意事項:

這會啟動 ScriptGenerator 用戶端應用程式。目標應用程式是從用戶端啟動。

執行指令碼

  • 關閉用戶端和目標應用程式。

  • 開啟 ExecuteScript 專案中的 Script.cs 檔案。

  • 選取現有程式碼,然後用產生的指令碼貼上取代。

  • 建置並執行 ExecuteScript 專案。

ms771275.alert_note(zh-tw,VS.90).gif注意事項:

這會啟動 ExecuteScript 用戶端應用程式。目標應用程式是從用戶端啟動。