Silk Test Workbench が専用サポートを提供していないカスタム コントロールに対応するカスタム クラスを作成できます。 カスタム クラスを作成すると、以下の利点があります。
- スクリプトおよびビジュアル テストのロケーターが効率化されます。
- カスタム コントロールと対話するための再利用可能コードを簡単に記述できます。
例:UltraGrid Infragistics コントロールのテスト
カスタム
グリッド コントロールが
Silk Test Workbench で汎用クラス
Control として認識されるとします。
Silk Test Workbench のカスタム コントロール サポートを使用すると、以下の利点があります。
- カスタム コントロール クラス名をロケーターで使用できるため、オブジェクトの認識率が高まります。
- 複数のオブジェクトが Control として認識されることがあります。 ローケーターには、特定のオブジェクトを識別するためのインデックスが必要です。 たとえば、オブジェクトはロケーター //Control[13] を使用して識別できます。 このコントロールのカスタム クラス (クラス UltraGrid など) を作成する場合は、ロケーター //UltraGrid を使用できます。 カスタム クラスを作成することによって、テスト対象アプリケーションが変更された場合にオブジェクト識別子が変わりやすい、大きな数字のインデックスを使用する必要がなくなります。
- スクリプト内のコントロールに、再利用可能な再生操作を実行できます。
-
カスタム クラスを使用している場合、ユーザー インターフェイスにカスタム コントロールを指定すると生成されるクラスであるカスタム クラスに以下のコードを追加することで、グリッドのコンテンツをメソッド内に取り込む動作をカプセル化できます。
通常は、以下のいずれかの方法で、メソッドをカスタム コントロール クラスに実装できます。
- Click、TypeKeys、TextClick、および TextCapture などのメソッドを使用できます。
- AUT のオブジェクトで動的にメソッドを呼び出せます。
- AUT に追加したメソッドを動的に呼び出せます。 これは、この例で説明されている手法です。
以下のコードを使用して、
「テスト対象アプリケーションにコードを追加してカスタム コントロールをテストする」の例で定義されている静的メソッドを呼び出すことができます。 メソッド
GetContents が、生成されたクラス
UltraGrid に追加されます。
' VB code
Partial Public Class UltraGrid
Public Function GetContents() As IList
Return Invoke("UltraGridUtil.GetContents", Me)
End Function
End Class
クラスをカスタム コントロールとして定義すると、
Dialog クラスのように、すべての組み込みクラスの場合と同じ方法でそのクラスを使用できます。
' VB code
Dim ultraGrid As UltraGrid = mainWindow.UltraGrid("@automationId='my grid'")
Dim contents = ultraGrid.GetContents()