UIAutomationで検収テストを行う
3491 ワード
これは測定されたアプリケーションです.
アプリケーションNET 3.0のUIAutomationでは、次の手順でテストできます.
1.アプリケーションの起動
C#コード
string path = @"The Path To The Application";
Process process = Process.Start(path);
2.メインウィンドウに対応するAutomationElementを取得
C#コード
Thread.Sleep(1000);
AutomationElement aeMainWindow = AutomationElement.FromHandle(process.MainWindowHandle);
3.ボタンに対応するAutomationElementを取得
C#コード
AutomationElement aeHelloButton = aeMainWindow.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Button));
4.ボタンをクリック
ここでGetCurrentPatternはQuery Interfaceに相当し,PatternもUIAutomationの真髄である.異なるUIフレームワークに異なるadapterを作り、様々なpatternを実現し、つまり概念上の大きなUIを構築した.
C#コード
InvokePattern ipHelloButton = (InvokePattern) aeHelloButton.GetCurrentPattern(InvokePattern.Pattern);
ipHelloButton.Invoke();
5.テキストボックスに対応するAutomationElementを取得
C#コード
AutomationElement aeHelloTextBox = aeMainWindow.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit));
6.テキストボックスのテキストを取得する
C#コード
TextPattern tpHelloTextBox = (TextPattern) aeHelloTextBox.GetCurrentPattern(TextPattern.Pattern);
string text = tpHelloTextBox.DocumentRange.GetText(-1);
7.リスニングウィンドウが閉じられたイベント
C#コード
Automation.AddAutomationEventHandler(WindowPattern.WindowClosedEvent, aeMainWindow, TreeScope.Element, HandleMainWindowClose);
private static void HandleMainWindowClose(object sender, AutomationEventArgs e)
{
Console.WriteLine("Main Window Closed");
}
8.ウィンドウを閉じる
C#コード
process.Kill();
コンソールに「Main Window Closed」と印刷されます
プロセス全体で3つの主要な機能を実証しました.
1、インタフェースの操作方法(ボタンクリック)
2.インタフェースの状態(テキストの取得)の取得方法
3、インタフェースのイベントをどのように傍受するか(ウィンドウイベントを閉じる)
結論:
UIautomationはWin 32,WindowsForms,WPFで作成されたアプリケーションに検収テストを作成することができる.