introduction sikuli gui automation tool sikuli tutorial 1
いつものように、私たちは読者のために学ぶために新しいことを取り入れようとしています。今日は、興味深いGUI自動化ツールであるSikuliについて見ていきましょう。
Sikuliグラフィカルユーザーインターフェイス(GUI)自動化ツールを使用して「表示されているものをすべて自動化」–完全な初心者向けガイド すばやくセットアップして Sikuliスクリプトツールの使用を開始します これらの詳細なSikuliチュートリアルで。
Sikuli画像認識方法を使用して画面に表示されるものをすべて自動化し、GUI要素を識別します。 Sikuliスクリプトを使用すると、ユーザーはスクリーンショットを使用してGUI操作を自動化できます。
このSikuliシリーズのチュートリアルのリスト
このシリーズは3つのパートに分かれています。
チュートリアル#1: 仕組み、簡単なSikuliプロジェクトの作成方法。
チュートリアル#2: SikuliをSeleniumWebドライバーで使用してWebページを自動化する方法。
チュートリアル#3: Sikuliツールを使用したフラッシュベースのアプリケーションの自動化
学習内容:
SikuliGUI自動化ツール
このシリーズの第1部から始めましょう。
シクリ は、「ビジュアルイメージマッチ」方式を使用してグラフィカルユーザーインターフェイス(GUI)を自動化するツールです。 Sikuliでは、すべてのWeb要素を画像として取得し、プロジェクト内に保存する必要があります。 Sikuliは、すべてのメソッドとともにパラメーターとして渡した画像である画像の視覚的一致に基づいてGUIインタラクションをトリガーします。
Sikuliは、フラッシュオブジェクト(IDまたは名前を持たない)を自動化するのに非常に役立ちます。これは、安定したGUIがある(つまり、GUIコンポーネントが変更されていない)状況で役立ちます。
ウィンドウベースのアプリケーションでさえ、Sikuliを使用して自動化することもできます。 Sikuliは、非常に使いやすいSikuli-script.jarを提供します。これは、SeleniumWebDriverと一緒に簡単に使用できます。 Sikuliを使用して、WebサイトでAdobeビデオ/オーディオプレーヤー、Flashゲームを自動化することもできます。シンプルなAPIで、コーディングが簡単になります。
実用的な使用
- Sikuliは、Flashオブジェクト/ FlashWebサイトを自動化するために使用できます。
- ウィンドウベースのアプリケーションを自動化すると便利な場合があります。画面に表示されているものを自動化できます。
- シンプルなAPIを提供します。つまり、すべてのメソッドは、画面クラスオブジェクトを使用してアクセスできます。
- Seleniumや他のすべてのツールと簡単に統合できます。
- Sikuliを使用すると、デスクトップアプリケーションを自動化できます。
- ほとんどの自動化テストツールは、フラッシュオブジェクトの自動化をサポートしていません(Seleniumなど)。 Sikuliは、フラッシュオブジェクトを自動化するための広範なサポートを提供します。
- 強力な「ビジュアルマッチ」メカニズムを使用して、デスクトップおよびフラッシュオブジェクトを自動化します。
利点
- オープンソースツール。
- Sikuliの最大の利点の1つは、Flashオブジェクトを簡単に自動化できることです。
- Windowsアプリケーションの自動化が容易になります。
- 開発中のアプリケーションをテストしていて、要素のID /名前がわからない場合は、Sikuliを使用できます。画像の外観をチェックし、一致するものが見つかった場合は、それに応じて画像と相互作用します。
前提条件:
開始する前に、次のソフトウェアをダウンロードしてインストールする必要があります。
- スクリーンショットキャプチャツール( 例えば、 DuckCapture 、または qSnap )
- JDK
- Eclipse(詳細な手順 ここに JDKとEclipseをインストールするには)
SikuliJavaプロジェクトを作成する手順
ステップ1:Sikuliダウンロード - からSikuliをダウンロード ここに 。
ステップ2: ダウンロードしたzipファイルを解凍します。これには、Sikuli-script.jarファイルが含まれます。この抽出したファイルをローカルファイルシステムに保存します。
ステップ3: Eclipseを開きます。
ステップ4: Javaプロジェクトを作成する(ファイル)-> (新規)-> (Javaプロジェクト)
ステップ5:
- プロジェクトを右クリックします
- ビルドパス->ビルドパスの構成に移動します
- (ライブラリ)タブに切り替えます
- 「外部Jarの追加」ボタンをクリックし、ビルドパスにSikuli-Script.jarを追加します。
- 「OK」をクリックします
Sikuli-script.jarがプロジェクトのビルドパスに追加されます。完了です。これで、このプロジェクト内でSikuliスクリプトの作成を開始できます。
いくつかのシクリメソッド
#1)画面クラスのオブジェクトの作成
画面はSikuliが提供する基本クラスです。最初にこの画面クラスのオブジェクトを作成する必要があります。そうすると、Sikuliが提供するすべてのメソッドにアクセスできるのは私たちだけです。
構文:
画面s = new Screen();
#2)要素をクリックする
この方法は、画面に表示されている特定の画像をクリックするために使用されていました。
構文:
s.click(“<>”);
例えば、
s.click(“ test.png”);
#3)要素を右クリック
この方法は、画面に表示されている特定の画像を右クリックするために使用されていました。
構文:
s.rightClick(“<>”);
例えば、
s.rightClick(“ test.png”);
#4) 要素を見つける
このメソッドは、画面に存在する特定の要素を見つけるために使用されました。
構文:
s.find(“<>”);
例えば、
s.find(“ test.png”);
#5)要素をダブルクリックする
このメソッドは、画面に表示されている特定の画像でダブルクリックイベントをトリガーするために使用されていました。
構文:
s.doubleClick(“<>”);
例えば、
s.doubleClick(“ test.png”);
#6)画面に要素が存在するかどうかを確認します
このメソッドは、指定された要素が画面に存在するかどうかを確認するために使用されます。
構文:
s.exists(“<>”);
例えば、
s.exists(“ test.png”);
#7)テキストボックスに文字列を入力します
このメソッドは、テキストボックスに指定されたテキストを入力するために使用されます。
構文:
s.type(“<>”、”入力する文字列”);
例えば、
s.type(“ test.png”、” HI !!”);
#8)特定の画像のウイリー
このメソッドは、要素画像に対してホイールアクションを実行するために使用されます。
構文:
s.wheel(“<>」、<>、<>);
例えば、
s.wheel(“ test.png”、25,0);
#9) 画像/要素をドラッグアンドドロップします
この方法は、指定した画像をソース位置からターゲット位置にドラッグアンドドロップするために使用されます。
構文:
s.dragDrop(“<>'、'<>”);
例えば、
s.dragDrop(“ test.png”、” test1.png”);
#10) 特定の画像にホバーをロール
このメソッドは、指定された画像に対してロールホバーイベントを実行するために使用されます。
構文:
s.hover(“<>”);
例えば、
s.hover(“ test.png”);
#11)コピーした文字列を貼り付ける
このメソッドは、指定されたテキストボックスにテキストを貼り付けるために使用されました。
構文:
s.paste(“<>'、'テスト');
例えば、
s.paste(“ test.png”、” test”);
シクリの例
#1)YouTubeビデオ–ビデオを一時停止して再生する
ステップ1) YouTubeビデオリンクを開き、スクリーンキャプチャツールを使用して要素画像の再生と一時停止をキャプチャします。
一時停止ボタン( 注意: ファイル名はpause.pngです)
再生ボタン( 注意: ファイル名はplay.pngです)
これらの画像をプロジェクト内にコピーします。
トップ50のSQLトリッキーな面接の質問pdf
ステップ2) 作成したSikuliJavaプロジェクト内にパッケージを作成し、その中に「Youtube」という名前のクラスを作成します。
ステップ3) そのクラス内に次のコードを入力します。
package com.test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class Youtube { public static void main(String() args) throws FindFailed, InterruptedException { // TODO Auto-generated method stub Screen s=new Screen(); s.find('pause.png'); //identify pause button s.click('pause.png'); //click pause button System.out.println('pause button clicked'); s.find('play.png'); //identify play button s.click('play.png'); //click play button } }
ステップ # 4) クラスを右クリックして、「実行」->「Javaアプリケーション」を選択します。
#2)メモ帳を開いてテキストを入力する
ステップ # 1) 画面上のデスクトップにあるメモ帳アイコンをキャプチャします。
notepad_icon.png
notepad.png
ステップ # 2) これらの画像をプロジェクト内にコピーします。
ステップ3) プロジェクト内に「NotepadExample」という名前のクラスを作成し、次のコードを入力します。
package com.test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class NotepadExample { public static void main(String() args) throws FindFailed { // TODO Auto-generated method stub Screen s=new Screen(); s.click('notepad_icon.png'); s.find('notepad.png'); s.type('notepad.png','This is Nice Sikuli Tutorial!!!!'); } }
ステップ4) コードを実行する前に、テストする画面を開きます。
(実行)-> (Javaアプリケーション)を右クリックして、このファイルを実行します。
#3)ドラッグアンドドロップ
ステップ1) 画面上の必要なアイテムのスクリーンショットを撮り、それをSikuliプロジェクト内に配置します。
( 注意: ここでは、ダウンロードアイコンは「source.png」、花の画像は「destination.png」です)
ステップ # 2) これらの写真をプロジェクト内に配置します。
ステップ #3) 「DragAndDrop」という名前のクラスを作成し、次のコードを記述します。
package com.test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class DragAndDrop { public static void main(String() args) throws FindFailed, InterruptedException { // TODO Auto-generated method stub Screen s=new Screen(); s.find('source.png'); System.out.println('Source image found'); s.find('target.png'); System.out.println('target image found'); s.dragDrop('source.png', 'target.png'); } }
ステップ # 4) (実行)-> (Javaアプリケーション)を右クリックして、このスクリプトを実行します。
このスクリプトの実行後、ダウンロードアイコンがターゲットとして示されている画像にドラッグアンドドロップされます。
実行前:
実行後:
このツールの欠点
- 画像の一致が常に正確であるとは限りません。画面に類似した画像が2つ以上表示されている場合、Sikuliは間違った画像を選択しようとすることがあります。
- また、画像の外観のピクセルサイズが異なる場合は、「検索に失敗しました」という例外も発生します。
- あまりにも多くのスクリーンショットを撮るオーバーヘッド。
- スクリーンショットのいずれかが欠落している場合、それはプログラムの実行に影響を与えます。
その他のリソース:
結論
Sikuliは、フラッシュオブジェクトの自動化に非常に役立ちます。ウィンドウベースのアプリケーションを自動化するために使用できます。ビジュアルに基づいて、画面上の要素を操作するのに最適なツールです。
著者について: これはAnithaEswariによるゲスト投稿です。彼女は現在、手動テストと自動テスト、およびさまざまなテスト管理ツールに関する十分な知識を持つシニアテストエンジニアとして働いています。
次のチュートリアル : このシリーズの次のパートでは、Sikuli Mavenプロジェクトの作成と、SeleniumをSikuliと統合する方法について詳しく見ていきましょう。
すでにこのツールを使用していますか?あなたの経験とヒントを共有してください。始めたいが質問がある場合はお知らせください。
推奨読書
- Sikuli GUI自動化テストツール-ビギナーズガイドパート#2
- GUIテスト自動化のための30の最高のGUIテストツール(2021リスト)
- SeeTest Automation Tutorial:Mobile Test Automation Tool Guide
- RationalRobotの学習の基本-IBMテスト自動化ツール
- Gebチュートリアル-Gebツールを使用したブラウザ自動化テスト
- テスターのための便利な無料のスクリーンキャプチャおよびアノテーターツール-qSnapレビュー
- Katalon Studioチュートリアル:あなたが待ち望んでいた無料のテスト自動化ツール
- Sikuliツールを使用したフラッシュベースのアプリケーションの自動化