Skip to main content
Skip table of contents

Desktop Application Testing

デスクトップアプリケーションのテストは、1 台のワークステーション内で「ローカルデスクトップ」接続を使用する方法と、第 2 の仮想環境または物理環境への「VNC サーバー」接続を使用する方法があります。

上記のどちらの接続タイプでも、テスト環境(SUT)全体を制御することができるため、そこにインス トールされているすべてのアプリケーションを本質的に制御することができます。しかし、この種のテストは単一のアプリケーションに限定されるものではなく、アプリケーションのインストールや削除、システムプロパティの表示や調整なども含まれます。

実際、一旦目的の SUT に接続すれば、マウスとキーボードを使ってその環境を操作し、その結果の表示を視覚的に 分析しながら、ユーザーが行うのと全く同じ方法で、その環境のあらゆる側面を制御することができる。

ここで重要なことは、ロボットが区別するのはアプリケーションの種類ではなく、使用されている接続の種類だけであるということです。したがって、ネイティブのデスクトップアプリケーションは、例えばウェブ、.NET、Java、Flashなどのアプリケーションと全く同じように処理され、自動化されます。

アプリケーションを起動する例を見てみよう。

まず、電卓のような標準的なデスクトップアプリを起動するには、Robot:

JS
Press Windows
Typeline Calc
Comparing that against the code required to launch a web browser application:
Press Windows
Typeline "iexplore www.gmail.com"

アプリケーションが起動したら、それを自動化するために必要なステップは、メニューやフィールドのナビゲーション、データ入力など、アプリケーション自体のデザインに依存します。これにより、マウスを使うかキーボードを使うかが決まります。

例えば、Windowsの電卓で方程式を実行するには、次のようにします:

JS
Typeline 5*5
And logging into the Gmail web application, as follows:
Type T-Plan@gmail.com
Press Tab
Typeline testing123

ウィンドウズ電卓のサンプル動画

しかし、もしあなたのアプリケーションがキーボードナビゲーションなどをサポートしていないことが分かっている場合、画像検索やテキスト検索をマウスのベースとして使用することができます。

画像検索に基づく電卓の例

JS
Procedure Click {
Waitfor match template="{1}.png" method=search2 timeout=10s
if ({_EXIT_CODE} > 0) {
Step "Click {1}." result=fail
Exit "1"
} else{
Step "Click {1}"
Mouse click to=x:{_COMPARETO_CLICK_X},y:{_COMPARETO_CLICK_Y}
}
}
Click WinStart 
Typeline Calc
Click 5
Click Times
Click 5
Click Equals 

同様に、ウェブアプリケーションのテストも同じようになります:

JS
Procedure Click {
Waitfor match template="{1}.png" method=search2 timeout=10s
if ({_EXIT_CODE} > 0) {
Step "Click {1}." result=fail
Exit 1
} else{
Step "Click {1}"
Mouse click to=x:{_COMPARETO_CLICK_X},y:{_COMPARETO_CLICK_Y}
}
}
Click WinStart
Typeline "iexplore www.gmail.com"
Click Email
Type T-Plan@gmail.com
Click Password
Type testing123
Click SignIn

ジグソーパズルの最後の部分は、適用されたアクションの検証を実行することです。これもまた、典型的な画像検索やテキスト検索など、さまざまな方法で実現できます。

このような検証をプロシージャーにまとめるということは、スクリプトの各ステップに検証ポイントを置くことができるということでもあります。

プロシージャーには必要なコードを含めることができますが、典型的な検証アクションは次のようになります:

JS
Procedure Verify {
Waitfor match template="{1}.png" method=search2 timeout=10s
if ({_EXIT_CODE} > 0) {
Step "Verify {1}." result=fail
Exit 1
} else{
Step "Verify {1}"
Screenshot "Verification_{1}.png"
}
}

このプロシージャーは、スクリプトの必要な箇所で次のように呼び出されます:

JS
Verify 25

T-Plan RobotによるローカルWebアプリケーションの自動化については、Google Mapsのビデオをご覧ください:T-Planロボットを使ったマップテスト.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.